具有特定 Android 版本的 Android 项目中的默认样式

Default style in Android project with specific Android versions

我想适应具有特定样式规范的旧 Android 版本(比如 17 到 20)。所以我做了这些:

在我的 values/styles.xml 文件中,我保留版本 21+ 的默认值。但是,在预览和虚拟设备中实际应用的样式是 v20 的样式,对于显示版本 21 及更高版本。如果我擦除 values-v20/styles.xml 那么它就是下一个,v19,接管。为什么默认样式没有接管?

简单示例:

values-v20/styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Button.AccentButton" parent="Theme.AppCompat">
        <item name="android:textColor">@android:color/white</item>
        <item name="android:background">@color/red</item>
    </style>
</resources>

values/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Button.AccentButton" parent="Theme.AppCompat">
        <item name="android:textColor">@android:color/white</item>
        <item name="android:background">@color/green</item>
    </style>
</resources>

最终结果:v21+按钮显示红色,应该是绿色。

反之亦然!

  • values/styles.xml(所有低于指定最低版本的默认值)
  • values-v21/styles.xml(v21+ 的值)

换句话说,第一个版本控制的文件夹也适用于以下所有版本。未版本化文件夹适用于最低版本化文件夹以下的版本。