私は複数のテーマを持つプロジェクトを作成していますが、テーマごとに属性の値が異なります。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として私のコードで読まれるべき属性値を指定する列挙型を使用して発見した
おかげ
は、参照された色を使用するだけで何か問題がありますか?@ color/almost_white? – FunkTheMonk
私は複数の異なるサブテーマを持っているので、親では、theme_backgroundtintをサブテーマでオーバーライドしても同じであるように、theme_previewboxcolorをtheme_backgroundtintに設定する必要があります。絶対色の参照は機能しません – Luke