icono - ¿Cómo forzar el menú de desbordamiento en la barra de acciones Android?
menu android studio (3)
De acuerdo, esto es simple pero difícil de entender.
Primero necesita un elemento de menú que desee usar como inflador de desbordamiento. Ejemplo
<item
android:id="@+id/a_More"
android:icon="@drawable/more"
android:showAsAction="always"
android:title="More">
</item>
Una vez que tenga su artículo, agregue un submenú que contenga los artículos que desea en el menú de desbordamiento. Ejemplo:
<item
android:id="@+id/a_More"
android:icon="@drawable/more"
android:showAsAction="always"
android:title="More">
<menu>
<item
android:id="@+id/aM_Home"
android:icon="@drawable/home"
android:title="Home"/>
</menu>
</item>
Al hacer clic, se inflarán otros elementos dentro. Mi aplicación está utilizando ActionBarSherlock 4.0, por lo que antes de que esto funcione para usted, tendrá que acceder a "SplitActionBar". (Aún funcionará en la barra de acciones android predeterminada)
He aquí cómo: en su archivo AndroidManifest.xml, necesita agregar este código en la actividad en la que necesita el menú de desbordamiento. Honestamente, no debería importar si tiene la barra de acciones dividida o no, pero yo lo prefiero.
android:uiOptions="splitActionBarWhenNarrow"
NOTA: Su artículo que infla su menú de desbordamiento DEBE showAsAction="always"
Vwola! tienes un menú de desbordamiento! Espero que te haya ayudado. :)
Android action bar compat
¿Es posible? En dispositivos más antiguos (pre 3.0) los elementos que no se ajustan a la barra de acción solo se muestran cuando se presiona la tecla de menú, quiero que estos elementos se agrupen en el menú de desbordamiento de la barra de acciones.
El menú de desbordamiento de acción solo está disponible cuando no hay un botón de menú fijo disponible en el dispositivo. Encontré esto indicado en los temas del marco en Interfaz de usuario> Barra de acciones, revisa la tercera viñeta here .
Hay una biblioteca de barra de acciones escrita por Jake Wharton llamada ActionBarSherlock. Quizás esto sea capaz de proporcionarle un estilo de menú de desbordamiento de acción incluso en dispositivos más antiguos (que incluyen un botón de menú fijo), sin embargo, no he investigado esto.
Editar: ActionBarSherlock 4.0 (actualmente un candidato de lanzamiento) tiene funcionalidad incorporada para forzar el desbordamiento de acción. Si desea extender el ejemplo de ActionBarCompat usted mismo, puede echar un vistazo a github para tener una idea de cómo lo implementó Jake. Yo sugeriría que solo busque utilizar su biblioteca, ya que está muy bien hecha.
Si elige usar la biblioteca de Jake, busque configurar el tema Activity como @ style / Theme.Sherlock.ForceOverflow para forzar el menú de desbordamiento en dispositivos más antiguos.
Editar2: El uso del tema ForceOverflow
causa problemas ( ejemplo # 1 ) en dispositivos con el botón de menú de hardware. Por lo tanto, Jake Wharton va a eliminar ForceOverflow
en las versiones futuras.
Siguiendo la sugerencia de LeviRockerSk8er, forcé a tener un menú de desbordamiento en la barra de acciones de esta manera:
Este es el código para "menu.xml":
<item
android:id="@+id/web_clasica"
android:icon="@drawable/ic_action_web_site"
android:showAsAction="ifRoom"
android:title="@string/menu_web"
/>
<item
android:id="@+id/overflow_fijo"
android:icon="@drawable/ic_action_core_overflow"
android:showAsAction="always"
android:title="@string/menu_email"
>
<menu>
<item
android:id="@+id/email"
android:icon="@drawable/ic_action_new_email"
android:showAsAction="ifRoom"
android:title="@string/menu_email"
/>
<item
android:id="@+id/share"
android:icon="@drawable/ic_action_share"
android:showAsAction="ifRoom"
android:title="@string/menu_share"
/>
<item
android:id="@+id/about"
android:showAsAction="ifRoom"
android:icon="@drawable/ic_action_action_about"
android:title="@string/menu_about"/>
</menu>