如何更改 BottomNavigationView 中特定项目的 iconTint
How to change iconTint of a specific item in BottomNavigationView
我正在尝试更改 bottomNavigationView
中的 favorites
menuItem
的 iconTint
。
为此,我尝试了以下方法:
- 创建
selector
颜色
- 创建一个
selector
带有可绘制对象
- 以编程方式设置图标可绘制
- 以编程方式将
bottomNavigationView
的 iconItemTint
设置为 null
- 使用彩色图标可绘制对象,而不是
iconItemTint
- 将
favorites
的图标设置为可绘制选择器
- 正在将
favorites
的 background
设置为所需的颜色
- 正在将
favorites
的 iconTint
设置为所需的颜色
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>
我正在尝试更改 bottomNavigationView
中的 favorites
menuItem
的 iconTint
。
为此,我尝试了以下方法:
- 创建
selector
颜色 - 创建一个
selector
带有可绘制对象 - 以编程方式设置图标可绘制
- 以编程方式将
bottomNavigationView
的iconItemTint
设置为 null - 使用彩色图标可绘制对象,而不是
iconItemTint
- 将
favorites
的图标设置为可绘制选择器 - 正在将
favorites
的background
设置为所需的颜色 - 正在将
favorites
的iconTint
设置为所需的颜色
None 以上解决方案对我有用。然后我想这可能是因为我使用 com.google.android.material.bottomnavigation.BottomNavigationView
而不是 android.support.design.widget.BottomNavigationView
<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>