ActionBarのViewControlは、アプリ内のViewを切り替えるUIとして使われます。
ViewControlは3つのActionModeを持っています。
- Normal
- Tab
- List
今回はListModeについてです。
●ActionMode:ListMode
ActionModeをListModeに設定すると、ViewControl部分にドロップダウンメニューが表示されます。
・サンプルコード
ActionBar actBar = getActionBar();
// リストに表示するアダプタを登録
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, new String[] {
"List Item 1", "List Item 2" });
// Navigationコールバックを登録する
actBar.setListNavigationCallbacks(adapter,
new ActionBar.OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition,
long itemId) {
return false;
}
});
// 最後にNavigationModeをListModeに設定
actBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
しかし、これだとアプリのタイトル文字列とケンカして見づらいです。
ListModeを使う場合、アプリアイコンで十分アイデンティティが確保されていれば、
アプリタイトルを非表示としたほうが良い場合がありそうです。
・アプリタイトルを表示しないサンプルコード
ActionBar actBar = getActionBar();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, new String[] {
"List Item 1", "List Item 2" });
actBar.setListNavigationCallbacks(adapter,
new ActionBar.OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition,
long itemId) {
return false;
}
});
// アプリタイトルを非表示に設定
actBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
actBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
●ActionBarを上下に分割して表示
ListModeを採用すると、どうしてもActionBarの領域が狭くなりがちです。ここにActionボタンも併用すると窮屈なUIになってしまいます。
その場合、ActionBarを画面上下に分割するsplitActionBarWhenNarrowの利用を考えます。
実装方法はいたってシンプル。
AndroidManifest.xmlのActivity要素にandroid:uiOptions="splitActionBarWhenNarrow"
を追加します。
・サンプルコード
<activity android:name=".MainActivity" android:label="@string/title_activity_main" android:uiOptions="splitActionBarWhenNarrow" >
ただし、画面横幅が一定サイズを超える場合はsplitActionBarWhenNarrowが有効とならな
い場合があります。
⇒http://yuki312.blogspot.jp/2012/07/androidsplitactionbarwhennarrow.html
以上です。


