在嵌套片段中打开和关闭ActionBarMenu

时间:2013-11-12 09:08:40

标签: android android-actionbar android-actionbar-compat

我遇到以下情况:Activity包含Fragment,其中ViewPager包含片段:

                                 -> Childfragment
Activity -> Fragment w ViewPager -> Childfragment
                                 -> Childfragment

我在FragmentStatePagerAdapter上使用ViewPager

问题是:我必须打开和关闭Childfragments的ActionBarMenu,我的方法是(简而言之)我的主机片段中的以下内容:

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,至少不是一贯的。

我的第二种方法是使用布尔值向Exposes发送一个事件,告诉他们应该显示他们的ActionItems,然后在onCreateOptionsMenu()中隐藏或显示它们,但我又不能强迫Childfragments调用onCreateOptionsMenu()以便ActionBar更新。

关于如何解决这个问题的任何想法都将受到高度赞赏:)

0 个答案:

没有答案