我有一个底部导航视图:
<com.google.android.material.bottomnavigation.BottomNavigationView
...
app:itemIconTint="@drawable/bottom_nav_menu_color_selector"
app:itemTextColor="@drawable/bottom_nav_menu_color_selector"
app:labelVisibilityMode="labeled"
app:menu="@menu/bottom_nav_menu" />
使用itemIconTint和itemTextColor选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/colorPrimary" android:state_checked="true" />
<item android:color="@color/colorAccent" android:state_enabled="true" android:state_pressed="true" />
<item android:color="@color/colorAccent" />
</selector>
和菜单:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/bottomNavFirst"
android:icon="@drawable/bottom_nav_first_selector"
android:title="@string/bottom_nav_first_title" />
<item
android:id="@+id/bottomNavSecond
android:icon="@drawable/bottom_nav_second_selector"
android:title="@string/bottom_nav_second_title" />
</menu>
和菜单项图标的选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bottom_nav_first_icon_selected" android:state_checked="true" />
<item android:drawable="@drawable/bottom_nav_first_icon_deselected" android:state_checked="false" />
</selector>
现在根据应用程序状态,我需要更改一个菜单项图标颜色和标题颜色。选择和取消选择时它应该是灰色的。我尝试使用setTintList或setTint方法没有成功:
bottomNavView.menu.findItem(R.id.bottomNavFirst)?.icon?.setTintList(null)
bottomNavView.menu.findItem(R.id.bottomNavFirst)?.icon?.setTint(Color.GRAY)
像iconTintList这样的属性不是一个选项,因为我的 API 级别是 21。有什么想法可以实现吗?