Итак, у меня есть контейнер для фрагментов под названием «контейнер», который представляет собой FrameLayout.
В этот контейнер я помещаю фрагмент с ViewPager с именем CollectionsFragment.
CollectionsFragment имеет 3 фрагмента:
- AllCollectionsFragment — setHasOptionsMenu (true)
- MyCollectionsFragment - без меню
- FavouriteCollectionsFragment - без меню
AllCollectionsFragment содержит список коллекций и меню счетчика на панели действий, и когда пользователь щелкает коллекцию, другой фрагмент с именем ViewCollectionFragment помещается в контейнер активности, поэтому:
AllCollectionsFragment -> onClick(position) -> ViewCollectionFragment (помещается в основной контейнер активности)
Проблема в том, что ViewCollectionFragment не имеет меню. Он имеет setHasOptionsMenu (false). Но Android по-прежнему вызывает AllCollectionsFragment onCreateOptionsMenu, даже когда отображается ViewCollectionFragment, а меню AllCollectionFragment все еще отображается, когда ViewCollectionFragment виден.
Я использую FragmentStatePagerAdapter и передаю адаптеру getChildFragmentManager() из CollectionsFragment.
У меня также есть onBackstackChangeListener для контейнера активности, который делает недействительным меню параметров всякий раз, когда задний стек изменяется так: CollectionsFragment -> AllCollectionsFragment (по умолчанию) -> Select collection -> Add ViewCollectionsFragment в backstack и в основном контейнере-> invalidateOptionsMenu -> AllCollectionsFragment.onCreateOptionsMenu по-прежнему вызывается и отображается меню
Любые идеи, почему или я должен дать больше объяснений?