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.

  • Menú emergente de Android con iconos (similar a la aplicación de Google Map versión 6)
  • ¿Cómo realizar este menú emergente personalizado con Material Design Android?
  • Inflar ActionBarSherlock Menú definido en XML
  • Cómo agregar un menú inferior a la actividad de Android
  • Los iconos de menú de Android no se muestran cuando el nivel de API está por encima de 10
  • ¿Cómo extender una actividad base en android?
  • Cómo eliminar iconos de un menú de desbordamiento de ActionBarSherlock en Android 2.3?
  • El menú de opciones no se mostrará en Android 4.1.1
  • ¿Cómo puedo crear iconos para elementos de menú en ListView de Android?
  • El elemento de menú verificable de barra de acción de Android no funciona / se muestra correctamente?
  • Menú Android Título del elemento que no se muestra
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.