Android 如何覆盖xml中的默认背景色?

Android 如何覆盖xml中的默认背景色?,android,android-layout,inheritance,background-color,overwrite,Android,Android Layout,Inheritance,Background Color,Overwrite,Mymain.xml文件包含有关应用程序背景颜色的信息: android:background="@color/background_default" 我还有不同的样式,用户可以选择,保存在其他xml文件中。当用户选择其中一个时,我希望覆盖main.xml中包含的默认值 不幸的是,只有文本颜色被覆盖,背景颜色没有改变。以下是其中一种自定义样式: <?xml version="1.0" encoding="utf-8"?> <resources> <styl

My
main.xml
文件包含有关应用程序背景颜色的信息:

android:background="@color/background_default"
我还有不同的样式,用户可以选择,保存在其他xml文件中。当用户选择其中一个时,我希望覆盖
main.xml
中包含的默认值

不幸的是,只有文本颜色被覆盖,背景颜色没有改变。以下是其中一种自定义样式:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Light">
        <item name="android:textColor">@color/text_light</item>
        <item name="android:windowBackground">@color/background_light</item>
        <item name="android:colorBackground">@color/background_light</item>
    </style>
</resources>

@颜色/文字灯
@颜色/背景光
@颜色/背景光

使用样式上的父属性继承默认主题,然后覆盖:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Light" parent="android:Theme">
        <item name="android:textColor">@color/text_light</item>
        <item name="android:windowBackground">@color/background_light</item>
        <item name="android:colorBackground">@color/background_light</item>
    </style>
</resources>

@颜色/文字灯
@颜色/背景光
@颜色/背景光

使用样式上的父属性继承默认主题,然后覆盖:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Light" parent="android:Theme">
        <item name="android:textColor">@color/text_light</item>
        <item name="android:windowBackground">@color/background_light</item>
        <item name="android:colorBackground">@color/background_light</item>
    </style>
</resources>

@颜色/文字灯
@颜色/背景光
@颜色/背景光

您只需从main.xml中省略android:background=“@color/background\u default”,并应用使用该颜色的默认主题即可。然后,当用户改变主题时,背景也会随之改变


不能使用主题覆盖视图xml中指定的颜色;视图更为具体,并覆盖主题。

您只需从main.xml中省略
android:background=“@color/background\u default”
,然后应用使用该颜色的默认主题即可。然后,当用户改变主题时,背景也会随之改变


不能使用主题覆盖视图xml中指定的颜色;视图更具体,并覆盖主题。

android:theme不起作用,它只覆盖文本颜色android:theme不起作用,它只覆盖文本颜色