如何在导航抽屉中显示菜单类别的菜单图标?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在导航抽屉中显示菜单类别的菜单图标?相关的知识,希望对你有一定的参考价值。

我可以在子菜单的菜单中轻松显示图标,但如果我想显示类别菜单项的图标怎么办?我尝试了下面的代码示例,但它只是忽略了android:icon参数并只显示文本。第一个截图是我得到的,下一个截图是我希望看到的。

enter image description here

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">


<item
    android:icon="@drawable/ic_lists"
    android:title="@string/lists">
    <menu>
        <item
            android:id="@+id/nav_my_lists"
            android:title="@string/my_lists" />
        <item
            android:id="@+id/nav_list_search"
            android:title="@string/search_and_apply" />
        <item
            android:id="@+id/nav_list_applications"
            android:title="@string/applications" />
        <item
            android:id="@+id/nav_list_banned"
            android:title="@string/banned" />
    </menu>
</item>


<item
    android:icon="@drawable/ic_feedback"
    android:title="@string/feedback">
    <menu>
        <item
            android:id="@+id/nav_feedback_from_others"
            android:title="@string/from_others" />
        <item
            android:id="@+id/nav_feedback_to_leave"
            android:title="@string/i_need_to_leave" />
        <item
            android:id="@+id/nav_my_feedback"
            android:title="@string/i_have_left" />
        <item
            android:id="@+id/nav_feedback_info"
            android:title="@string/banned" />
    </menu>
</item>


<item android:title="@string/logout" />

问题是,如果有菜单图标属性,为什么不显示顶级类别菜单项?

答案

使用以下代码

<?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group android:checkableBehavior="single">
    <item
        android:icon="@drawable/ic_lists"
        android:title="@string/lists">

       <item
                android:id="@+id/nav_my_lists"
                android:title="@string/my_lists"
                />
            <item
                android:id="@+id/nav_list_search"
                android:title="@string/search_and_apply" />
            <item
                android:id="@+id/nav_list_applications"
                android:title="@string/applications" />
            <item
                android:id="@+id/nav_list_banned"
                android:title="@string/banned" />
    <item
        android:icon="@drawable/ic_feedback"
        android:title="@string/feedback"/>

            <item
                android:id="@+id/nav_feedback_from_others"
                android:title="@string/from_others" />
            <item
                android:id="@+id/nav_feedback_to_leave"
                android:title="@string/i_need_to_leave" />
            <item
                android:id="@+id/nav_my_feedback"
                android:title="@string/i_have_left" />
            <item
                android:id="@+id/nav_feedback_info"
                android:title="@string/banned" />
    </group>

以上是关于如何在导航抽屉中显示菜单类别的菜单图标?的主要内容,如果未能解决你的问题,请参考以下文章

如何使向上按钮返回而不是打开导航抽屉

像导航抽屉一样切换片段(带后退箭头)

选择导航菜单项时不会替换上一个片段

如何在路线标题旁边的菜单抽屉中集成图标

Android - 导航抽屉 - 与动态菜单项重叠的片段

单击导航抽屉的项目不会打开片段