对于每个片段,我将添加菜单项,为用户提供与上下文相关的操作。但当切换到另一个片段时,菜单项保持不变。因此,我可以以菜单中每个片段的所有选项结束。
如何清除菜单项,使其仅设置在活动菜单中
我读过invalidateOptionMenu()和onPrepareOPtionmenu(),但我真的不知道它们是如何工作的实现它的正确方法是什么
无论如何,当片段不再显示时,删除片段链接的菜单项怎么不是原生的Android行为呢?
如果指令不够清晰,请编辑。
- 我有一个活动支持Navigation_Mode_Tabs,设置作为全局菜单项
- 我启动fragA,添加itemA1和itemA2。所以我有设置,itemA1,itemA2。到目前为止,一切都很好
- 然后我切换到fragB,它添加了自己的itemB。在这里,我在菜单中有设置,项目A1,项目A2,项目B
为什么项目A1和项目A2卡住?如何移除它们
编辑2:我尝试了这篇文章中的另一组表格,突然菜单项似乎被正确删除了!使用remove(R.id.container,fragment)与谷歌在此处推荐的onDetach()/onAttach() 我正在看这个,也许明天我会更新。如果你知道这一点,请分享:)
您可以在每个活动上设置菜单充气程序。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.demo, menu);
return true;
}
您应该将TabListener添加到选项卡中,并在onTabSelected()
方法中调用supportInvalidateOptionsMenu()
。它导致调用onCreateOptionsMenu()
。您应该在活动中覆盖它,并为所选片段膨胀菜单。如果您从代码中添加菜单项,请不要忘记清除上一个片段的菜单。