ActionBarでカスタムアクションに小さなインジケーターの三角形を取得するにはどうすればよいですか?
-
27-10-2019 - |
質問
ActionBarでカスタムアクションにリトルグレーの三角形(通常はスピナー/サブメナスを示す)を取得するにはどうすればよいですか?私は自分のアクションにサブメナスを追加することができましたが、右下隅に小さな三角形を追加する方法はわかりません。 (android.widget.shareactionProviderを使用する場合も同じ)
私がそれを望む方法(APIデモからのサンプル):
サブメナスを編集することはできますが、アクションアイコンの右下に小さな灰色の三角形を取得できません。
メニューの私のコード:
<?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の実装方法は次のとおりです。
(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"));
所属していません StackOverflow