Mostrar elemento de menú siempre en la barra de acción de soporte
Estoy trabajando en la aplicación Android. He implementado la barra de acción apoyada en él. Quiero mostrar el artículo del menú de la opción siempre. Pero no está mostrando. Se muestra en el menú desplegable. Mi código para el elemento de menú dado a continuación.
<item android:id="@+id/action_settings" android:icon="@drawable/add_post" android:title="@string/action_settings" />
Y el código de ActionBar Actividad se da a continuación: –
- Haga clic en el elemento de menú que se encuentra a veces en el menú de desbordamiento
- ¿Cómo crearía un Spinner para su uso como elemento de acción?
- Cambiar el color del texto del menú de opciones cuando usamos app: showAsAction = "always"
- No se puede ocultar el teclado virtual de SearchView iconfiedbydefault (false)
- Haciendo clic en un elemento de menú en la barra de acción con Espresso al usar onView (withId (...))
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); }
Cualquier ayuda será apreciada.
- Detección de un clic en el botón de la barra de acción de nuevo - (OnOptionsItemSelected no llamar cuando haga clic en el botón de la barra de acción de vuelta)
- Configuración de la descripción del contenido del menú de opciones android Talkback
- Cómo ocultar el menú de opciones?
- Icono de imagen con el elemento de menú Opción de barra de acción
- Android: OptionMenu entre Actividad y Fragmentos
- ¿Por qué ActionbarSharelock muestra sólo el icono de desbordamiento incluso hay espacio
De los documentos debe agregar atributo showAsAction
a always
o ifRoom
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <!-- Search, should appear as action button --> <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" android:title="@string/action_search" android:showAsAction="ifRoom" /> <!-- Settings, should always be in the overflow --> <item android:id="@+id/action_settings" android:title="@string/action_settings" android:showAsAction="never" /> </menu>
Si utiliza la AppCompat
AppCompat, tiene que cambiar su diseño de esta manera:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/action_settings" android:icon="@drawable/add_post" android:title="@string/action_settings" app:showAsAction="always" /> </menu>
showAsAction
sólo funcionará con un prefijo personalizado, consulte la documentación . De acuerdo a esto:
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.
Espero que esto ayude.
Puede utilizar los diferentes valores de android:showAsAction
propiedad en el archivo de menú de android xml ..
Para mostrar todo el tiempo el menú visible en la barra de acción, deberías ir con android:showAsAction="always"
..
También puedes usar android:showAsAction="ifRoom"
pero mostrará el menú en la barra de acción no siempre, pero se mostrará según el tamaño de la pantalla diferente.
Editado
Ref: Los elementos de menú no aparecen en la barra de acciones
Prueba con el siguiente código entonces ..
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/menu_lang" app:showAsAction="always" <!-- app:showAsAction="ifRoom" --> android:title="@string/menu_lang" android:icon="@android:drawable/ic_input_lang"/> </menu>
Espero que te ayude..!!!
Quitar esta línea xmlns:app="http://schemas.android.com/apk/res-auto"
android:showAsAction="always"
lugar de app:showAsAction="always"
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_refresh" android:icon="@drawable/ic_refresh" android:showAsAction="ifRoom" android:title="@string/action_refresh"/> <item android:id="@+id/action_filter" android:icon="@drawable/ic_filter" android:showAsAction="always" android:title="@string/action_filter"/> </menu>
Me doy cuenta de esta pregunta es de 2 años de edad, pero para la integridad, si desea establecer este código en el uso de lo siguiente:
menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
Otras opciones son
MenuItem.SHOW_AS_ACTION_NEVER MenuItem.SHOW_AS_ACTION_IF_ROOM MenuItem.SHOW_AS_ACTION_ALWAYS MenuItem.SHOW_AS_ACTION_WITH_TEXT MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW