studio menus ejemplos desplegable context bar android android-actionbar optionmenu

android - menus - Mostrar elemento de menú siempre en la barra de acción de soporte



toolbar android (5)

Desde los docs , debe agregar el 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>

Estoy trabajando en la aplicación de Android. He implementado la barra de acción admitida en ella. Quiero mostrar el elemento del menú de opciones siempre. Pero no se está mostrando. Se está mostrando en el menú desplegable. mi código para el elemento del menú que figura a continuación.

<item android:id="@+id/action_settings" android:icon="@drawable/add_post" android:title="@string/action_settings" />

Y el código de la actividad de la barra de acción se da a continuación:

@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); }

Cualquier ayuda será apreciada.


Me doy cuenta de que esta pregunta tiene más de 2 años, pero para completarla, si desea configurar esto en el código, use 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


Puede usar los diferentes valores de la propiedad android:showAsAction en el archivo xml del menú de Android.

para mostrar el menú visible de todos los tiempos en la barra de acciones, debe ir con android:showAsAction="always" ..

También puede usar android:showAsAction="ifRoom" pero no siempre mostrará el menú en la barra de acción, pero se mostrará según el tamaño de pantalla diferente.

Editado

Ref: los elementos del menú no aparecen en la barra de acción

Pruebe con el siguiente código y luego ..

<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..!!!


Si utiliza la AppCompat AppCompat, debe 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 atributo showAsAction solo 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 utiliza cualquier atributo XML definido por la biblioteca de soporte, porque estos atributos no existen en el marco de Android en dispositivos más antiguos.

Espero que esto ayude.


eliminar esta línea xmlns:app="http://schemas.android.com/apk/res-auto"

use 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>