[Android]オプションメニューを表示する。その2。 | 妄想プログラマのらくがき帳

2013年7月28日日曜日

[Android]オプションメニューを表示する。その2。

Android3.0以降ではハードキーの無い機種が存在します。そのような機種の場合、オプションメニューの表示位置は画面下部ではなく、アクションバー右端のアイコン(Action Overflow)押下時のリストになります。

Action Overflowを押下すると、メニューがリストとなって表示されます。

また、メニューxmlのitemタグにshowAsAction属性を指定することで、アクションバーへの表示方法を変更することができます。showAsAction属性の値は以下の通りです。
ifRoomアクションバーに空きがあれば項目をアクションバーに表示する
withTextアクションバーに空きがあればアイコンと共にandroid:titleで指定した文字列を表示する
neverアクションバーに表示しない(常にAction Overflowでの表示とする)
always常にアクションバーに表示する(アクションバーに空きが無い場合、他のUI要素に重なった状態で表示される)
collapseActionViewActionViewを折りたたみ可能にする

例として次のようなメニューを定義します。
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/menu1" android:titleCondensed="m1" android:title="menu1" android:icon="@drawable/menu_icon" android:showAsAction="ifRoom|withText" />
    <item android:id="@+id/menu2" android:title="menu2" android:titleCondensed="m2" />
</menu>
これがどんなふうに表示されるかというと・・・

このようにandroid:showAsAction="ifRoom|withText"を指定したmenu1はアクションバーに表示され、指定していないmenu2はAction Overflowに格納されます。menu1はwithTextを設定していますが、画面幅が小さいためアイコンのみの表示になっています。

0 件のコメント:

コメントを投稿