我需要对我的应用程序执行排序操作,并保持选中的项目处于选中状态。但是,当我为其使用组时,我的主MenuItem开始忽略属性showAsAction =“ always”。

遵循所使用的布局。我正在使用21.0.2版的API 19和AppCompat:

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

    <item
        android:icon="@drawable/ic_content_sort"
        android:title="@string/menu_sort"
        app:showAsAction="always">
        <group android:checkableBehavior="single" >
            <item
                android:id="@+id/action_sort_by_date"
                android:title="@string/menu_sort_by_date" />
            <item
                android:id="@+id/action_sort_by_description"
                android:title="@string/menu_sort_by_description" />
        </group>
    </item>

</menu>

最佳答案

我找到了一个与此相关但不相等的问题的解决方案:Having two single-selection groups in ActionBar doesn't work, but attaching a pop up menu instead doesn't work either

这样,我只需要在新标签菜单中加入“组”标签即可:

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

    <item
        android:icon="@drawable/ic_content_sort"
        android:title="@string/menu_sort"
        app:showAsAction="always">
        <menu> <!-- SOLUTION -->
            <group android:checkableBehavior="single" >
                <item
                    android:id="@+id/action_sort_by_date"
                    android:title="@string/menu_sort_by_date" />
                <item
                    android:id="@+id/action_sort_by_description"
                    android:title="@string/menu_sort_by_description" />
            </group>
        </menu>
    </item>

</menu>

10-07 22:31