Sto utilizzando il nuovo NavigationView
per creare il menu del cassetto di navigazione da XML. Devo posizionare un divisore tra le voci del menu della sezione, che cambiano tra le sezioni della mia app e le impostazioni e aiutare i collegamenti di supporto & nella parte inferiore.Come ottenere divisori nel menu di NavigationView senza titoli?
In tutti gli esempi che ho visto, vedo come questo possa essere fatto mettendo un altro <menu>
all'interno di un <item>
, ma la <item>
richiede di avere l'attributo android:title
, quindi la cosa migliore che posso fare è rendere il titolo vuoto, che lascia uno spazio vuoto prima delle impostazioni e aiuta il feedback di &.
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_section_1"
android:icon="@drawable/ic_dashboard"
android:title="@string/section_1"
android:checked="true" /> <!-- default selection -->
<item
android:id="@+id/nav_section_2"
android:icon="@drawable/ic_dashboard"
android:title="@string/section_2" />
<item
android:id="@+id/nav_section_3"
android:icon="@drawable/ic_dashboard"
android:title="@string/section_3" />
</group>
<item android:title="@null"> <!-- I don't want a title or space here! -->
<menu>
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_settings"
android:title="@string/settings" />
<item
android:id="@+id/nav_help_feedback"
android:icon="@drawable/ic_help"
android:title="@string/help_feedback" />
</menu>
</item>
</menu>
Ho provato varie combinazioni di <menu>
, <item>
e <group>
tag, ma non ho trovato nulla che funziona. Questo per esempio presenta il problema di utilizzare l'ultimo elemento del gruppo precedente, come il titolo del gruppo:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_section_1"
android:icon="@drawable/ic_dashboard"
android:title="@string/section_1"
android:checked="true" /> <!-- default selection -->
<item
android:id="@+id/nav_section_2"
android:icon="@drawable/ic_dashboard"
android:title="@string/section_2" />
<item
android:id="@+id/nav_section_3"
android:icon="@drawable/ic_dashboard"
android:title="@string/section_3" />
</group>
<group> <!-- This puts @string/section_3 as the group title! -->
<menu>
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_settings"
android:title="@string/settings" />
<item
android:id="@+id/nav_help_feedback"
android:icon="@drawable/ic_help"
android:title="@string/help_feedback" />
</menu>
</item>
</menu>
ci deve solo essere un modo semplice per fare questo utilizzando solo la descrizione del menu XML. Google ha questo stesso comportamento nel loro Material design spec.
EDIT:
Ancora un altro primo tentativo:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="@null"> <!-- Still a space here though! -->
<menu>
<group android:checkableBehavior="single"> <!-- And this checkable behavior behaves strangely for some reason -->
<item
android:id="@+id/nav_section_1"
android:icon="@drawable/ic_dashboard"
android:title="@string/section_1"
android:checked="true" /> <!-- default selection -->
<item
android:id="@+id/nav_section_2"
android:icon="@drawable/ic_dashboard"
android:title="@string/section_2" />
<item
android:id="@+id/nav_section_3"
android:icon="@drawable/ic_dashboard"
android:title="@string/section_3" />
</group>
</menu>
</item>
<group> <!-- Finally, no space or title here! -->
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_settings"
android:title="@string/settings" />
<item
android:id="@+id/nav_help_feedback"
android:icon="@drawable/ic_help"
android:title="@string/help_feedback" />
</item>
</menu>
Questo non lascia spazio tra gli elementi sopra e sotto il divisore, ma c'è ancora lo spazio in alto adesso. Inoltre, lo android:checkableBehavior="single"
si comporta in modo strano. Gli elementi non sono selezionati quando vengono selezionati per la prima volta e gli elementi non sono deselezionati una volta che altri sono stati selezionati.
Dai un'occhiata alla mia risposta che funziona perfettamente per te. [NaviagtionMenuList Divider] (http://stackoverflow.com/questions/30916946/android-navigationview-menu-group-divider/40259846#40259846) –
Dovresti controllare la risposta, hai tag non completati e non funziona –