22

Wie kann ich eine Teiler ohne Titel Untergruppe in der neuen NavigationView setzen?NavigationView: wie Teiler ohne Untergruppe einfügen?

<?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> 

Ich möchte eine Linie beetween amigos setzen und ajustes Artikel ohne Configuración Titel.

Danke !!!

+0

Verwenden Jin Antwort. Es klappt. – hungryghost

Antwort

57

Alles, was Sie tun müssen, ist eine group mit einer eindeutigen ID zu definieren. Ich schaute durch NavigationView Implementierung, und es wird ein Teiler jedes Mal, wenn die Gruppen-ID geändert wird.

z.B.

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

Ooooh, ich muss das versuchen! Ich hoffe es funktioniert, weil mich das gestört hat. Ich werde es testen und zurück melden !! – hungryghost

+0

Habe es gerade getestet. Funktioniert wie ein Zauber, danke! – hungryghost

+1

Legen Sie ' 0dp' fest, um die Auffüllung zu entfernen, wenn Sie dies tun, es sei denn, Sie möchten, dass jede Gruppe über Auffüllung verfügt. –

6

habe ich versucht, dies und es funktionierte

See implementation from line no 122-125

Das ist mein Menü Datei, und es wird das Trennzeichen zu erstellen:

<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> 
3

XML

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

Programmatically

yourNavigationView.setItemIconTintList(null); 

Ich glaube, dass ist eine gute Antwort.

Bestes Glück. Hier

6
NavigationView navigationView = (NavigationView) findViewById(R.id.navigation); 
NavigationMenuView navMenuView = (NavigationMenuView) navigationView.getChildAt(0); 
navMenuView.addItemDecoration(new DividerItemDecoration(appContext,DividerItemDecoration.VERTICAL_LIST)); 

ist der Kern von DividerItemDecoration

DividerItemDecoration.java

+0

Kann ich die Höhe der AddItemDecoration Linie zu ändern 1px? – Prabs

+0

Ja, Sie können es in DividerItemDecoration.i aktualisieren, ich denke, es ist bereits 1px. wenn nicht, aktualisieren Sie es auf 1px; –

+0

Wie? Gibt es eine Methode, dies zu tun? 'addItemDecoration' akzeptiert keinen Parameter, der die Größe der Zeile bestimmt – Prabs