LoginSignup
2
1

More than 5 years have passed since last update.

showAsActionが効かない

Posted at

ActionModeメニューのレイアウト定義ファイルにshowAsActionが効かない場合、対応する方法をメモします。

menu定義ファイルにapp:showAsAction="always"を記述しているにも拘らず、メニューアイテムが・・・の中に入ってしまいます。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_menu_item_search"
        android:icon="@android:drawable/ic_menu_search"
        android:onClick="onActionItemClicked"
        android:title="@string/action_menu_item_search"
        app:showAsAction="always">
    </item>
    <item
        android:id="@+id/action_menu_item_save"
        android:icon="@android:drawable/ic_menu_save"
        android:onClick="onActionItemClicked"
        android:title="@string/action_menu_item_save"
        app:showAsAction="always">
    </item>
</menu>

プログラミングでメニューアイテムの該当属性を設定すれば、解決になります。

    @Override
    public void onActionModeStarted(ActionMode mode) {
        if (actionMode == null) {
            actionMode = mode;
            Menu menu = mode.getMenu();

            // Inflate your own menu items
            mode.getMenuInflater().inflate(R.menu.menu_action_mode2, menu);
            menu.getItem(2).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
            menu.getItem(3).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        }

        super.onActionModeStarted(mode);
    }
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1