Galaxy S3 で、ActionBar のボタンが showAsAction="always" として構成され、ハードウェア オーバーフロー メニューとアクション ボタンの両方に表示されるという問題があります。ハードウェア オーバーフロー メニューには表示せず、アクション ボタンにのみ表示したいと思います。onCreateOptionsMenu でメニュー項目を無効にできますが、両方の場所でボタンが非表示になります。
注意点: 「3 つのドット」アクション オーバーフロー メニューを強制的に表示すると、更新ボタンがハードウェア オーバーフロー メニューから適切に非表示になりますが、ハードウェア オーバーフロー メニューからは非表示になりません。
他に注意すべき点: onCreateOptionsMenu または onPrepareOptionsMenu のいずれかで menu.size() を呼び出すと、余分なボタンが反映されません。たとえば、4 つのボタンがあり、最初のボタンがアクション ボタンとオーバーフロー メニューの両方に表示されているとします。menu.size() はまだ 4 を返し、余分なボタンが表示されていることを認識していないようです。
これはクライアント向けのアプリであるため、スクリーンショットを投稿できませんが、ここに私の actionbar.xml ファイルがあります。更新ボタンは、上部のオーバーフローとアクション バーの両方に表示されます。
actionbar.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>