Как установить текст MenuItem вместо значка на панели инструментов - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь установить текст в конце меню как 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;
    }

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Удалите значок из пункта меню и установите 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 ). Добавьте эти строки в стиле AppTheme:

<item name="actionMenuTextColor">@color/gray</item>
<item name="android:actionMenuTextColor">@color/gray</item>

Если это не поможет, см. Варианты в Как отобразить значок и заголовок действия в ActionBar? .

0 голосов
/ 05 ноября 2018

Это работает для меня, в моей панели инструментов я вижу только кнопку действия: текст "сегодня" , без значка:

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

пробовать без с текстом , только ifRoom :

app:showAsAction="ifRoom"
...