usar studio sgoliver personalizar icono como bar agregar android android-actionbar android-search

android - studio - Barra de acción: opción ifRoom que deja demasiado espacio



personalizar action bar android studio (3)

El máximo de iconos para la opción "ifRoom" es 5 (cinco), incluso cuando me mudé a mi tableta de 100 pulgadas de tamaño de pantalla :-) y gírelo desesperadamente en el paisaje. Vea el enlace de la respuesta de Jake Wharton (¡Gracias!) developer.android.com/design/patterns/actionbar.html

Tengo un problema en mi barra de acción. Intenté configurar una vista de búsqueda para obtener una barra de búsqueda ampliable.

Esto funciona bien, excepto por el hecho de que tuve que configurar todos los demás elementos del menú con la opción ifRoom para permitir que el campo de búsqueda ocupe toda la sala cuando se hace clic en el icono de búsqueda.

Esta parte también funcionó bien, excepto por el hecho de que muchos elementos del menú se insertaron en el desbordamiento del menú, solo quedaron 2 iconos en la pantalla vertical (incluida la barra de búsqueda).

Hice otra prueba en otra actividad con 5 elementos de menú:

  1. En el primer caso, los puse a todos con android:showAsAction="always"
  2. En el segundo caso, los puse a todos con `` android: showAsAction = "ifRoom" `

Aquí están los resultados:

Caso 1:

Caso 2:

¿Por qué si uso ifRoom , solo se muestran 2 iconos mientras que en realidad 5 podrían llenar el lugar fácilmente?

Debido a esto, solo tengo un elemento de menú disponible junto a mi elemento de vista de búsqueda ...

¡Gracias!


En el archivo XML, puede solicitar que aparezca un MenuItem como un elemento de acción declarando android:showAsAction="ifRoom" para el <item> . De esta manera, el MenuItem aparece en la ActionBar de ActionBar para un acceso rápido solo si hay espacio disponible. Si no hay suficiente espacio, el elemento aparece en el menú de desbordamiento.

entonces tu respuesta es:

use "ifRoom" para solicitar que aparezca un elemento en la barra de acción, pero permita que el sistema lo mueva al menú de desbordamiento cuando no haya suficiente espacio (cuando el espacio está limitado en pantallas más pequeñas).

Puedes usar android:showAsAction="always" para mostrar todo el menú en la ActionBar de ActionBar .


Parece que es una decisión de diseño:

Jake Wharton dice:

Cuando está contenido dentro de la barra de acción, hay un máximo finito de elementos de acción según el ancho independiente de la densidad del dispositivo. Los elementos de acción tampoco pueden cubrir más de la mitad del ancho de la barra de acción.

Desde here