Pregunta

¿Cómo obtener el pequeño triángulo gris (que indica un spinner/submenus generalmente) a una acción personalizada en la barra de acción? Me las arreglo para agregar submenús a mi acción, pero no veo una manera de agregar el pequeño triángulo en la esquina inferior derecha. (Lo mismo cuando se usa android.widget.shareactionProvider)

Cómo lo quiero (muestra de API Demos):

enter image description here

Puedo editar submenus, pero no llevar el pequeño triángulo gris a la parte inferior derecha de mi icono de acción:

enter image description here

Mi código para el menú:

<?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>
¿Fue útil?

Solución

He registrado las fuentes de Android, y así es como Google lo implementa:

enter image description here

(es ic_menu_share_holo_light.png)

Entonces, si Google dibuja este pequeño triángulo directamente en la imagen del icono, supongo que es la mejor práctica actualmente.

Otros consejos

Ese triángulo gris en la primera imagen está disponible cuando establece un botón para iniciar la actividad utilizando Intent.createChooser(intent, "heading").

Sin embargo, en su técnica, está proporcionando una opción de menú que contiene submenus. Para simplificarlo, simplemente puede crear un icono que tenga un triángulo gris en la parte inferior.

Ejemplo para compartir un mensaje pidiendo al usuario que elija la opción:

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"));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top