为什么我的底部导航视图仅包含第一项的文本?

时间:2019-06-02 16:06:06

标签: android android-layout

我希望我的导航栏包含所有项目的图标和文本,但是我只获得第一个项目的文本和图标(其余仅显示图标)。

似乎它取决于顺序,因为我已经切换了项目的顺序,只有第一个项目同时显示徽标和图标。这意味着其余所有项目的行为都相同,因此没有语法错误。

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

在设置itemTextColor时,应使用选择器而不是颜色来支持选中状态。

  

res / color / 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>