2015-06-16 38 views
2

我尝试根据主题更改颜色。我的TextView使用不同状态的颜色选择器来启用和禁用,我想在此选择器中使用基于主题的颜色。根据主题在不同状态的选择器中更改文本颜色

我按照这个解决方案:android themes - defining colours in custom themes

我作为Android的选择:在我看来,文字颜色看起来是这样的:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="true" android:color="#ffffff" /> 
    <item android:state_enabled="false" android:color="?attr/ThemeTest"/> 
</selector> 

与ThemeTest是它在我的主题指定一种颜色我的自定义attribut 。如果我使用这个选择器作为我的textColor,颜色实际上不是我挑选的,而只是一个简单的纯红色!但是,如果我直接在我看来,使用自定义attribut

android:textColor="?ThemeTest" 

那么它的工作原理,但我明明想根据我的看法的状态的变化来做到这一点...

有谁理解这种行为,知道如何解决它?提前致谢!

回答

1

仅在最新版本的Android中支持在颜色选择器XML文件内使用主题属性。为了克服这个限制,你需要为每个主题创建一个颜色选择器文件,并用纯色填充它们。然后根据主题创建指向正确颜色选择器的主题属性。

来源:https://plus.google.com/102404231349657584821/posts/XEeehfwanGy

编辑:测试和它完美的作品!

+0

你是救命的人。这就像一个魅力.. –

+0

如果有人想知道;主题属性必须是类型引用,例如 AustrianDude

相关问题