You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin开发Android时如何禁用并隐藏菜单栏中的指定item?

错误原因

你之前的代码报错是因为findViewById()仅适用于查找继承自View类的布局组件,而菜单项属于MenuItem类型,不属于View体系,因此触发类型不匹配的错误。

正确实现代码

你可以直接从MaterialToolbar的menu属性中获取对应菜单项,再配置显隐和可用状态:

// 初始化Toolbar后执行以下代码
val saveLogItem = topAppBar.menu.findItem(R.id.save_log)
// 隐藏菜单项
saveLogItem.isVisible = false
// 如需同时禁用点击(隐藏状态下可省略,若后续要恢复显示可以搭配使用)
saveLogItem.isEnabled = false

调用时机说明

因为你已经在Toolbar的XML布局中通过app:menu="@menu/menu_main"指定了菜单文件,Toolbar会在初始化时自动完成菜单填充,所以你只需要在onCreate生命周期中完成Toolbar初始化后,直接调用上述代码即可生效。如果是后续运行时需要动态切换菜单项显隐,也可以随时调用上述代码修改属性。

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:42:03