从操作栏中删除操作按钮

时间:2014-07-18 15:02:08

标签: android android-fragments android-actionbar android-navigation

我使用Fragment实现了ActionBar导航。在我的应用程序中,我有一个活动,其余的是碎片。在我的MainActivity中,我正在实现这样的菜单。

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

两个片段使用导航抽屉,在他们尊重的片段中,我正在膨胀菜单按钮以对项目进行排序。

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.sort_button_shops, menu);
    }

现在的问题是,如果我打开片段1它完美地工作。当我打开片段2时,它显示2个按钮进行排序,一个来自片段1,第二个来自片段2。

我试图隐藏按钮但它没有用。 任何帮助将不胜感激。 感谢

2 个答案:

答案 0 :(得分:1)

当您为新菜单充气时,您正在向旧Menu对象添加新项目,这可能不是您想要的。

试试这个:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    menu.removeItem(R.id.your_menu_item);
    getMenuInflater().inflate(R.menu.main, menu);
return true;
}

答案 1 :(得分:0)

尝试在片段的onResume()中使用它。

MenuItem item = (MenuItem) findViewById(R.menu.activity_main);
item.setVisible(false);
this.invalidateOptionsMenu();