Почему мой нижний вид навигации содержит только текст первого элемента? - PullRequest
0 голосов
/ 02 июня 2019

Я хочу, чтобы моя панель навигации включала значок и текст всех элементов, однако я получаю только текст и значок для первого элемента (остальные отображают только значок).

Кажется, это зависит от порядка, так как я изменил порядок элементов, и только первый элемент отображает логотип и значок.Это означает, что в остальных элементах нет синтаксической ошибки, поскольку все они ведут себя одинаково.

<com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"

        app:itemBackground="@color/colorPrimary"
        app:itemIconTint="@android:color/white"
        app:itemTextColor="@android:color/white"
        app:layout_constraintBottom_toBottomOf="@+id/linear"
        android:layout_gravity="start"
        app:layout_constraintRight_toRightOf="@+id/linear"
        app:menu="@menu/bottom_nav_menu" />
<?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/Home"
        android:enabled="true"

        android:icon="@drawable/baseline_home_white_18dp"
        android:title="@string/home"
        app:showAsAction="ifRoom|withText"
       />


    <item
        android:id="@+id/Social"

        android:enabled="true"
        android:icon="@drawable/baseline_public_white_18dp"
        android:title="Social"
        app:showAsAction="ifRoom|withText" />
    <item
        android:id="@+id/Diagnoses"


        android:enabled="true"

        android:icon="@drawable/baseline_image_search_white_18dp"
        android:title="@string/diagnoses"
        app:showAsAction="ifRoom|withText" />
    <item
        android:id="@+id/Inbox"
        android:title="Artists"
        android:enabled="true"

        android:icon="@drawable/baseline_inbox_white_18dp"
        app:showAsAction="ifRoom|withText" />

    <item
        android:id="@+id/rewards"


        android:enabled="true"

        android:icon="@drawable/baseline_store_mall_directory_white_18dp"
        android:title="@string/rewards"
        app:showAsAction="ifRoom|withText" />



</menu>

Я ожидаю, что текст и значок будут на каждом элементе, однако текстотображается только на первом элементе (не имеет значения, какой элемент размещен первым).

Example of item text

1 Ответ

0 голосов
/ 02 июня 2019

При настройке, например, itemTextColor, вы должны использовать селектор вместо цвета для поддержки отмеченного состояния.

Рез / цвет / selector_bottom_navigation.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#fff" android:state_checked="false"  />
    <item android:color="#000" />
</selector>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...