ActionBarCompat+选项卡:切换时删除片段菜单项



对于每个片段,我将添加菜单项,为用户提供与上下文相关的操作。但当切换到另一个片段时,菜单项保持不变。因此,我可以以菜单中每个片段的所有选项结束。

如何清除菜单项,使其仅设置在活动菜单中

我读过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()。您应该在活动中覆盖它,并为所选片段膨胀菜单。如果您从代码中添加菜单项,请不要忘记清除上一个片段的菜单。

最新更新