Android appcompat barra de acción elemento de menú showAsAction no funciona

Tengo un elemento del menú que aparece en android 4.x, pero no en 2.x. Aquí está mi menu.xml

<?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" > <item android:id="@+id/menu_filter" android:title="Filter" app:showAsAction="always"/> </menu> 

Este es mi estilo de barra de acciones

 <style name="style1_actionBar" parent="@style/Widget.AppCompat.Light.ActionBar"> <item name="android:background">@color/blue_dark</item> <item name="android:textColor">@color/white</item> <item name="actionMenuTextAppearance">@color/white</item> <item name="background">@color/blue_dark</item> </style> 

¿Algunas ideas?

Editar: eliminado la cita doble typo

¿Podría ser el hecho de que estoy mostrando sólo texto, sin iconos? Estoy un poco atascado aquí.

5 Solutions collect form web for “Android appcompat barra de acción elemento de menú showAsAction no funciona”

Whew, gracias por su ayuda chicos, pero me las arreglé para averiguarlo. No era un problema con el xml, era un problema con la función onCreateOptionsMenu.

Estaba usando esto

 new MenuInflater(getApplication()).inflate(R.menu.activity_wentry_editor, menu); 

en lugar de esto

 MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.activity_wentry_editor, menu); 

No estoy completamente seguro de por qué esto funciona, pero lo hace.

 <menu xmlns:android="http://schemas.android.com/apk/res/android" **xmlns:yourapp="http://schemas.android.com/apk/res-auto"** > <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" android:title="@string/action_search" **yourapp**:showAsAction="ifRoom" /> </menu> 

Consulte la documentación. http://developer.android.com/guide/topics/ui/actionbar.html

Uso de atributos XML desde la biblioteca de soporte

Observe que el atributo showAsAction anterior utiliza un espacio de nombres personalizado definido en la etiqueta. Esto es necesario cuando se utilizan los atributos XML definidos por la biblioteca de soporte, ya que estos atributos no existen en el marco de Android en dispositivos antiguos. Por lo tanto, debe utilizar su propio espacio de nombres como prefijo para todos los atributos definidos por la biblioteca de soporte.

En mi caso tuve que añadir unas pocas líneas a onCreateOptionsMenu.

Android Studio no me dejó usar android: showAsAction = "ifRoom" mientras usaba appCompat.

App: showAsAction = "ifRoom" no funcionaba y lo he eliminado sin problemas.

  @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); for (int i = 0; i < menu.size(); i++) { menu.getItem(i).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); } return super.onCreateOptionsMenu(menu); } 

Si desea que su aplicación admita la barra de acción inferior a 3.0, debe usar app compact v7 en la biblioteca de soporte.

También compruebe el enlace

Utilizando el menú en una actividad que amplíe el AppCompact, es necesario importar el contexto de la aplicación en XML y usarlo:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- "Mark Favorite", should appear as action button if possible --> <item android:id="@+id/action_favorite" android:icon="@drawable/ic_favorite_black_48dp" android:title="@string/action_favorite" app:showAsAction="ifRoom"/> <!-- Settings, should always be in the overflow --> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="never"/> </menu> 

Lo que necesitas hacer es añadir xmlns:app="http://schemas.android.com/apk/res-auto" al elemento de menú en yout XML y usar el showAsAction en el siguiente formato: app:showAsAction="ifRoom" .

Esto mostrará el icono en la barra de acción, si es posible.

  • ¿Cómo seleccionar múltiples casillas de verificación en el submenú de Android?
  • Menú emergente de Android con iconos (similar a la aplicación de Google Map versión 6)
  • Google Maps elimina el menú contextual de la ruta del marcador
  • Android - Problemas con elementos de menú verificables
  • ¿Cómo puedo crear múltiples menús contextuales?
  • Elementos del submenú de la barra de acciones Android mostrados en la parte superior de la barra de acción en lugar de debajo de la barra
  • Crear nueva actividad mientras hace clic en el icono de configuración
  • Botón de menú de la barra de acción de la pantalla
  • ¿Cómo puedo actualizar el ActionBar cuando onPrepareOptionsMenu ha cambiado las entradas de menú?
  • Cambio de elementos de menú en barra de acción sherlock dinámicamente
  • ¿Cómo realizar este menú emergente personalizado con Material Design Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.