Question

Comment obtenir le petit triangle gris (indiquant un fileur / sous-menus habituellement) à une action personnalisée dans le ActionBar? Je parviens à ajouter à mon action sous-menus, mais ne vois pas un moyen d'ajouter le petit triangle dans le coin inférieur droit. (Même lors de l'utilisation android.widget.ShareActionProvider)

Comment je le veux (exemple de l'API Demos):

entrer image description ici

Je suis en mesure de modifier les sous-menus, mais pas obtenir le petit triangle gris en bas à droite de mon icône d'action:

entrer image description ici

Mon code pour le menu:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_new_form"
          android:icon="@drawable/ic_new_form"
          android:title="@string/menu_new_form"
          android:showAsAction="ifRoom|withText">
        <menu>
            <item android:id="@+id/action_sort_size"
                  android:icon="@android:drawable/ic_menu_sort_by_size"
                  android:title="Form 1"
                  android:onClick="onSort" />
            <item android:id="@+id/action_sort_alpha"
                  android:icon="@android:drawable/ic_menu_sort_alphabetically"
                  android:title="Form 2"
                  android:onClick="onSort" />
        </menu>
    </item>
</menu>
Était-ce utile?

La solution

J'ai vérifié dans les sources d'Android, et voici comment mettre en œuvre Google:

entrer image description ici

(il est ic_menu_share_holo_light.png)

Donc, si Google dessine ce petit triangle directement dans l'image de l'icône, je suppose que c'est la meilleure pratique actuellement.

Autres conseils

Ce triangle gris dans la première image est disponible lorsque vous définissez un bouton pour démarrer l'activité en utilisant Intent.createChooser(intent, "heading").

Cependant, dans votre technique, vous fournissez une option de menu qui contient des sous-menus. Pour faire simple, vous pouvez simplement créer une icône qui a un triangle gris en bas.

exemple de partager un message en demandant à l'utilisateur de choisir l'option:

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
share.putExtra(Intent.EXTRA_SUBJECT, note.getHead());
share.putExtra(Intent.EXTRA_TEXT, "this is a demo message");

context.startActivity(Intent.createChooser(share, "Share message"));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top