我使用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。
我试图隐藏按钮但它没有用。 任何帮助将不胜感激。 感谢
答案 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();