如何在工具栏中设置 MenuItem 文本而不是图标

How to set MenuItem text instead of icon in toolbar

我正在尝试将菜单末尾的文本设置为 menuItem,但我已尝试将 app:showAsAction="always|withText" 设置为菜单项,但文本不是显示到它的全长事实上它变得拥挤。

代码:

<?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;
    }

它对我有用,在我的工具栏中我看到操作按钮只有文本 "today",没有图标:

<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>

尝试不使用 withText,仅使用 ifRoom:

app:showAsAction="ifRoom"

从菜单项中删除 icon 并设置 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>

如果这没有帮助,请参阅 How to display both icon and title of action inside ActionBar? 中的变体。

这对我有效

MenuItem menuitem1 = menu.add(Menu.NONE, 0, Menu.NONE, "注销");

menuitem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);