删除子部分和导航抽屉子菜单

时间:2016-01-06 23:34:32

标签: android navigation-drawer submenu

我想删除子菜单中创建的不需要的空间。

我是否有可能从menu.xml课程中实现这一目标?

这是我的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>

Navigation drawer android

感谢。

3 个答案:

答案 0 :(得分:6)

这就是我实现它的方式。因为您要为菜单添加标题,所以无法识别它是空的。

<?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>

答案 1 :(得分:2)

首先,请阅读Ian Lake的(Android Developer Advocate)答案:

  

NavigationView寻求与材料设计specs for the navigation drawer匹配,后者在内容区域之间表示8dp空间。   通常,没有办法覆盖NavigationView   专门打破规格。

     

material design specs

     

来自:How I can remove the unnecessary top padding of the Navigation view?

正如您所看到的那样,不受欢迎的填充是您所在部分的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

如果您有疑问,请随意提问

希望有所帮助

答案 2 :(得分:0)

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

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

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