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

时间:2018-11-05 05:55:31

标签: android toolbar

我正在尝试将菜单末尾的文本设置为menuItem,但是我尝试了 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;
    }

3 个答案:

答案 0 :(得分: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>

尝试不带 withText ,仅 ifRoom

app:showAsAction="ifRoom"

答案 1 :(得分:0)

从菜单项中删除图标,并将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>

如果什么也没出现,则可以覆盖文本颜色以使白色背景不显示白色文本(请参见Android Toolbar menu text color)。将这些行添加为您的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?中的变体。

答案 2 :(得分:0)

这以编程方式对我有效

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

menuitem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);