【问题标题】:Theming Android App with reference to color参考颜色主题化Android App
【发布时间】:2025-12-29 18:40:06
【问题描述】:

我想为我的用户提供两个主题:浅色和深色。我希望某个布局的背景颜色根据选择的主题而改变。

基本上,我想要两个这样的主题:

<style name="Theme.Light">
    <item name="myBackgroundColor">#ffffff</item>
</style>
<style name="Theme.Dark">
    <item name="myBackgroundColor">#000000</item>
</style>    

然后从我的活动中,我会像这样引用变量:

<RelativeLayout
    ...
    android:background="?myBackgroundColor"/>

我该怎么做?

【问题讨论】:

    标签: android styles themes


    【解决方案1】:

    好的,我已经想出了一个答案。 如果有人有更好的答案,请发布。

    您需要将属性“myBackgroundColor”声明为可样式化。例如:

    <declare-styleable name="TestStyleable">
        <attr name="myBackgroundColor" format="color|reference" />
    </declare-styleable>
    

    我不知道这个名字指的是什么,似乎你可以将它设置为任何东西。一旦你声明了这个块,你就可以像上面那样使用“myBackgroundColor”。

    【讨论】: