对于每个片段,我将添加菜单项以向用户提供与上下文相关的操作。但是当切换到另一个片段时,菜单项仍然存在。所以我可以从菜单中每个片段的所有选项结束。
如何清理菜单项只包含活动菜单中设置的菜单项?
我读到了invalidateOptionMenu()和onPrepareOPtionmenu(),但我并没有真正了解它们是如何工作的。 实施它的正确方法是什么?
无论如何,当片段不再显示时,如何删除片段链接的菜单项不是原生的Android行为?
编辑,如果说明不够清楚。
为什么itemA1和itemA2卡住了?如何删除它们?
编辑2:我已尝试从此post进行另一个制表设置,突然显示菜单项似乎已正确删除! 使用删除(R.id.container,片段)与Google推荐的{strong> onDetach()/ onAttach()相比,我们可以看到这一点{{ 3}}
我正在看这个,可能明天我会更新。如果你知道这一点,请分享:)
答案 0 :(得分:0)
你可以在每个活动上设置menuinflater。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.demo, menu);
return true;
}
答案 1 :(得分:0)
您应该将TabListener添加到标签页,然后在supportInvalidateOptionsMenu()
方法中调用onTabSelected()
。它会导致呼叫onCreateOptionsMenu()
。您应该在活动中覆盖它,并为选定的片段扩充菜单。如果您从代码中添加菜单项,请不要忘记清除以前片段的菜单。