1
tabLayout.AddTab(tabLayout.NewTab().SetIcon(Resource.Drawable.Home24),true);
我想:圖標如何更改Xamarin Android中TabLayout的顏色圖標?
默認顏色爲#F3F3F3(未點擊)圖標
默認顏色爲#00000(點擊)。
tabLayout.AddTab(tabLayout.NewTab().SetIcon(Resource.Drawable.Home24),true);
我想:圖標如何更改Xamarin Android中TabLayout的顏色圖標?
默認顏色爲#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);
結果(儘管有不同的顏色):
應該標記爲答案,完美的作品。圖像示例使用#FFFFFF進行選擇,並使用該顏色的材質指南70%,即#B3B3B3。 – ericosg
注意以下答案 - [David_E答案】(http://stackoverflow.com/a/30904139/4059570) - [章魚答案】(http://stackoverflow.com/a/33230289/4059570 ) – Andromer