次のような状況があります:フラグメントを持つActivity
を含む を含む:Fragment
ViewPager
-> Childfragment
Activity -> Fragment w ViewPager -> Childfragment
-> Childfragment
で使用しFragmentStatePagerAdapter
ますViewPager
。
問題は、Childfragments の ActionBarMenu の ON と OFF を切り替える必要があることです。私のアプローチは、ホスト Fragment で (要するに) 次のとおりでした。
boolean childsHaveMenu = false;
public void setChildsHaveMenu(boolean childsHaveMenu) {
this.childsHaveMenu = childsHaveMenu;
pagerAdapter.notifyDataSetChanged();
getActivity().supportInvalidateOptionsMenu();
}
と私FragmentStatePagerAdapter
のgetItem()
方法で:
fragment.setHasOptionsMenu(childsHaveMenu);
return fragment;
残念ながら、pagerAdapter.notifyDataSetChanged();
どちらgetActivity().supportInvalidateOptionsMenu();
も Childfragments に ActionBarMenu の「更新」を強制しているようには見えません。少なくとも一貫していません。
私の 2 番目のアプローチは、ブール値を使用してエクスポーズにイベントを送信して、ActionItem を表示し、次にそれらを非表示または表示する必要があることを伝えることでしたonCreateOptionsMenu()
が、ここでも、Childfragments に強制的に呼び出しonCreateOptionsMenu()
て ActionBar を更新させることはできません。
これをどのように解決できるかについてのアイデアは大歓迎です:)