2016-05-29 77 views
1
tabLayout.AddTab(tabLayout.NewTab().SetIcon(Resource.Drawable.Home24),true); 

我想:圖標如何更改Xamarin Android中TabLayout的顏色圖標?

默認顏色爲#F3F3F3(未點擊)圖標

默認顏色爲#00000(點擊)。

+0

注意以下答案 - [David_E答案】(http://stackoverflow.com/a/30904139/4059570) - [章魚答案】(http://stackoverflow.com/a/33230289/4059570 ) – Andromer

回答

3

首先,創建一個顏色選擇器中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); 

結果(儘管有不同的顏色):

enter image description here

+2

應該標記爲答案,完美的作品。圖像示例使用#FFFFFF進行選擇,並使用該顏色的材質指南70%,即#B3B3B3。 – ericosg

相關問題