ActionBarでカスタムアクションに小さなインジケーターの三角形を取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/9343224

質問

ActionBarでカスタムアクションにリトルグレーの三角形(通常はスピナー/サブメナスを示す)を取得するにはどうすればよいですか?私は自分のアクションにサブメナスを追加することができましたが、右下隅に小さな三角形を追加する方法はわかりません。 (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>
役に立ちましたか?

解決

Androidのソースをチェックしましたが、Googleの実装方法は次のとおりです。

enter image description here

(IT_MENU_SHARE_HOLO_LIGHT.PNGです)

したがって、Googleがこの小さな三角形をアイコン画像に直接描いている場合、それは現在ベストプラクティスだと思います。

他のヒント

最初の画像の灰色の三角形は、使用してアクティビティを開始するボタンを設定するときに使用できます 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"));
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top