首页 > 解决方案 > 带有属性的运行时主题选择

问题描述

我有一个要求,我必须在运行时切换应用程序着色/主题,例如 RedTheme 和 BlueTheme。我想基于一个共同的主题说 AppTheme 在此处输入图像描述

我可以阅读偏好并将 RedTheme 或 BlueTheme 应用于基础活动类中的活动,这很有效。

我在 RedTheme 或 BlueTheme 中有一些变化,例如 Dialog。我希望一个活动使用红色/蓝色主题,但呈现为对话框。我正在尝试使用attr来实现这一点。

<resources>
    <attr name="dialogActivityStyle" format="reference" />
</resources>

<style name="RedTheme" parent="AppTheme">
    <item name="dialogActivityStyle">@style/RedTheme.Dialog</item>

...

<activity android:name=".DialogActivity"
            android:theme="?attr/dialogActivityStyle"/>

但这不起作用。它不应用对话框主题

attr是否可以像我尝试做的那样应用主题?

标签: androidandroid-themeandroid-styles

解决方案


推荐阅读