如何更改 BottomNavigationView 中特定项目的 iconTint

How to change iconTint of a specific item in BottomNavigationView

我正在尝试更改 bottomNavigationView 中的 favorites menuItemiconTint

为此,我尝试了以下方法:

None 以上解决方案对我有用。然后我想这可能是因为我使用 com.google.android.material.bottomnavigation.BottomNavigationView 而不是 android.support.design.widget.BottomNavigationView

我的底部NavigationView
    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_navigation"
        app:labelVisibilityMode="labeled"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        app:itemTextColor="#232323"
        app:menu="@menu/bottom_nav_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:title="Favorites"
        android:id="@+id/btn_favorites"
        android:enabled="true"
        android:background="@color/red_heart"
        android:icon="@drawable/ic_favorite_red"
        app:showAsAction="ifRoom" />
   ...

这是我的应用程序的屏幕截图:

所有menuItems选择的颜色都是蓝色。我希望 favorites 在选择时具有颜色 #ff4444(淡红色)。

 <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:layout_gravity="bottom"
        android:layout_marginBottom="0dp"
        app:itemTextColor="@color/bootom_text_color"
        app:itemIconTint="@color/bootom_text_color"
        android:background="@color/bottom_color"
        app:elevation="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:menu="@menu/bottom_navigation" />

在值

中创建colour.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="#FFFF00" />
    <item android:color="@color/white"  /> </selector>