为了账号安全,请及时绑定邮箱和手机立即绑定

如何隐藏操作栏中的菜单项?

/ 猿问

如何隐藏操作栏中的菜单项?

慕村9548890 2019-08-24 16:52:58

如何隐藏操作栏中的菜单项?

我有一个带有menuitem的操作栏。如何隐藏/显示该菜单项?

这就是我想要做的:

MenuItem item = (MenuItem) findViewById(R.id.addAction);item.setVisible(false);this.invalidateOptionsMenu();


查看完整描述

3 回答

?
慕村225694

获取MenuItem指向此类项目,调用setVisible它以调整其可见性,然后调用invalidateOptionsMenu()您的活动,以便相应地调整ActionBar菜单。

更新: A MenuItem不是您的布局的常规视图。它的特殊之处,完全不同。你的代码返回nullitem,并且是造成死机。你需要做的是:

MenuItem item = menu.findItem(R.id.addAction);

这是你应该调用的顺序:首先调用invalidateOptionsMenu()然后在里面onCreateOptionsMenu(Menu)获取对MenuItem的引用(通过调用menu.findItem())并调用setVisible()


查看完整回答
反对 回复 2019-08-24
?
守着星空守着你

使用 invalidateOptionsMenu()

为了打电话 onPrepareOptionsMenu(menu: Menu?)

你应该只使用onCreateOptionsMenu()创建初始菜单状态,而不是在活动生命周期中进行更改...

当事件发生并且您想要执行菜单更新时,必须调用invalidateOptionsMenu()以请求系统调用onPrepareOptionsMenu()。

https://developer.android.com/guide/topics/ui/menus


查看完整回答
反对 回复 2019-08-24
?
侃侃尔雅

您正尝试从活动访问菜单项,该活动无权访问范围。查找菜单项的调用将返回null,因为视图没有绑定活动或调用的布局

菜单项与诸如“ 导航栏 ”之类的项目绑定,而“ 导航栏 ”又与相应的活动绑定。

因此,在activity()中初始化这些视图,然后使用该视图访问菜单项。

Navigation navView;navView = findViewById(R.id.navigationView);MenuItem item = navView.getMenu().findItem(R.id.item_hosting);item.setVisible(false);


查看完整回答
反对 回复 2019-08-24

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信