我想为我的用户提供两个主题:光明和黑暗。我希望某个布局的背景颜色根据所选的主题而变化。
从本质上讲,我想有两个这样的主题:
<style name="Theme.Light">
<item name="myBackgroundColor">#ffffff</item>
</style>
<style name="Theme.Dark">
<item name="myBackgroundColor">#000000</item>
</style>
然后从我的活动中,我会像这样引用变量:
<RelativeLayout
...
android:background="?myBackgroundColor"/>
我该怎么做?
好的,
我已经找到了各种各样的答案。如果有人有更好的答案,请发布。
您需要将属性"myBackgroundColor"声明为可样式。例如:
<declare-styleable name="TestStyleable">
<attr name="myBackgroundColor" format="color|reference" />
</declare-styleable>
我不知道这个名字指的是什么,似乎你可以把它设置为任何东西。一旦你声明了这个块,你可以像我上面所做的那样使用"myBackgroundColor"。