android - ...-v21.xml 有什么用?

标签 android android-appcompat

我正在为 4.0 及更高版本的 android 开发应用程序。我刚刚更新到 appcompat 22.2.0,但我在网络上看到所有这些对 ...-v21/v22.xml 的引用。它们是用来做什么的?他们有什么不同吗?提前致谢!

最佳答案

I had this themes.xml in the values-v21 folder

一个 res/values-v21/目录包含将在运行您的应用程序的设备处于 API 级别 21 或更高级别时使用的资源。如果设备在旧版本的 Android 上运行,res/values-v21/目录将被忽略。

What are they used for? Do they make a difference?

它们用于为不同版本的Android提供不同版本的资源。

如果是 themes.xml文件,API 级别 21+ 设备可以具有继承自 Theme.Material 的主题.但是,旧设备上不存在该主题。如果您有 res/values/ 中的主题试图引用 Theme.Material ,您的应用将在这些旧设备上崩溃。因此,您可以在 res/values/ 中添加主题。这将适用于您支持的所有设备(例如,Theme.Holo 用于 11 或更高版本的 minSdkVersion),并在 res/values-v21/覆盖该主题改为使用 Theme.Material .

您可以在 this sample app 中看到, 其中 Theme.Apptheme (我的应用程序主题)继承自 Theme.Holores/values/并继承自 Theme.Materialres/values-v21/ . Theme.Apptheme 的哪个版本在运行时使用取决于设备的 Android 版本。

关于android - ...-v21.xml 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31303777/

相关文章:

Android - 具有硬件加速和抗锯齿的画线会导致伪影

java - 如何在模态 BottomSheet 对话框中添加底部布局?

android - 无法解析导入 com.google.android.gms

error-handling - AppcompatActivity出现问题-: cannot find symbol class AppCompatActivity错误

java - 多个dex文件定义Landroid/support/v7/app/ActionBar$DisplayOptions

android - AppCompat v21 工具栏更改 Logo 大小

android - 是否可以设置图像来绘制对象而不是颜色?

android - 从字符串数组中获取属性名称

android - 使用支持操作栏主页已启用

android - 升级到 AppCompat v21 后工具栏和状态栏上的绘图错误