Ali*_*eza 3 android android-selector
以下代码可以正常工作,因为我tabSelectedTextColor直接添加了该属性,并且选定的文本颜色将为白色。
<android.support.design.widget.TabLayout
...
app:tabSelectedTextColor="@color/white"
app:tabTextColor="@color/tab_layout"/>
Run Code Online (Sandbox Code Playgroud)
但是下面的代码不起作用,我也不知道为什么,也许这是一个错误!
<android.support.design.widget.TabLayout
...
app:tabTextColor="@color/tab_layout"/>
Run Code Online (Sandbox Code Playgroud)
@ 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>
Run Code Online (Sandbox Code Playgroud)
注意: #CCFFFFFF color有效,这意味着视图可以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);
}
Run Code Online (Sandbox Code Playgroud)
如果要更改选定的文本颜色,请使用TabLayout类的setTabTextColors方法,如下所示:
tabLayout.setTabTextColors(Color.parseColor("#ADABAE"), Color.parseColor("#FFFFFF"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3069 次 |
| 最近记录: |