描述: 1)我有一个包含一个片段的Activity。我有时用菜单替换这个片段。 (第一级) 2)其中一个片段是tabFragments。它包含一个片段,但用户单击选项卡时可以替换此片段。 (二级)
我使用Android超过4.0。
我的问题是: 我怎么能拥有" General" RootActivity的菜单+ a"正常"我的tabfragment的菜单+ TabFragment中我的片段的另一个菜单,都在ActionBar中? 实际上,当我在FirstLevel中切换片段时,菜单会正确更新,但是当我进入第二级时,菜单会保留其他第二级片段中的项目。当我回到其他第一级片段时,我仍然有来自二级片段的菜单。
修改:
第一级片段(TabFragment)
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_intervention, menu);
super.onCreateOptionsMenu(menu, inflater);
// Inflate Menu below;
}
二级片段:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
// Inflate Menu below;
inflater.inflate(R.menu.menu_intervention_inventaire, menu);
}
答案 0 :(得分:2)
有可能。
在您的片段onCreate
方法调用中setHasOptionsMenu(true)
。为您的孩子片段做同样的事。
然后覆盖onCreateOptionsMenu
和onOptionsItemSelected
。
不要忘记从你的片段中拨打super.onCreateOptionsMenu
。
将常用菜单项放在“活动”中。以及相应片段片段中的其他项目。
编辑:您应该使用ChildFragmentManager作为您的子片段。它可以在支持库中找到。