如何在菜单项中添加分隔符?

时间:2015-12-30 13:19:42

标签: android android-layout layout navigation-drawer

我需要在Navigation Drawer菜单项之间添加分隔符。

NavigationDrawer的代码

<android.support.design.widget.NavigationView
   android:id="@+id/navigationView"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_gravity="start"
   android:background="@color/colorPrimary"
   android:fitsSystemWindows="true"
   android:theme="@style/NavigationTheme"
   custom:headerLayout="@layout/drawer_header"
   custom:menu="@menu/drawer_view" />

drawer_view.xml

<?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/nav_home"
        android:icon="@drawable/com_mixpanel_android_ic_bell"
        android:title="@string/home" />
    <item> </item>
    .....
    </group>
</menu>

主题

 <style name="NavigationTheme" parent="ThemeOverlay.AppCompat.Dark">
    <item name="colorControlHighlight">@color/colorAccent</item>
</style>

Screenshot of navigation drawe - [R

如何在两个menu_items

之间添加分隔符(View)

1 个答案:

答案 0 :(得分:4)

解决方案很简单 - 将项目分成不同的组(组必须分配不同的,唯一ID )。

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group 
        android:id="@+id/group1"
        android:checkableBehavior="single">
    <item>(...)</item>
    </group>

    <group 
        android:id="@+id/group2"
        android:checkableBehavior="single">
    <item>(...)</item>
    </group>
</menu>

<小时/> 修改

在您的情况下,当您需要删除此填充时,有两种解决方案:

  1. 请勿使用custom:menu,使用适配器创建ListView并为ListView设置并添加

    android:divider="#FFFFFF"
    android:dividerHeight="1px"
    
  2. 此解决方案可能无效,因为Android平台开发人员可以更改参数:

    将以下行添加到dimens.xml

    <dimen name="design_navigation_padding_top_default" tools:override="true">0dp</dimen>
    <dimen name="design_navigation_separator_vertical_padding" tools:override="true">0dp</dimen>
    <dimen name="design_navigation_padding_bottom" tools:override="true">0dp</dimen>
    

    <dimen name="navigation_separator_vertical_padding">0dp</dimen>