[英]How to change color icon in TabLayout in Xamarin Android?
tabLayout.AddTab(tabLayout.NewTab().SetIcon(Resource.Drawable.Home24),true);
我想要 :
图标的默认颜色为#F3F3F3(未单击)
图标的默认颜色为#00000(单击)。
首先,在Resources/drawable/tab_icon_color.xml
创建一个颜色选择器:
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#000000" android:state_selected="true" />
<item android:color="#F3F3F3" />
</selector>
要从该xml获取ColorStateList
:
var tabIconColors = Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop
? Resources.GetColorStateList(Resource.Drawable.home_tab_icon_color, Activity.Theme)
: Resources.GetColorStateList(Resource.Drawable.home_tab_icon_color);
然后,对于每个标签:
var tab = tabLayout.NewTab().SetIcon(Resource.Drawable.Whatever);
// we wrap the icon to support API < 21
var iconWrap = DrawableCompat.Wrap(tab.Icon);
DrawableCompat.SetTintList(iconWrap, tabIconColors);
tab.SetIcon(iconWrap);
tabLayout.AddTab(tab);
结果(虽然颜色不同):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.