我正在使用导航抽屉在片段之间切换。 我的动作栏菜单项与片段有所不同。
我想在打开抽屉时隐藏菜单项视图。 参考文档,它建议按ID查找菜单项并隐藏项目。 但是,我的菜单项与片段不同,因此,如何在操作栏上隐藏/显示菜单项视图?是否有一些旗帜来控制它?
顺便说一句,我在DOC中看到它说我可以在onPrepareOptionsMenu()中返回false以使其不显示,但是我尝试并最终徒劳无功。我误解了吗?
public boolean onPrepareOptionsMenu (Menu menu)
在API级别1中添加 准备要显示的屏幕标准选项菜单。每次显示菜单时都会调用此菜单。您可以使用此方法有效地启用/禁用项目或以其他方式动态修改内容。 默认实现基于活动的状态更新系统菜单项。派生类应始终调用基类实现。
参数 菜单最后显示的选项菜单或首先由onCreateOptionsMenu()初始化的选项菜单。
返回 您必须返回true才能显示菜单;如果你返回false,它将不会显示。
答案 0 :(得分: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);
--------------
}