以下代码有效是因为我直接添加了tabSelectedTextColor
属性,选择的文本颜色将会是白色。
<android.support.design.widget.TabLayout
...
app:tabSelectedTextColor="@color/white"
app:tabTextColor="@color/tab_layout"/>
但是以下代码不起作用,我不知道为什么,可能是个bug!
<android.support.design.widget.TabLayout
...
app:tabTextColor="@color/tab_layout"/>
@color/tab_layout
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selected state defined so it's better to use it -->
<item android:color="@color/white" android:state_selected="true"/>
<item android:color="@color/white" android:state_focused="true"/>
<item android:color="@color/white" android:state_pressed="true"/>
<item android:color="#CCFFFFFF"/>
</selector>
注意: #CCFFFFFF
颜色可以使用,这意味着视图正确获取了tabTextColor
属性的值,但无法识别android:state_selected
项。我测试了所有合理的状态,但都没有起作用。
TabLayout.class
下面的代码是从TabLayout.class
中复制的,一切都很清楚。你不认为从选择器中获取选定文本颜色是更好的方式吗?如果是,请报告一下。
if(a.hasValue(styleable.TabLayout_tabSelectedTextColor)) {
int selected = a.getColor(styleable.TabLayout_tabSelectedTextColor, 0);
this.mTabTextColors = createColorStateList(this.mTabTextColors.getDefaultColor(), selected);
}