我正在开发一个包含多个主题的项目,每个主题都有不同的属性值。
我希望我的一些属性具有相同的值,我知道我可以这样做。
<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_previewboxcolor与theme_backgroundtint的值相匹配的方法,该值在同一主题中设置为,这样即使当前设置的主题不同,theme_previewboxcolor的值和theme_backgroundtint的值也是如此在主题中设置是相同的。
由于
答案 0 :(得分:0)
我找到了一个解决方法,我使用枚举来指定应该在我的代码中将哪个属性值读取为theme_previewboxcolor。但是,这不允许theme_previewboxcolor交替声明一个新值。