如何在ActionBar中将小指示器三角形设置为自定义操作?

时间:2012-02-18 17:08:12

标签: android android-3.0-honeycomb android-actionbar

如何在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>

2 个答案:

答案 0 :(得分:3)

我已经查看了Android的来源,以及Google如何实现它:

enter image description here

(这是ic_menu_share_holo_light.png)

因此,如果谷歌直接在图标图像中绘制这个小三角形,我想这是目前最好的做法。

答案 1 :(得分:0)

当您使用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"));