I've created a NavControllerActivity
, which is based on UINavigationController
from iOS. I would like the app bar's menu items to only show the menu items for the currently displayed Fragment.
At the moment, as each new Fragment is pushed onto the nav stack, the menu items just get appended to the existing ones. When I tap Back and pop the Fragments off of the nav stack, then those menu items disappear as one would expect.
However, I'd like to hide/remove/something the existing menu items when the new Fragment is pushed on and show just the menu items for that Fragment. Then when that Fragment is popped off, I'd like to remove its menu items and reinstate the menu items from the Fragment that is now at the top of the stack.
I'm currently having each Fragment generate the menu items in onCreateOptionsMenu()
.
Is there a way to make Android only show the menu items for the top level fragment in my Activity?
Edit: Do I need to have the Activity directly manage the menu items instead? Essentially be constantly invalidating and replacing the menus whenever I push/pop a Fragment? i.e. Still have the menus really defined and controlled within the Fragment, but have the enclosing Activity passing along the menu creation calls to the Fragment at the top of the stack?