在 Galaxy S3 上,我遇到了一个问题,即 ActionBar 中的按钮配置为 showAsAction="always" 并同时显示在硬件溢出菜单和操作按钮上。我希望它不显示在硬件溢出菜单上,而只显示在操作按钮上。我可以在 onCreateOptionsMenu 中禁用菜单项,但它会隐藏两个地方的按钮。
需要注意的是:如果我强制显示“3 点”动作溢出菜单,刷新按钮会从硬件溢出菜单中正确隐藏,但仍然不会从硬件溢出菜单中隐藏。
还有一点需要注意:如果我在 onCreateOptionsMenu 或 onPrepareOptionsMenu 中调用 menu.size(),它不会反映额外的按钮。例如,我有四个按钮,第一个按钮同时显示在操作按钮和溢出菜单中。menu.size() 仍然返回 4 并且似乎没有意识到它正在显示一个额外的按钮。
我无法发布屏幕截图,因为这是一个客户端应用程序,但这是我的 actionbar.xml 文件。刷新按钮显示在顶部的溢出和操作栏中。
动作栏.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/refreshmenuitem"
android:icon="@drawable/refreshicon"
android:title="Refresh"
android:showAsAction="ifRoom"
android:visible="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<item android:id="@+id/helpbutton"
android:title="Help"
android:showAsAction="collapseActionView"
android:icon="@drawable/ic_action_helpbutton" />
<item android:id="@+id/settingbutton"
android:title="Settings"
android:icon="@drawable/ic_action_settingbutton"
android:showAsAction="collapseActionView" />
<item android:id="@+id/importbutton"
android:title="Import file"
android:icon="@drawable/ic_action_importbutton"
android:showAsAction="collapseActionView" />
</menu>