Añadir separador en los elementos del Menú en Android


Si queremos añadir una linea divisora para separar los elementos del menú, debemos agrupar los menús con la etiqueta group , se requiere establecer un identificador al grupo, ejemplo:

<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="com.webserveis.testtheme.MainActivity">

    <group android:id="@+id/grp1">

        <item
            android:id="@+id/action_notification"
            android:icon="@drawable/ic_notifications_black_24dp"
            android:orderInCategory="100"
            android:title="@string/action_theme_default"
            app:showAsAction="ifRoom" />

        <item
            android:id="@+id/action_settheme_default"
            android:orderInCategory="100"
            android:title="@string/action_theme_default"
            app:showAsAction="never" />

        <item
            android:id="@+id/action_settheme_red"
            android:orderInCategory="100"
            android:title="@string/action_theme_red"
            app:showAsAction="never" />

    </group>

    <group android:id="@+id/grp2">
        <item
            android:id="@+id/action_settings"
            android:orderInCategory="100"
            android:title="@string/action_settings"
            app:showAsAction="never" />
    </group>
</menu>

Y luego cuando se carga la instancia del menú, para activar que se visualice la linea divisora de los grupos del menú, se hace con la función MenuCompat.setGroupDividerEnable valor true para activar la separación de menús y false para que no se visualice la separación entre los grupos

override fun onCreateOptionsMenu(menu: Menu): Boolean {
    menuInflater.inflate(R.menu.menu_main, menu)
    MenuCompat.setGroupDividerEnabled(menu, true)

    return true
}

Publicado por Codelaby

Mobile DevDesigner

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.