android - 单击时如何标记抽屉导航中的子菜单?
问题描述
我使用这个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>
但是,当我单击子类别中的消息菜单项时,它没有被标记,而是只标记了不在子类别中的项目。像下面这样:
如果有人可以帮助我,我会很高兴 :) 谢谢。
解决方案
正如你所拥有的,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
推荐阅读
- c# - Unity Prefabs 在构建中消失,但在编辑器中正常运行
- reporting-services - 将组行数从一组传递到另一组
- c - 变量文件可能尚未初始化
- node.js - 想询问有关让第三方访问我们的 API 端点的建议
- java - How tu run junit test suite multiple times with different WebDriver configuration
- linux-kernel - 如何在 Beaglebone Black 上安装 linux Headers
- regex - 使用正则表达式将数学公式拆分为数组
- xml - cvc-elt.1:找不到元素“数据”的声明
- android - RxJava 使用 Single 数据并返回 Completable
- php - 如何将值传递给php中的数组?