web-dev-qa-db-ja.com

NavigationView:サブグループなしでディバイダーを挿入する方法?

新しい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>

Amigosとajustesの間に、Configuraciónタイトルのない行を追加したいと思います。

ありがとう!!!

22

必要なのは、一意のIDを使用してgroupを定義することだけです。 NavigationViewの実装を調べたところ、グループIDが変更されるたびに仕切りが作成されました。

例えば.

<group Android:id="@+id/my_id">
    <!-- Divider will appear above this item -->
    <item ... />
</group>
58
Jin

私はこれを試してみましたがうまくいきました

行番号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>
6
N J
NavigationView navigationView = (NavigationView) findViewById(R.id.navigation);
NavigationMenuView navMenuView = (NavigationMenuView) navigationView.getChildAt(0);
navMenuView.addItemDecoration(new DividerItemDecoration(appContext,DividerItemDecoration.VERTICAL_LIST));

これがDividerItemDecorationの要点です

DividerItemDecoration.Java

6
Ravi Teja

xmlを使用

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

プログラムで

 yourNavigationView.setItemIconTintList(null);

いい答えだと思います。

幸運。

3
Gundu Bandgar