android - Appcompat 工具栏 showAsAction 无法正常工作
问题描述
我的设备允许在任务栏中最多显示 3 个图标,如果我超过此数量,即使我有 showAsAction="always" 或 showAsAction="ifRoom",所有图标也会被隐藏。
这是我的代码:
菜单.xml
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<group android:id="@+id/groupActions">
<item
android:id="@+id/action_admin"
android:orderInCategory="0"
android:title="@string/buttonAdmin"
app:showAsAction="always" />
<item
android:id="@+id/action_readMode"
android:orderInCategory="1"
android:title="@string/buttonReadModeOn"
android:icon="@drawable/ic_read_mode_24dp"
app:showAsAction="always" />
</group>
<group android:id="@+id/groupActions">
<item
android:id="@+id/action_schedule"
android:orderInCategory="2"
android:title="@string/buttonSchedule"
android:icon="@drawable/ic_today_24dp"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_report"
android:orderInCategory="3"
android:title="@string/buttonReport"
android:icon="@drawable/ic_list_check_24dp"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_logout"
android:orderInCategory="4"
android:title="@string/buttonLogout"
app:showAsAction="never" />
</group>
<group android:id="@+id/groupInfo">
<item
android:id="@+id/action_help"
android:orderInCategory="5"
android:title="@string/buttonHelp"
android:visible="false"
app:showAsAction="never" />
<item
android:id="@+id/action_contact"
android:orderInCategory="6"
android:title="@string/buttonContact"
app:showAsAction="never" />
<item
android:id="@+id/action_about"
android:orderInCategory="7"
android:title="@string/buttonAbout"
app:showAsAction="never" />
</group>
</menu>
这是 MyActivity 上的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu, menu);
MenuCompat.setGroupDividerEnabled(menu, true);
this.menu = menu;
MenuItem item = menu.findItem(R.id.action_readMode);
if (item != null) {
tintReaderModeIcon(item);
}
return super.onCreateOptionsMenu(menu);
}
我的想法是显示具有 showAsAction="always" 的两个图标和具有最高优先级的 showAsAction="ifRoom" 的图标。
请帮助清除这一点。
编辑:感谢 Denis95 的回复,我已经设法解决了一半的问题。现在带有 showAsAction="true" 的图标可以正确显示。
解决方案
正如我从资源文件中看到的,您将 5 个项目组合在一起。尝试将您希望始终显示在该组之外的 AppBar 上的项目。它应该可以解决问题。
推荐阅读
- r - 使用 r 中的配置文件将每周值分解为每日值
- javascript - 如何在提交时验证表单?
- reactjs - 初始化前无法访问“authReducer”
- php - preg_match - 忽略可选括号
- python - 过滤 Numpy 的数组数组
- office-js - office-addin 未从 nodejs spdy 服务器加载,从本地 nodejs 运行正常,快速服务器
- angular - 如何在 Angular10/Typescript 中刷新页面时运行函数
- angular - Ngxs或行为主体,选择哪个
- javascript - 用于验证重复斜杠的正则表达式
- excel - 匹配来自不同工作表 VBA 范围内的值