从导航抽屉子菜单中删除小节和
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)
我想删除在子菜单中创建的不需要的 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 overrideNavigationView
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)