首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ActionBar中同时显示图标和动作标题?

如何在ActionBar中同时显示图标和动作标题?
EN

Stack Overflow用户
提问于 2012-08-17 14:04:15
回答 5查看 112.6K关注 0票数 77

我需要在ActionBar中同时显示动作的icontitle

我尝试过"withText“选项,但没有任何效果。

EN

回答 5

Stack Overflow用户

发布于 2015-09-02 18:06:49

我找到的解决方案是使用自定义操作布局:以下是菜单的XML。

代码语言:javascript
复制
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:Eventapp="http://schemas.android.com/apk/res-auto">
<!-- This is a comment. -->
    <item
        android:id="@+id/action_create"
        android:actionLayout="@layout/action_view_details_layout"
        android:orderInCategory="50"
        android:showAsAction = "always"/>
</menu>

布局是

代码语言:javascript
复制
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="5dp"
    android:gravity="center"
    android:text="@string/create"/>

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:gravity="center"
    android:src="@drawable/ic_action_v"/>

</LinearLayout>

这将同时显示图标和文本。

要获取片段或活动的点击项,请执行以下操作:

代码语言:javascript
复制
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
    //super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.menu_details_fragment, menu);
    View view = menu.findItem(R.id.action_create).getActionView();
    view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
        }
    });
}
票数 15
EN

Stack Overflow用户

发布于 2017-02-14 22:44:52

如果2017年的any1想知道如何通过编程来实现这一点,有一种我在答案中看不到的方法

代码语言:javascript
复制
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
票数 1
EN

Stack Overflow用户

发布于 2015-08-17 03:20:43

你们中的一些人有很好的答案,但我发现了一些额外的东西。如果您希望以编程方式创建包含某些SubMenu的MenuItem:

代码语言:javascript
复制
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        SubMenu subMenu = menu.addSubMenu(0, Menu.NONE, 0, "Menu title");
        subMenu.getItem().setIcon(R.drawable.ic_action_child);
        subMenu.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

        subMenu.add(0, Menu.NONE, 0, "Subitem 1");
        subMenu.add(0, Menu.NONE, 1, "Subitem 2");
        subMenu.add(0, Menu.NONE, 2, "Subitem 3");

        return true;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12000562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档