22

如何在新的 NavigationView 中放置没有标题子组的分隔符?

<?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/drawer_armario"
        android:icon="@drawable/armario"
        android:title="@string/armario"  />
    <item
        android:id="@+id/drawer_amigos"
        android:icon="@drawable/amigos"
        android:title="@string/amigos" />

</group>

<item android:title="Configuración">
    <menu>
        <item

            android:id="@+id/drawer_ajustes"
            android:icon="@drawable/ajustes"
            android:title="@string/ajustes" />
        <item
            android:id="@+id/drawer_ayuda"
            android:icon="@drawable/ayuda"
            android:title="@string/ayuda" />
        <item
            android:id="@+id/drawer_sign_out"
            android:icon="@drawable/sign_out"
            android:title="@string/sign_out" />

    </menu>

</item>

我想在没有 Configuración 标题的情况下在 amigos 和 ajustes 项目之间添加一行。

谢谢!!!

4

4 回答 4

58

您需要做的就是定义group具有唯一 ID 的 a。我查看了NavigationView的实现,每次更改组 ID 时都会创建一个分隔符。

例如

<group android:id="@+id/my_id">
    <!-- Divider will appear above this item -->
    <item ... />
</group>
于 2015-06-02T20:25:29.330 回答
6

我试过了,它奏效了

请参阅第 122-125 行的实施

这是我的菜单文件,它正在创建分隔符:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MyFirstMNCActivity">
    <group android:id="@+id/grp1">
        <item
            android:id="@+id/navigation_item_1"
            android:checked="true"
            android:icon="@drawable/ic_home"
            android:title="@string/navigation_item_1" />

    </group>

    <group android:id="@+id/grp2">

        <item
            android:id="@+id/navigation_item_2"
            android:icon="@drawable/ic_home"
            android:title="@string/navigation_item_2" />
    </group>
</menu>
于 2015-06-04T09:20:05.140 回答
6
NavigationView navigationView = (NavigationView) findViewById(R.id.navigation);
NavigationMenuView navMenuView = (NavigationMenuView) navigationView.getChildAt(0);
navMenuView.addItemDecoration(new DividerItemDecoration(appContext,DividerItemDecoration.VERTICAL_LIST));

这是 DividerItemDecoration 的要点

DividerItemDecoration.java

于 2016-02-14T18:14:53.287 回答
3

使用 xml

<android.support.design.widget.NavigationView
...
app:itemIconTint="@android:color/black" 
... />

以编程方式

 yourNavigationView.setItemIconTintList(null);

我觉得这是一个很好的答案。

好运。

于 2016-01-08T04:27:51.297 回答