相关疑难解决方法(0)

如何在特定菜单项之间添加分隔符?

背景

我在操作栏(实际上是工具栏)中有一个菜单项,当单击时,会显示可供选择的项目列表,类似于单选按钮:

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

    <item
        android:icon="@drawable/..."
        android:title="@string/..."
        app:showAsAction="always">
        <menu>
            <group
                android:id="@+id/..."
                android:checkableBehavior="single">
                <item .../>
                <item .../>
                <item .../>
            </group>
        </menu>
    </item>
</menu>
Run Code Online (Sandbox Code Playgroud)

我需要在这个项目列表下面放一个项目,它将在它和列表之间有一个分隔符.与材料设计指南显示的相似(取自此处):

在此输入图像描述

编辑:这是我想要做的草图:

在此输入图像描述

问题

我找不到办法去做.

我试过的

我发现的唯一可行解决方案是:

  1. 更改活动的主题(此处),但这也会影响活动的其他菜单项

  2. 菜单项出现在操作栏上时在菜单项之间放置分隔符的方法,但此处它们不会出现在工具栏本身上.它们出现在所选项目的弹出菜单上.

  3. 我试图在列表和额外项目之间放置假物品,我也尝试放置一个组,一个空组,甚至尝试了各种属性.

可悲的是没有用.

这个问题

如何在动作项目的弹出菜单的特定项目之间添加分隔符?

也许我需要在单击操作项时创建自定义弹出菜单(如此)?如果是这样,我如何在特定项目之间放置分隔符?也许使用Spinner作为动作项目?

android submenu divider android-actionbar android-toolbar

21
推荐指数
3
解决办法
3万
查看次数

我无法将子菜单项设置为已选中

我正在为我的抽屉使用NavigationView.这是menus.xml文件,它定义了抽屉的所有菜单项:

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/item_1"
            android:title="Item 1"
            android:checked="true" />
        <item
            android:id="@+id/item_2"
            android:title="Item 2" />
        <item
            android:id="@+id/item_3"
            android:title="Item 3" />
        <item
            android:id="@+id/item_4"
            android:title="Item 4" />
        <item android:title="List 1">
            <menu>
                <item
                    android:id="@+id/subitem_1"
                    android:title="SubItem 1" />
                <item
                    android:id="@+id/subitem_2"
                    android:title="SubItem 2" />
            </menu>
        </item>
        <item android:title="List 2">
            <menu>
                <item
                    android:id="@+id/subitem_3"
                    android:title="SubItem 3" />
                <item
                    android:id="@+id/subitem_4"
                    android:title="SubItem 4" />
            </menu>
        </item>
    </group>
</menu>
Run Code Online (Sandbox Code Playgroud)

事情是当我在子菜单项上调用setChecked(true)时,它不会突出显示.

因此,如果我在子菜单项上强制使用属性android:checkable ="true",则需要两次单击才能突出显示该属性.此外,如您所见,项目1突出显示,checkableBehaviour设置为单一.在这种情况下,子菜单和第一个项目仍然突出显示.为什么在运行setChecked(true)时子菜单没有突出显示?

android menu menuitem

4
推荐指数
1
解决办法
2822
查看次数