2014-09-10 153 views
0

我正在使用导航抽屉在片段之间切换。 而且我的操作栏菜单项目与片段不同。Android:无论菜单项隐藏操作栏菜单视图

我想在抽屉打开时隐藏菜单项视图。 参考文档,它建议按ID查找菜单项并隐藏项目。 但是,我的菜单项与片段不同,因此,如何在操作栏上简单地隐藏/显示菜单项视图?有一些国旗可以控制它吗?

顺便说一下,我在DOC中看到它说我可以在onPrepareOptionsMenu()中返回false以使其不显示,但是我尝试并最终枉然。我误解了吗?

public boolean onPrepareOptionsMenu (Menu menu) 

在API级别1 准备屏幕的标准选项菜单显示。在菜单显示之前,每当显示菜单时都会调用它。您可以使用此方法高效地启用/禁用项目或以其他方式动态修改内容。 默认实现根据活动的状态更新系统菜单项。派生类应始终调用基类实现。

参数 菜单作为最后示出或首先通过onCreateOptionsMenu初始化的选项菜单()。

返回 您必须返回true才能显示菜单;如果您返回false,则不会显示。

回答

0

如果人们仍然访问该链接,这是我们如何禁用片段的选项菜单或选项菜单项。

1)在片段的onCreateView()方法添加以下代码

setHasOptionsMenu(true);// then only we can work with the menu items.Without this onPrepareOptionsMenu() method is not called 
. 

现在覆盖onPreparedOptionsMenu()方法和隐藏的菜单项。如果隐藏了所有的菜单项,菜单将不会显示。或使用menu.clear()清除所有菜单项

@Override 
    public void onPrepareOptionsMenu(Menu menu) { 
     super.onPrepareOptionsMenu(menu); 
     menu.findItem(R.id.menu_contacts).setVisible(false); 
     -------------- 
     }