web-dev-qa-db-fra.com

NavigationView: comment insérer un diviseur sans sous-groupe?

Comment puis-je mettre un diviseur sans sous-groupe de titre dans le nouveau 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>

Je voudrais mettre une ligne entre les articles amigos et ajustes sans titre Configuración.

Merci!!!

22

Il vous suffit de définir un group avec un ID unique. J'ai regardé l'implémentation de NavigationView, et cela créera un diviseur à chaque fois que l'ID de groupe est changé.

par exemple.

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

Je l'ai essayé et ça marche

Voir implémentation de la ligne n ° 122-125

Ceci est mon fichier de menu et crée le séparateur:

<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));

Voici l'essentiel de DividerItemDecoration

DividerItemDecoration.Java

6
Ravi Teja

en utilisant xml

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

par programme

 yourNavigationView.setItemIconTintList(null);

Je pense que c'est une bonne réponse.

Bonne chance.

3
Gundu Bandgar