繁体   English   中英

如何在Xamarin Android中更改TabLayout中的颜色图标?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM