J'écris une application Android dans laquelle j'essaie de montrer les éléments du menu de débordement à ActionBar
en utilisant ce super lien tutoriel: http://wptrafficanalyzer.in/blog/adding-action-items-and-overflow-menu-items-to-action-bar-in-Android/
Problème:
Not getting Overflow Menu Items (Icon)
Veuillez vous reporter à la capture d'écran ci-dessous pour plus de clarté:
Manifest.xml:
<uses-sdk Android:minSdkVersion="14" />
<application
Android:icon="@drawable/ic_launcher"
Android:label="@string/app_name" >
<activity
Android:name=".MainActivity"
Android:label="@string/app_name"
Android:uiOptions="splitActionBarWhenNarrow"
>
items.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item
Android:id="@+id/phone"
Android:title="@string/phone"
Android:icon="@drawable/phone"
Android:showAsAction="ifRoom|withText"
/>
<item
Android:id="@+id/computer"
Android:title="@string/computer"
Android:icon="@drawable/computer"
Android:showAsAction="ifRoom|withText"
/>
<item
Android:id="@+id/gamepad"
Android:title="@string/gamepad"
Android:icon="@drawable/gamepad"
Android:showAsAction="ifRoom|withText"
/>
<item
Android:id="@+id/camera"
Android:title="@string/camera"
Android:icon="@drawable/camera"
Android:showAsAction="ifRoom|withText"
/>
<item
Android:id="@+id/video"
Android:title="@string/video"
Android:icon="@drawable/video"
Android:showAsAction="ifRoom|withText"
/>
<item
Android:id="@+id/email"
Android:title="@string/email"
Android:icon="@drawable/email"
Android:showAsAction="ifRoom|withText"
/>
</menu>
J'utilise ce tutoriel et j'essaie de créer Figure 6: Actions et menu Dépassement dans la barre d'action divisée
Aidez-moi, s'il vous plaît, à afficher les éléments de menu de débordement (ICON) dans la barre d’action
Maintenant, chaque fois que je clique sur le bouton de menu dans l'émulateur, je reçois des éléments de menu restants ....
Pour afficher l’icône à trois points dans la barre d’action, utilisez simplement la méthode ci-dessous dans votre OnCreate ():
private void getOverflowMenu() {
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if(menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}
}
Juste pour dire que si votre appareil a un bouton de menu, l'icône de débordement ne s'affichera pas, sur les nouveaux téléphones, le bouton de débordement s'affichera. Je ne recommanderais pas la réponse d'ASMUIRTI car il s'agit d'un piratage horrible qui rompt la cohérence avec le reste des applications de la plate-forme.
tu dois utiliser
Android:showAsAction="never"
et laissez le périphérique Android décider si le menu de débordement est nécessaire pour ce périphérique.
Cela pourrait être un autre travail, ce qui m'a vraiment aidé. Gardez-en un dessinable avec trois points et donnez-le comme élément de menu.
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item
Android:id="@+id/saveDetails"
Android:showAsAction="always"
Android:title="@string/save"/>
<item
Android:id="@+id/menu_overflow"
Android:icon="@drawable/dts"
Android:orderInCategory="11111"
Android:showAsAction="always">
<menu>
<item
Android:id="@+id/contacts"
Android:showAsAction="never"
Android:title="Contacts"/>
<item
Android:id="@+id/service_Tasks"
Android:showAsAction="never"
Android:title="Service Tasks"/>
<item
Android:id="@+id/charge_summary"
Android:showAsAction="never"
Android:title="Charge Summary"/>
<item
Android:id="@+id/capture_signature"
Android:showAsAction="never"
Android:title="Capture Signature"/>
</menu>
</item>
</menu>
Si vous utilisez des bibliothèques de support, pour afficher les éléments de menu dans la barre d’activités, vous devez utiliser la syntaxe suivante dans votre code xml:
yourappname:showAsAction="ifRoom|withText"
Si je comprends bien votre question et que vous souhaitez afficher toutes vos icônes dans la barre d’action, modifiez ces paramètres dans vos éléments de menu.
Android:showAsAction="ifRoom|withText"
pour ça
Android:showAsAction="always"
Dans AndroidManifest.xml entre add
Android:theme="@Android:style/Theme.Holo.Light"
ce qui ajoute la barre d'action dans votre application.
Après cela, allez dans menu.xml et ajoutez ce qui suit
xmlns:tools="http://schemas.Android.com/tools
entre Enfin dans chaque article ajouter
Android:showAsAction="always"
tools:ignore="AppCompatResource"
Les téléphones dotés d'un bouton de menu de menu affichent des éléments de menu supplémentaires en cliquant sur le bouton de matériel. Les téléphones plus récents, sans bouton de menu matériel, ajoutent automatiquement une icône de menu Dépassement à la barre d'actions . Les éléments de menu supplémentaires sont ceux pour lesquels la propriété "showAsAction" est définie sur jamais.