メニュー表示の制御
メニューの表示、非表示の制御方法は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で統一したほうが使いやすい