从导航抽屉子菜单中删除小节和

Remove subsection and from navigation drawer submenu

我想删除在子菜单中创建的不需要的 space。

有没有可能我可以从 menu.xml class 实现它?

这是我的 navigation_drawer_menu.xml

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


<group android:checkableBehavior="single">
    <item
        android:id="@+id/all"
        android:checked="true"
        android:icon="@drawable/ic_channels"
        android:title="All Channels" />
    .......
    <item
        android:id="@+id/other"
        android:icon="@drawable/ic_other"
        android:title="Others" />

</group>

<item android:title="">
    <menu>
        <item
            android:id="@+id/setting"
            android:icon="@drawable/ic_action_settings"
            android:title="Settings" />
        <item
            android:id="@+id/about"
            android:icon="@drawable/ic_about"
            android:title="About" />
        <item
            android:id="@+id/share"
            android:icon="@drawable/ic_share"
            android:title="Share" />
    </menu>
</item>

谢谢。

首先,请阅读 Ian Lake(Android 开发技术推广工程师)的回答:

NavigationView seeks to match the material design specs for the navigation drawer which state an 8dp space between content areas. Generally there are no ways to override NavigationView to specifically break the specifications.

From:

如您所见,这个不需要的填充是您部分的 sub header

要删除它,您需要删除这个

<item android:title=""></item>

为此,您需要 ****合并** 所有菜单元素** () 到单个组(无子部分)。

更改后您的代码应如下所示:

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


<group android:checkableBehavior="single">
    <item
        android:id="@+id/all"
        android:checked="true"
        android:icon="@drawable/ic_channels"
        android:title="All Channels" />
    .......
    <item
        android:id="@+id/other"
        android:icon="@drawable/ic_other"
        android:title="Others" />

     <menu>
        <item
            android:id="@+id/setting"
            android:icon="@drawable/ic_action_settings"
            android:title="Settings" />
        <item
            android:id="@+id/about"
            android:icon="@drawable/ic_about"
            android:title="About" />
        <item
            android:id="@+id/share"
            android:icon="@drawable/ic_share"
            android:title="Share" />
       <menu>
</group>

你仍然可以这样做:How to create a custom navigation drawer in android

有问题欢迎提问

希望对您有所帮助

我就是这样实现的。因为您正在向菜单添加标题,所以无法识别它是空的。

<?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/nav1"
            android:checked="true"
            android:title="Pos 1" />
        <item
            android:id="@+id/nav2"
            android:title="Pos 2" />

    </group>

    <group
        android:id="@+id/menu_two"
        android:checkableBehavior="single">
        <item
            android:id="@+id/pos3"
            android:title="Pos 3" />
        <item
            android:id="@+id/pos4"
            android:title="Pos 4" />

    </group>

</menu>

要以编程方式完成此操作,请使用重载:

menu.add(int groupId, int itemId, int order, int titleRes)

(并确保为不同的部分提供不同的 groupId)