サポートライブラリ版ActionBarにActionItemを追加する

3.0以降の標準のActionBar (android.app.ActionBar) を使うなら、
何も考えなくても従来通り onCreateOptionsMenu(Menu menu) でメニューをリソースから展開すればいいだけなのだけど、
サポートライブラリ版のActionBar (android.support.v7.app.ActionBar) だと 2.3以前のデバイスで見たときにこんな感じに。。

20130905-122057

メニューキーを押すと出てくる従来型のメニューです。
アクションバーの上には表示されない。

メニューリソースで
android:showAsAction=”ifRoom”
とかしてもダメ。

公式のドキュメントを見直してみると、サポートライブラリを使う場合、showAsAction属性は標準のネームスペース(http://schemas.android.com/apk/res/android) のものは使わないでーって書いてありました。
# わざわざ太字で^^;

かわりに、”http://schemas.android.com/apk/res-auto” を使います。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >

<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:icon="@drawable/ic_settings"
    app:showAsAction="ifRoom"
    android:title="@string/action_settings"/>

</menu>

20130905-140701

関連: Android 2.3 以下でもActionBar

コメントを残す

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