当我使用onPrepareOptions菜单添加菜单项时,菜单项会在操作栏中复制自身。我在主要活动中使用片段并在actionbar中创建初始菜单,如下所示:

...
 @Override
    public boolean onCreateOptionsMenu(Menu paramMenu) {
    super.onCreateOptionsMenu(paramMenu);
    paramMenu.add(0, 1, 0, "DashBoard").setIcon(R.drawable.ic_dashboard)
        .setShowAsAction(1);
    return true;
    }

然后我在其中一个片段中添加另一个项目,如下所示:
...
@Override
    public void onPrepareOptionsMenu(Menu paramMenu) {
    paramMenu.add(0, 2, 1, "FullScreen").setIcon(R.drawable.ic_fullscreen)
        .setShowAsAction(1);
    }

出于某种原因,通过fragment类添加的项将显示两次….我有什么不对劲吗?
如果能帮助我解决问题,我将不胜感激。

最佳答案

该项可能显示两次,因为您添加了两次。参见docs for onPrepareOptionsMenu
每次显示菜单时,都会在菜单显示之前调用它。
我真的不会盲目地在onPrepareOptionsMenu中添加项目。你应该先检查它是否已经被添加了。

07-24 09:37