我想删除子菜单中创建的不需要的空间。
我是否有可能从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>
感谢。
答案 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
专门打破规格。
来自: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)