Afficher l'élément du menu toujours dans la barre d'action de soutien

Entrez la description de l'image ici Je travaille sur l'application Android. J'ai implémenté une barre d'action prise en charge. Je souhaite toujours afficher l'élément de menu d'option. Mais ce n'est pas le cas. Il s'affiche dans le menu déroulant. Mon code pour l'élément de menu ci-dessous.

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

Et le code de ActionBar Activity est donné ci-dessous: –

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

toute aide serait appréciée.

5 Solutions collect form web for “Afficher l'élément du menu toujours dans la barre d'action de soutien”

De docs, vous devez ajouter l'attribut showAsAction à always or 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 vous utilisez AppCompat ActionBar, vous devez modifier votre mise en page de cette manière:

 <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 attribut showAsAction fonctionnera uniquement avec un préfixe personnalisé, voir la documentation . Selon lui:

Notez que l'attribut showAsAction ci-dessus utilise un espace de noms personnalisé défini dans la balise. Ceci est nécessaire lorsque vous utilisez des attributs XML définis par la bibliothèque de support, car ces attributs n'existent pas dans le cadre Android sur des périphériques plus anciens.

J'espère que cela t'aides.

Vous pouvez utiliser les différentes valeurs de la propriété android:showAsAction dans le fichier xml du menu Android.

Pour afficher le menu visible de tous les temps sur la barre d'action, vous devez aller avec android:showAsAction="always" ..

Vous pouvez également utiliser android:showAsAction="ifRoom" mais il affichera le menu dans la barre d'action pas toujours, mais il apparaîtra selon différentes tailles d'écran.

Édité

Ref: les éléments du menu ne s'affichent pas sur la barre d'action

Essayez avec le code ci-dessous puis …

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

J'espère que cela vous aidera … !!!

Supprimez cette ligne xmlns:app="http://schemas.android.com/apk/res-auto"

Utiliser android:showAsAction="always" au lieu de l' 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> 

Je me rends compte que cette question a 2 ans et plus, mais pour l'exhaustivité, si vous souhaitez définir ce code dans le code, utilisez ce qui suit:

 menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 

D'autres options sont

 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 
coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.