0

对于每个片段,我将添加菜单项以向用户提供与上下文相关的操作。但是当切换到另一个片段时,菜单项仍然存在。所以我可以以菜单中每个片段的所有选项结束。

您如何清理菜单项以仅在活动菜单中设置那些?

我阅读了有关 invalidateOptionMenu() 和 onPrepareOPtionmenu() 的信息,但我并不真正了解它们是如何工作的。实施它的正确方法是什么?

无论如何,当片段不再显示时删除片段链接的菜单项不是原生Android行为怎么办?

如果说明不够清楚,请编辑。

  • 我有一项活动支持 Navigation_Mode_Tabs设置为全局菜单项。
  • 我开始添加 itemA1 和 itemA2 的 fragA。所以我有设置 itemA1, itemA2。到目前为止,一切都很好。
  • 然后我切换到添加自己的 itemB 的 fragB。在这里,我在菜单中有设置,itemA1,itemA2,itemB

为什么 itemA1 和 itemA2 卡住了?如何删除它们?

编辑 2:我从这篇文章中尝试了另一组列表,突然菜单项似乎被正确删除了!使用remove(R.id.container, fragment)与谷歌在此处推荐的onDetach()/onAttach() 比较值得一看

我正在看这个,可能明天我会更新。请,如果您知道这一点,请分享:)

4

2 回答 2

0

您应该将 TabListener 添加到您的选项卡并调用supportInvalidateOptionsMenu()方法onTabSelected()。它引起呼叫onCreateOptionsMenu()。您应该在您的活动中覆盖它并为所选片段充气菜单。如果您从代码中添加菜单项,请不要忘记清除前一个片段的菜单。

于 2013-08-13T16:09:53.097 回答
0

您可以在每个活动上设置 menuinflater。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.demo, menu);
    return true;
}
于 2013-08-13T13:32:56.660 回答