2015-06-16 64 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

相關問題