【问题标题】:How to change color icon in TabLayout in Xamarin Android?如何在 Xamarin Android 的 TabLayout 中更改颜色图标?
【发布时间】:2016-09-27 02:53:24
【问题描述】:
tabLayout.AddTab(tabLayout.NewTab().SetIcon(Resource.Drawable.Home24),true);

我想要:

图标的默认颜色是#F3F3F3(未点击)

图标的默认颜色是#00000(点击)。

【问题讨论】:

标签: c# xamarin xamarin.android


【解决方案1】:

首先,在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);

结果(虽然颜色不同):

【讨论】:

  • 应该被标记为答案,完美运行。图像示例使用#FFFFFF 表示选定的颜色,材质指南使用该颜色的 70%,即 #B3B3B3。
猜你喜欢
  • 2021-12-26
  • 2017-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多