June 16, 2012

Action Barにオプションメニューを表示する

Action Barにオプションメニューを表示する方法です。Action BarはAndroid 3.0(API 11)から追加された機能ですので、それ以上のデバイスで有効です。Action Barとは画面最上部に表示されるバー(アイコンやタイトルなどが表示される)のことです。

オプションメニューの作り方は「オプションメニューの表示」を参照してください。ここではその差分を説明します。

メニューのリソースを下記のように作成します。差分は"showAsAction"属性に"ifRoom"を設定していることです。この設定をすると、スペースがあればAction Barに表示するようになります。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/item1" android:title="@string/menu1" android:showAsAction="ifRoom" android:icon="@android:drawable/ic_menu_add"></item>
    <item android:id="@+id/item2" android:icon="@android:drawable/ic_menu_share" android:showAsAction="ifRoom"></item>
    <item android:id="@+id/item3" android:title="@string/menu3" android:showAsAction="ifRoom"></item>
    <item android:id="@+id/item4" android:title="@string/menu4" android:showAsAction="ifRoom"></item>
</menu>

縦スクリーンで表示した場合、一部のみAction Barに表示されています。残りはオプションメニューでの表示となります。


横スクリーンで表示した場合、スペースがあるため、すべてAction Barに表示されています。


Action Barはアイコン優先、オプションメニューではテキストが表示されます。

また、縦スクリーンでは右上に表示するのではなく、画面下部に分割して表示することも可能です(横幅が狭いときのみ有効なので、幅広な横スクリーンでは使えません)。AndroidManifest.xmlのapplicationやactivityに下記のような"uiOptions"を設定します。

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:uiOptions="splitActionBarWhenNarrow">


参考:Android Developers:Action Bar
参考:Android Developers:Action Bar Icons

No comments:

Post a Comment