Cómo obtener divisores en el menú de NavigationView sin títulos?

Estoy usando el nuevo NavigationView para crear mi menú del cajón de la navegación de XML. Necesito colocar un divisor entre los elementos del menú de sección, que cambian entre las secciones de mi aplicación, y los ajustes y enlaces de ayuda y soporte en la parte inferior.

En todos los ejemplos que he visto, veo cómo esto se puede hacer poniendo otro <menu> dentro de un <item> , pero el <item> requiere tener el atributo android:title , así que lo mejor que puedo hacer es hacer El espacio en blanco del título, que deja un espacio vacío antes de los ajustes y la ayuda y la regeneración.

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

He intentado varias combinaciones de las etiquetas <menu> , <item> y <group> , pero no he encontrado nada que funcione. Esto, por ejemplo, tiene el problema de usar el último elemento del grupo anterior como el título del grupo:

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

Sólo tiene que ser una manera fácil de hacer esto utilizando sólo la descripción del menú XML. Google tiene este mismo comportamiento en sus especificaciones de diseño de material .

Configuración y soporte

EDITAR:

Otro intento más cercano:

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

Esto no deja espacio entre los elementos arriba y debajo del divisor, pero todavía hay el espacio en la parte superior ahora. Además, el android:checkableBehavior="single" comporta extrañamente. Los elementos no se seleccionan cuando se seleccionan la primera vez y los elementos no se deseleccionan una vez que otros se seleccionan.

De: NavigationView: ¿cómo insertar divisor sin subgrupo?

Parece que solo necesitas dar a tu group etiquetas ID únicas.

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

Como dice la respuesta:

[NavigationView] creará un divisor cada vez que se cambie el ID del grupo

Esta es la solución exacta para su pregunta aquí.

 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <group android:id="@+id/menu_top" android:checkableBehavior="single"> <item android:title="Switch Team"> <menu> <item android:id="@+id/team" android:title="" app:actionLayout="@layout/layout_spinner_for_drawer"/> </menu> </item> </group> <group android:id="@+id/menu_bottom" android:checkableBehavior="single"> <item android:id="@+id/nav_home" android:icon="@drawable/home" android:title="Home" /> <item android:id="@+id/nav_share" android:icon="@drawable/sharebox" android:title="Sharebox" /> <item android:id="@+id/nav_recognize" android:icon="@drawable/recognize" android:title="Recognize" /> <item android:id="@+id/nav_contact_us" android:icon="@drawable/contactus" android:title="Contact Us" /> <item android:id="@+id/nav_logout" android:icon="@drawable/signout" android:title="Logout" /> </group> </menu> 
  • Cómo cambiar el tamaño del icono de elemento de menú en NavigationView?
  • ¿Cómo diseñar el NavigationView de la biblioteca de soporte de diseño?
  • Cambiar Navegación Ver color del elemento Dinámicamente Android
  • Cómo poner el botón Cerrar sesión de Facebook al final de la vista de navegación
  • NavigationView obtener / buscar el diseño del encabezado
  • Cómo agregar vistas personalizadas en el nuevo NavigationView
  • Obtención de error al inflar la clase android.support.design.widget.NavigationView
  • Error de lanzamiento de NavigationView: No se encontró ningún identificador de recurso para el atributo 'menu' en el paquete
  • Cómo dar color de texto personalizado para un solo elemento de menú en un NavigationView?
  • ¿Cómo crear un divisor simple en el nuevo NavigationView?
  • NavigationView onClick de xml provoca errores
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.