Android menu item showAsAction=“always” 无效的解决办法

我在item中加入android:showAsAction=”always”一直无效,后来终于在网上找到了解决的办法。
可以尝试如下办法:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto">

<item android:id="@+id/menu_add_size"
    android:title="@string/menu_add_item"
    android:icon="@android:drawable/ic_menu_add" 
    app:showAsAction="always"/>
</menu>

将android:showAsAction=”always”改成app:showAsAction=”always”,以及xmlns:android=”http://schemas.android.com/apk/res-auto”中的android改成app。
如果依然不起作用,可以修改onCreateOptionsMenu()中的代码:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
       new MenuInflater(this).inflate(R.menu.my_menu,menu);
        MenuItemCompat.setShowAsAction(menu.findItem(R.id.menu_add_size), MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
        return super.onCreateOptionsMenu(menu);
    }
### 解决 Android 菜单项属性配置时出现的编译错误 当设置 `android:showAsAction="ifRoom|collapseActionView"` 属性时遇到红色波浪线错误,通常是因为以下几个原因之一: #### 1. 命名空间声明缺失 确保 XML 文件顶部已正确定义命名空间。应包含如下语句: ```xml xmlns:android="http://schemas.android.com/apk/res/android" ``` 这一步骤至关重要,因为缺少此定义可能导致 IDE 或编译器无法识别标准的 Android 属性。 #### 2. SDK 版本匹配 确认项目的最低支持 API 级别以及目标 SDK 版本是否兼容所使用的属性。`collapseActionView` 是自 API Level 14 (Android 4.0) 开始引入的功能[^1]。因此需检查 `build.gradle` 中的相关配置: ```groovy defaultConfig { minSdkVersion 14 // 至少为 14 targetSdkVersion 30 // 推荐使用最新版本 } ``` #### 3. 编辑器缓存问题 有时编辑器内部缓存可能造成显示异常。尝试清理项目并重新构建可以解决问题。具体操作是在菜单栏选择 "Build" -> "Clean Project", 完成后再选 "Rebuild Project"[^2]。 #### 4. 使用 AppCompat 库 如果应用需要向后兼容较低版本设备,则建议采用 Support Library 提供的支持版 Action Bar 功能。此时应当改用 `app:` 前缀替代默认的 `android:` 前缀来指定这些属性,并确保依赖项中包含了最新的 androidx.appcompat 包: ```gradle implementation 'com.google.android.material:material:<latest_version>' ``` 相应地修改 menu resource file 如下所示: ```xml <item android:id="@+id/action_search" app:showAsAction="ifRoom|collapseActionView" ... /> ``` 以上方法能够有效处理因 `android:showAsAction='ifRoom|collapseActionView'` 设置当而引发的各种编译期报错现象[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值