我希望我的导航栏包含所有项目的图标和文本,但是我只获得第一个项目的文本和图标(其余仅显示图标)。
似乎它取决于顺序,因为我已经切换了项目的顺序,只有第一个项目同时显示徽标和图标。这意味着其余所有项目的行为都相同,因此没有语法错误。
<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>
我希望文本和图标出现在每个项目上,但是文本仅显示在第一个项目上(与放在哪个项目无关)。
答案 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>