メニュー表示の制御

メニュー表示の制御

メニューの表示、非表示の制御方法は2つ

1アクションオーバーフローの利用

2android:visible=””でfalseを指定する

一般的には、アクションオーバーフローを使い
使うときに、ActionBarをタップすることでメニュー表示する

これに対して、
android:visible=”false”
とすると、タップしても表示されない

今回やるのは
アクションオーバーフローのほう

アクションオーバーフローは
ActionBarに表示しきれないアイテムをまとめたボタンのこと

基本的には、よく使うメニューは
ActionBarへ表示しておいて
あまり使わないものは
ActionOverflowへ隠しておくのが一般的

この制御は、
レイアウトファイルのXMLファイルで
android:showAsAction=””
を指定する

指定できるのは
never
ActionBarへ表示せず
常にActionOverflowへ配置

ifRoom
ActionBarの表示領域に余裕があるなら
ActionBarへ表示
もしないのならActionOverflowへ配置する

withText
ActionItemとして表示されるときに
android:title=””に設定した値も同時に表示する

always
常にActionBarへ表示する
ただし、レイアウトが崩れる可能性がある

何も指定しないとnever扱いになる

ActionBarに表示するときには、基本的にわかりやすくアイコンにすることが多い

<menu xmlns:android="http://scheams.android.com/apk/res/android">

<item
android:icon="@android.drawable/ic_menu_share"
android:showAsAction="never"
android:title="showAsAction: never"/>

<item
android:icon="@android.drawable/ic_menu_call"
android:showAsAction="ifRoom"
android:title="showAsAction: ifRoom"/>

<item
android:icon="@android.drawable/ic_menu_compass"
android:showAsAction="withText"
android:title="showAsAction: withText"/>

<item
android:icon="@android.drawable/ic_menu_agenda"
android:showAsAction="always"
android:title="showAsAction: always"/>
</menu>

Androidはデバイスごとに画面の大きさがかわるため
端末ごとにifRoomにして対応するか
もしくはシンプルに
neverで統一したほうが使いやすい

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です