操作模式子菜单和 checkableBehavior

Action mode submenu and checkableBehavior

我对子菜单和 android:checkableBehavior="single" 有一个奇怪的问题。如果菜单在操作栏中,它工作正常,但如果菜单处于操作模式,则显示复选框而不是单选按钮。我使用 AppCompatActivity 并使用 startActionMode() 创建操作模式。

菜单 xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/priority"
        android:title="@string/priority"
        app:showAsAction="ifRoom">

        <menu>
            <group android:checkableBehavior="single">
                <item
                    android:id="@+id/low_priority"
                    android:title="@string/low_pririty"/>
                <item
                    android:id="@+id/normal_priority"
                    android:title="@string/normal_priority"/>
                <item
                    android:id="@+id/high_priority"
                    android:title="@string/high_priority"/>
            </group>
        </menu>
    </item>
</menu>

我该如何解决这个问题?

你的菜单使用 startSupportActionMode 方法而不是 startActionMode 方法对我来说效果很好。使用支持库AppCompatActivity时不应使用startActionMode方法。

.startSupportActionMode(new android.support.v7.view.ActionMode.Callback() {
            @Override
            public boolean onCreateActionMode(android.support.v7.view.ActionMode mode, Menu menu) {
                MenuInflater inflater = mode.getMenuInflater();
                inflater.inflate(R.menu.test_menu, menu);
                return true;
            }

            @Override
            public boolean onPrepareActionMode(android.support.v7.view.ActionMode mode, Menu menu) {
                return false;
            }

            @Override
            public boolean onActionItemClicked(android.support.v7.view.ActionMode mode, MenuItem item) {
                return false;
            }

            @Override
            public void onDestroyActionMode(android.support.v7.view.ActionMode mode) {

            }
        });