Как получить маленький индикаторный треугольник для настраиваемого действия в ActionBar? - PullRequest
1 голос
/ 18 февраля 2012

Как получить маленький серый треугольник (обычно указывающий счетчик / подменю) для пользовательского действия в панели действий? Мне удается добавить подменю к своему действию, но я не вижу способа добавить маленький треугольник в правом нижнем углу. (То же самое при использовании android.widget.ShareActionProvider)

Как мне это нужно (пример из демонстрации API):

enter image description here

Я могу редактировать подменю, но не могу получить маленький серый треугольник в правом нижнем углу моего значка действия:

enter image description here

Мой код для меню:

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

Ответы [ 2 ]

3 голосов
/ 04 марта 2012

Я проверил источники Android, и вот как Google реализует это:

enter image description here

(это ic_menu_share_holo_light.png)

Так что если Googleрисует этот маленький треугольник прямо на изображении значка, я полагаю, что это лучшая практика в настоящее время.

0 голосов
/ 18 февраля 2012

Этот серый треугольник на первом изображении доступен, когда вы установите кнопку для запуска действия с помощью Intent.createChooser(intent, "heading").

Однако в вашей технике вы предоставляете опцию меню, которая содержит подменю. Для простоты вы можете просто создать иконку с серым треугольником внизу.

пример, чтобы поделиться сообщением, попросив пользователя выбрать опцию:

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"));
...