2016-09-20 10 views
0

私は複数のテーマを持つプロジェクトを作成していますが、テーマごとに属性の値が異なります。xmlの複数のスタイル項目を同じ値に設定する

私の属性のいくつかを同じ値にしたいと思っています。私はこれを実現することができます。私のコードで

<style name="theme_plain" parent="AppBaseThemeLight"> 
    <item name="theme_backgroundtint">#FFF1F1F1</item> 
    <item name="theme_previewboxcolor">?theme_backgroundtint</item> 
</style> 

私はその後

int boxcol = getIntFromAttr(R.attr.theme_previewboxcolor, themecolor); 

アプリに設定現在のテーマが問題のテーマである場合には、このメソッドは正常に動作、およびからtheme_previewboxcolor = theme_backgroundtintの値で、この値にアクセス同じテーマ。

ただし、現在の設定テーマが別のテーマの場合、theme_previewboxcolorは、現在設定されているテーマのtheme_backgroundtintの値をとります。 theme_backgroundtintの現在の値が現在のテーマの値に設定されているので、これはなぜですか。

私はセットとして現在のセットのテーマが異なる場合でもなるように、同じテーマにを設定したtheme_backgroundtintの値と一致theme_previewboxcolor持つ方法、theme_previewboxcolorとtheme_backgroundtintの値の値を必要としますテーマは同じです。私は仕事の周りに、私はtheme_previewboxcolorとして私のコードで読まれるべき属性値を指定する列挙型を使用して発見した

おかげ

+0

は、参照された色を使用するだけで何か問題がありますか?@ color/almost_white? – FunkTheMonk

+0

私は複数の異なるサブテーマを持っているので、親では、theme_backgroundtintをサブテーマでオーバーライドしても同じであるように、theme_previewboxcolorをtheme_backgroundtintに設定する必要があります。絶対色の参照は機能しません – Luke

答えて

0

。しかし、これによって、theme_previewboxcolorは新しい値を交互に宣言することができません。

関連する問題