android - 如何覆盖xml中的默认背景颜色?

标签 android android-layout inheritance background-color overwrite

我的 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>

最佳答案

您可以从 main.xml 中省略 android:background="@color/background_default",并应用使用该颜色的默认主题。然后,当用户更改主题时,背景将随之更改。

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

关于android - 如何覆盖xml中的默认背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14282809/

相关文章:

java - Android:如何根据首先选择的单选按钮启用/禁用复选框

android - 有没有办法在Scrollview里面滚动gridview/listview的滚动条?

android - master details控件在新页面不显示内容

android - 同一个服务器代码能否同时向 APNS 和 GCM 发送通知

android - 没有单元 ID(AdMob 发布商 ID)的 Google adMob,仅用于测试

Scala:如何使子类(在其他实例上)可以访问 protected 方法?

arrays - 在 Typescript 中重写 Array.of() 以扩展 Array 的自定义二维数组类

android - 调用 startActivity() 后应用程序崩溃

android - 膨胀包含 PDFViewCtrl 的 View

c# - 我是否需要序列化抽象基类以使派生类可序列化