具有特定 Android 版本的 Android 项目中的默认样式
Default style in Android project with specific Android versions
我想适应具有特定样式规范的旧 Android 版本(比如 17 到 20)。所以我做了这些:
- values/styles.xml(我觉得应该是默认的)
- values-v17/styles.xml
- values-v18/styles.xml
- values-v19/styles.xml
- values-v20/styles.xml
在我的 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+ 的值)
换句话说,第一个版本控制的文件夹也适用于以下所有版本。未版本化文件夹适用于最低版本化文件夹以下的版本。
我想适应具有特定样式规范的旧 Android 版本(比如 17 到 20)。所以我做了这些:
- values/styles.xml(我觉得应该是默认的)
- values-v17/styles.xml
- values-v18/styles.xml
- values-v19/styles.xml
- values-v20/styles.xml
在我的 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+ 的值)
换句话说,第一个版本控制的文件夹也适用于以下所有版本。未版本化文件夹适用于最低版本化文件夹以下的版本。