首页 > 解决方案 > 单击时如何标记抽屉导航中的子菜单?

问题描述

我使用这个drawer_menu.xml制作了一个导航抽屉,代码是:

<?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:showIn="navigation_view">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/home"
            android:icon="@drawable/ic_home"
            android:title="Home"></item>
        <item
            android:id="@+id/profile"
            android:icon="@drawable/ic_profil"
            android:title="Profile"></item>
    </group>
    <item android:title="Communicate">
        <menu>
            <item
                android:id="@+id/message"
                android:icon="@drawable/ic_message"
                android:title="Message"></item>
            <item
                android:id="@+id/share"
                android:icon="@drawable/ic_share"
                android:title="Share"></item>
        </menu>
    </item>
</menu>

但是,当我单击子类别中的消息菜单项时,它没有被标记,而是只标记了不在子类别中的项目。像下面这样:

点击查看图片

如果有人可以帮助我,我会很高兴 :) 谢谢。

标签: androidnavigation-drawersubmenu

解决方案


正如你所拥有的,3 items第三个项目(通信)将有sub items,所以你需要 <group android:checkableBehavior="single">在那个子项目下添加,你也只用 2 个项目(家庭,个人资料)关闭你的标签,你没有包括第三个项目。尝试关闭最后,就像我在下面的代码中所做的那样:

 <group android:checkableBehavior="single">
        <item
            android:id="@+id/home"
            android:icon="@drawable/ic_home"
            android:title="Home"></item>
        <item
            android:id="@+id/profile"
            android:icon="@drawable/ic_profil"
            android:title="Profile"></item>


<item android:title="Communicate">
        <menu>
              <group android:checkableBehavior="single">//selecting one item from group
            <item
                android:id="@+id/message"
                android:icon="@drawable/ic_message"
                android:title="Message"></item>
            <item
                android:id="@+id/share"
                android:icon="@drawable/ic_share"
                android:title="Share"></item>
              </group>
        </menu>
    </item>
</group>//add this

推荐阅读