Tengo una barra de acción en mi aplicación con 3 elementos.
Solo se pueden mostrar 2 debido a problemas de espacio, por lo que esperaría que se muestre el primero y el resto se muestre en el desbordamiento. Sin embargo, en la práctica, solo se muestran los 2 primeros elementos y no se detecta un desbordamiento.
Aquí está el código relevante: list_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/menu_insert"
android:icon="@android:drawable/ic_menu_add"
android:title="@string/menu_insert"
android:showAsAction="ifRoom|withText"/>
<item android:id="@+id/menu_call"
android:icon="@android:drawable/ic_menu_call"
android:title="@string/menu_call"
android:showAsAction="ifRoom|withText"/>
<item android:id="@+id/menu_agenda"
android:icon="@android:drawable/ic_menu_agenda"
android:title="@string/menu_agenda"
android:showAsAction="ifRoom|withText"/>
</menu>
Activity.java
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater mi = getMenuInflater();
mi.inflate(R.menu.list_menu, menu);
return true;
}
android
overflow
android-actionbar
Alfombrillas Raemen
fuente
fuente
Respuestas:
Si desea mostrar los tres puntos, independientemente del botón de menú del dispositivo. entonces puedes llamar a este método en tu clase de aplicación 'método onCreate-
fuente
res / menu / menu.xml
MainActivity.java
Descargar el conjunto de iconos de la barra de acción
fuente
android:showAsAction="always"
para más artículosMe doy cuenta de que este no es un menú adicional, pero es similar. Está bien, esto es simple pero fue difícil de entender.
Primero necesita un elemento de menú que desee utilizar como inflador de desbordamiento. Ejemplo
Una vez que tenga su artículo, agregue un submenú que contenga los artículos que desee en el menú adicional. Ejemplo:
Al hacer clic, esto inflará otros elementos dentro. Mi aplicación utiliza ActionBarSherlock 4.0, por lo que antes de que funcione, deberá acceder a "SplitActionBar". (Seguirá funcionando en la barra de acción predeterminada de Android)
He aquí cómo: En su archivo AndroidManifest.xml, debe agregar este código debajo de la actividad en la que necesita el menú adicional.
NOTA: Su artículo que infla su menú adicional DEBE
showAsAction="always"
¡Vwola! tienes un menú desbordado! Espero haberte ayudado. :)
fuente
En dispositivos con botones de menú de hardware (Galaxy S3, terco como es Samsung ...) el menú adicional se comporta como el menú 'tradicional', usando el botón de menú de hardware.
fuente
Cuando dice menú "desbordado", ¿se refiere a los tres puntos que aparecen al final para indicar que hay más elementos ... o se refiere a la barra de acción dividida que aparece en la parte inferior para los elementos desbordados?
Si te refieres a la barra de acción dividida, debes agregar esto al archivo de manifiesto de tu actividad
De forma predeterminada, el menú de desbordamiento de tres puntos debería ocurrir automáticamente, por lo que es difícil saber cuál es el problema a partir de la información que proporcionó anteriormente.
fuente
Para mostrar siempre el desbordamiento de la acción (tres puntos) en actionbarcompat:
en el archivo de menú, ejemplo:
main.xml
y en el archivo de actividad:
Me ha funcionado bien.
Probado en Google Nexus S, Samsung S3.
fuente
Parece que en los dispositivos con un botón de menú, el menú adicional no se muestra en la barra de acciones. Además, no tenemos forma de saber si un dispositivo tiene un botón de menú de hardware antes del nivel de API 14 (4.0+).
Esta solución agrega un botón de desbordamiento
android.support.v7.app.ActionBar
que abre el menú de opciones estándar solo en la versión anterior a Honeycomb (<3.0), de lo contrario, lo deja en manos del sistema. En cualquier caso, puede elegir entrealways
oifRoom
para todas las acciones.Obtenga el icono de desbordamiento del paquete de iconos de la barra de acciones .
Agregue un menú (omito algunas partes no relevantes como títulos, pedidos, etc.)
Elimina nuestra acción de desbordamiento en 3.0+
Finalmente llame
Activity.openOptionsMenu()
desde la acción de desbordamiento.Er ... no. No puede no llamar
openOptionsMenu()
desde un botón de menú ... pero si está usando AndroidAnnotations, lo hace fácilmente:Si no deberías hacer algo como esto, supongo
fuente
Intente cambiar el tema de la aplicación de Theme.AppCompat.Light.DarkActionBar a Theme.AppCompat.Light
fuente
Coloque la
xmlns:your_app_name="http://schemas.android.com/apk/res-auto"
etiqueta del menú dentro y enandroid:showAsAction="always"
su lugar useyour_app_name:showAsAction="always"
por ejemplo
fuente