I have the following situation: an Activity that contains a Fragment which has a ViewPager that has Fragments:
-> Childfragment
Activity -> Fragment w ViewPager -> Childfragment
-> Childfragment
I use a FragmentStatePagerAdapter on the ViewPager.
The problem is: I have to switch ON and OFF the ActionBarMenu of the Childfragments, my approach was (in short) the following in my host Fragment:
boolean childsHaveMenu = false;
public void setChildsHaveMenu(boolean childsHaveMenu) {
this.childsHaveMenu = childsHaveMenu;
pagerAdapter.notifyDataSetChanged();
getActivity().supportInvalidateOptionsMenu();
}
and in my FragmentStatePagerAdapter's getItem() method:
fragment.setHasOptionsMenu(childsHaveMenu);
return fragment;
Unfortunately, pagerAdapter.notifyDataSetChanged(); and getActivity().supportInvalidateOptionsMenu(); both don't seem to force the Childfragments to 'update' it's ActionBarMenu, at least not consistently.
My second approach was to send an event to the Exposes with a boolean to tell them of they should show their ActionItems and then hiding or showing them in onCreateOptionsMenu(), but again I can't force the Childfragments to call onCreateOptionsMenu() so the ActionBar updates.
Any ideas on how I could solve this would be highly appreciated :)