Android3.0(Honeycomb)から画面上部のタイトルバーの機能が拡張され、ActionBar(アクションバー)として利用できるようになりました。ActionBarにはメニューを表示したり、Tabを表示したりとタブレットに適したUIを構築できます。今回はMenuの表示、使用上の注意点について紹介します。
Action BarにMenuを表示する際の注意点
- タブレットデバイスではメニューボタンを押してから個別要素(詳細な選択肢)を表示するUIが多い。Action Barにメニューを出しすぎない点に注意。
- ActionBar上へ、一度に出るメニュー項目は最大2つが目安
- 2つ以上の場合は、Moreボタンによってまとめる(プラットフォーム側で自動でまとめてくれる)
※現在公開されているHoneycombのSDKはプレビュー版の為、正式版では実装が異なる可能性があります。
サンプルコードは続きから。
ActionBarの設定
Window#requestFeatureメソッドはsetContentViewメソッドより前に実行する必要があります。HoneycombではWindowの設定項目が3つ追加されました。
- android.view.Window.FEATURE_ACTION_BAR
- 通常のスタイル(Theme.WithActionBar)ではデフォルトで有効になっています。 アクションバーではメニューを表示できます。
- android.view.Window.FEATURE_ACTION_BAR_OVERLAY
- ActionBarは常時、画面の上部に表示されています。FEATURE_ACTION_BAR_OVERLAYフラグを有効にすると、スクロールの際にActionBarを半透明にしてコンテンツの表示範囲を広くとれます。
- android.view.Window.FEATURE_ACTION_MODE_OVERLAY
- ActionBarのようなUIを表示するスペースがない場合、このFEATURE_ACTION_MODE_OVERLAYフラグが有効になっていると、コンテンツの上に、ActionBarをオーバーレイ表示することを許可します。
Activityのテーマを使っても、ActionBarの表示/非表示を制御できます。
メニューの追加
10行目 MenuItem#setShowAsActionメソッドで、ActionBar上での表示モードを設定しています。Honeycombでは以下の4つの項目があります。
- MenuItem.SHOW_AS_ACTION_ALWAYS
- 常にActionBar上に表示されます。過剰な表示はごちゃごちゃした印象を与え、UIの品質を低下させるため必要性を考慮し、利用してください。Googleによると経験的に常に表示されるメニューは2つ以下が望ましいとしています。
- MenuItem.SHOW_AS_ACTION_IF_ROOM
- ActionBar上にアイコンを配置する隙間があれば、表示。多くのボタンがバー上に溢れることを防ぎます。表示しきれなかった項目は「more」ボタンにまとめられます。
- MenuItem.SHOW_AS_ACTION_NEVER
- ActionBar上に表示しません。
- MenuItem.SHOW_AS_ACTION_WITH_TEXT
- アイコンとテキストラベルを一緒に表示します
また、Honeycombのデフォルト設定では、ActionBar上にMenuの要素を個別に並べて表示することはありません。
タブレットデバイスではメニューボタンを押してから個別要素(詳細な選択肢)を表示する、一連の流れをメニューの標準的なメニュー動作としているからです。
Honeycombでは、xlargeスクリーン以上のタブレットデバイスを念頭に、バーに「more」ボタンが表示されます。ActionBarの右端の「more」ボタンを押下すると、未表示のメニュー一覧がプルダウンメニューで表示されます
0 件のコメント:
コメントを投稿