【问题标题】:Material Design windowBackgroundMaterial Design 窗口背景
【发布时间】:2015-02-06 03:57:18
【问题描述】:

我正在尝试自定义我正在构建的测试应用中的颜色,同时遵守 Material Design 规范。

根据此处的图 3,https://developer.android.com/training/material/theme.html 我应该使用的属性之一是 android:windowBackground。当我尝试使用它在应用程序中设置背景颜色时,我收到一条错误消息,指出“找不到与给定名称匹配的资源:attr 'windowBackground'。”这里有什么问题?

【问题讨论】:

    标签: android colors android-studio material-design


    【解决方案1】:

    基于该页面的信息:

    注意:材质主题仅适用于 Android 5.0(API 级别 21) 及以上。 v7 支持库为主题提供材料 一些小部件的设计风格并支持自定义颜色 调色板。有关详细信息,请参阅保持兼容性。

    要在您的应用中包含 v7 支持库,请将 com.android.support:appcompat-v7:21.0.+ 添加到您的应用 build.gradle 文件依赖项中。

    【讨论】:

    • 是的,我已经按照您的建议在应用程序中实现了 v7 支持库,但我仍然收到此错误。
    • 另外,在 values-v21 中,我需要使用材质主题作为父主题吗?目前,我使用 appcompatv7 作为 values-v21 和标准值 styles.xml 的父级。我希望能够使用它们 material.dark 但我无法这样做并且不得不使用 appcompatv7。
    • 确保您的主题看起来像这样:<style name="MyTheme" parent="@style/Theme.AppCompat.Light"> <item name="android:windowBackground">*put the color in here*</item </style>
    • Android 5.0 接受“android:”格式还是只是“windowBackground”?
    • 对于 Android 5.0,项目名称需要为 android:windowBackground,但我会将样式设置为 android:Theme.Material.Light
    【解决方案2】:

    您可以使用 Material 主题指定 android:windowBackground。 这就是 v21 的样子:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color name="windowBackground">#1A237E</color>
    
        <style name="Theme.AppTheme" parent="@android:style/Theme.Material">
            <item name="android:colorPrimary">#3F51B5</item>
            <item name="android:colorPrimaryDark">#303F9F</item>
            <item name="android:colorAccent">#00BCD4</item>
            <item name="android:windowBackground">@color/windowBackground</item>
        </style>
    </resources>
    

    android:windowBackground 属性来自 API 级别 1,因此对于任何目标和最低 SDK 级别,您应该始终以这种方式引用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-09
      • 2018-07-12
      • 2015-10-05
      • 1970-01-01
      • 2022-01-06
      • 2014-12-26
      • 1970-01-01
      • 2016-01-23
      相关资源
      最近更新 更多