我有一个带有图标的tabLayout,选定的选项卡将图标突出显示为红色,但另一个选项卡的图标也显示为红色,并且我希望在切换到该选项卡时更改该图标的颜色,而这两个图标始终为红色
val tabLayoutMediator = TabLayoutMediator(tabLayout, viewPager2,
TabLayoutMediator.TabConfigurationStrategy { tab, position ->
when (position) {
0 -> {
tab.text = "tab1"
tab.icon = ContextCompat.getDrawable(requireContext(),R.drawable.ic_fork)
}
1 -> {
tab.text = "tab2"
tab.icon = ContextCompat.getDrawable(requireContext(),R.drawable.ic_basket)
}
}
})
tabLayoutMediator.attach()XML
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabInlineLabel="true"
app:tabSelectedTextColor="@color/red" />发布于 2020-03-23 01:03:08
在可绘制文件夹中创建bg_tab.xml文件。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/red" android:state_selected="true"/>
<item android:drawable="@android:color/white" android:state_selected="false"/>
</selector>并使用tabBackground属性设置可绘制
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabBackground="@drawable/bg_tab"
app:tabInlineLabel="true"
app:tabSelectedTextColor="@color/red" />发布于 2020-03-23 02:25:56
解决了这个问题
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabIconTint="@color/your_color_selector"
app:tabIndicatorColor="@color/selected_color"/>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/selected_color" android:state_selected="true"/>
<item android:color="@color/unselected_color"/>
</selector>https://stackoverflow.com/questions/60802051
复制相似问题