如何在工具栏中设置菜单项的文本而不是图标

3
我正在尝试将文本设置在菜单项的末尾,但我已经尝试了app:showAsAction="always|withText",但是文本并没有完全显示,实际上它变得拥挤。 This is what I am getting Desired Result 代码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        app:itemIconTint="@color/white"
        android:id="@+id/next_btn"
        android:title="@string/next"
        app:showAsAction="always|withText"
        />
</menu>

工具栏:

<android.support.v7.widget.Toolbar

    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary"
    app:popupTheme="@style/AppTheme.PopupOverlay">
    <LinearLayout
        android:layout_centerInParent="true"
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        >
        <TextView
            android:textSize="18sp"
            android:layout_gravity="center_horizontal"
            android:textColor="@color/white"
            android:text="@string/recomended"
            android:id="@+id/title_main"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TextView
            android:layout_gravity="center_horizontal"

            android:textColor="@color/white"
            android:textSize="9sp"
            android:text="@string/choose_your_friends"
            android:id="@+id/title_secondary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </LinearLayout>


</android.support.v7.widget.Toolbar>


toolbar.inflateMenu(R.menu.next_menu);
  @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.next_menu, menu);
        return true;
    }

如果你只有一个项目,我建议将按钮添加到工具栏并使用它来处理用户事件。 - karan
我已经尝试过了,但是添加一个按钮会破坏布局,因为它应该在最后面。我需要创建一个相对布局来解决这个问题,但是这会破坏标题居中的效果。 - mr debug
请参考以下链接:https://dev59.com/i1wY5IYBdhLWcg3wJU14?answertab=votes#tab-top - user4571931
@RajenRaiyarela 我正在使用onCreateOptionsMenu来填充它,但是我觉得菜单项的宽度受限制,没有图标。 - mr debug
2
我找到了解决办法,原来是我的主题设置了菜单项的限制大小。 - mr debug
显示剩余6条评论
3个回答

3
从菜单项中删除一个图标并设置app:showAsAction =“always”以显示文本:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    >

    <item
        android:id="@+id/action_edit"
        android:title="@string/edit"
        app:showAsAction="always"
        />
</menu>

如果没有显示内容,可能是白色文本绘制在白色背景上,您可以覆盖文本颜色。请在AppTheme样式中添加以下行:

如果仍然无法解决问题,请参考此处的解决方案。
<item name="actionMenuTextColor">@color/gray</item>
<item name="android:actionMenuTextColor">@color/gray</item>

如果这不起作用,可以查看如何在ActionBar内显示操作的图标和标题?中的变体。


0
这在编程上对我有效。
MenuItem menuitem1 = menu.add(Menu.NONE, 0, Menu.NONE, "注销");

menuitem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);


0

对我而言有效,在我的工具栏中,我只看到一个动作按钮文本为“今天”,没有图标:

<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_иет"
        android:orderInCategory="200"
        android:title="today"
        app:showAsAction="ifRoom" />
</menu>

尝试不使用带文本,只使用如果有空间

app:showAsAction="ifRoom"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接