Grupos en el menú de Android Studio.

En este tutorial vamos a ver como agrupar items de un menú. Recordemos que un menú en adroid studio es  un archivo “.xml” que se encuentra en los recursos de tu aplicación. Si quieres mas información sobre como crear y usar un menú ve el tutorial:

Menú (xml) en android Studio.

Para agrupar items dentro de un menú se usa la herramienta <group>.

 

Ventajas.

El crear grupos dentro de un menú te da algunas ventajas como:

1. Puedes mostrar u ocultar todos los elementos dentro del grupo. Así no necesitas ocultar cada item, sino solo el grupo. Esto se logra con la instrucción:

setGroupVisible( "id del gupo", boolean visible "false o true");
  • sólo necesitas la id del grupo usando (R.id.id_grupo).
  • boolean visible, elegir entre false no visible o true si es visible.

2. También puedes habilitar o bien des-habilitar el grupo y sus elementos, esto se logra con:

setGroupEnabled("id del grupo",  boolean enabled "false o true")
  • sólo necesitas la id del grupo usando (R.id.id_grupo)
  • boolean enabled, elegir entre false des-habilitado o true si esta habilitado.

3. Puedes especificar ai todos los elementos se pueden marcar con:

setGroupCheckable("id del grupo",boolean checkable "false o true", boolean exclusive "false o true")
  • sólo necesitas la id del grupo usando (R.id.id_grupo),
  • boolean checkable, elegir entre false no hay marca de checar, o true si se añade una marca para checar. (default es false).
  • boolean exclusive, true se refiere a que solo un item puede ser marcado a la vez, false se refiere a que se puede marcar cualquier item sin importar el estado de los otros items del grupo.

 

Como crear el grupo

Es muy sencillo, solo colocas los item que deseas agrupar dentro de:

<group android: id ="id_grupo">

//items para agrupar

</group>

NOTA: El sistema no va a separar los elementos del grupo, siempre estarán unidos.

Aquí esta un ejemplo:

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity"
    >

    <group>    android:id="@+id/group_zoom"
      <item
        android:icon="@drawable/zoom_menos"
        android:title="zoom out"
        android:id="@+id/zoom_menos"
        app:showAsAction="always"
        />


      <item
        android:icon="@drawable/zoom_mas"
        android:title="zoom in"
        android:id="@+id/zoom_mas"
        app:showAsAction="always"
        />
    </group>    

    <item
        android:title="Eliminar"
        android:id="@+id/eliminar"
        app:showAsAction="never"
        />


</menu>