私はAndroidアプリケーションに取り組んでいます。サポートされているアクションバーを実装しています。オプションメニュー項目を常に表示したいのですが、表示されません。ドロップダウンメニューに表示されます。以下のメニュー項目用。
<item
Android:id="@+id/action_settings"
Android:icon="@drawable/add_post"
Android:title="@string/action_settings"
/>
そして、ActionBarアクティビティのコードを以下に示します:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
任意の助けをいただければ幸いです。
docs からshowAsAction
属性をalways
またはifRoom
に追加する必要があります
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<!-- Search, should appear as action button -->
<item Android:id="@+id/action_search"
Android:icon="@drawable/ic_action_search"
Android:title="@string/action_search"
Android:showAsAction="ifRoom" />
<!-- Settings, should always be in the overflow -->
<item Android:id="@+id/action_settings"
Android:title="@string/action_settings"
Android:showAsAction="never" />
</menu>
AppCompat
ActionBarを使用する場合、次の方法でレイアウトを変更する必要があります。
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto" >
<item
Android:id="@+id/action_settings"
Android:icon="@drawable/add_post"
Android:title="@string/action_settings"
app:showAsAction="always" />
</menu>
showAsAction
属性は、カスタムプレフィックスでのみ機能します。 ドキュメント を参照してください。それによると:
上記のshowAsAction属性は、タグで定義されたカスタム名前空間を使用することに注意してください。これは、サポートライブラリで定義されたXML属性を使用する場合に必要です。これらの属性は、古いデバイスのAndroidフレームワークには存在しないためです。
お役に立てれば。
Android menu xml file ..)でAndroid:showAsAction
プロパティの異なる値を使用できます。
アクションバーに常に表示されるメニューを表示するには、Android:showAsAction="always"
を使用する必要があります。
Android:showAsAction="ifRoom"
を使用することもできますが、アクションバーにメニューが常に表示されるとは限りませんが、異なる画面サイズに従って表示されます。
編集済み
以下のコードを試してください。
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto" >
<item
Android:id="@+id/menu_lang"
app:showAsAction="always" <!-- app:showAsAction="ifRoom" -->
Android:title="@string/menu_lang"
Android:icon="@Android:drawable/ic_input_lang"/>
</menu>
それがあなたを助けることを願っています.. !!!
この質問は2年以上前のものですが、完全を期すために、コードでこれを設定する場合は、次を使用してください。
menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
他のオプションは
MenuItem.SHOW_AS_ACTION_NEVER
MenuItem.SHOW_AS_ACTION_IF_ROOM
MenuItem.SHOW_AS_ACTION_ALWAYS
MenuItem.SHOW_AS_ACTION_WITH_TEXT
MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW
この行を削除xmlns:app="http://schemas.Android.com/apk/res-auto"
使用する - Android:showAsAction="always"
の代わりにapp:showAsAction="always"
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item
Android:id="@+id/action_refresh"
Android:icon="@drawable/ic_refresh"
Android:showAsAction="ifRoom"
Android:title="@string/action_refresh"/>
<item
Android:id="@+id/action_filter"
Android:icon="@drawable/ic_filter"
Android:showAsAction="always"
Android:title="@string/action_filter"/>
</menu>