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

时间:2015-07-08 21:08:20

标签: android android-appcompat appcompat-v7-r21 appcompat-v7-r22.2

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

1 个答案:

答案 0 :(得分:62)

  

我在values-v21文件夹中有这个themes.xml

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

  

它们用于什么?他们有所作为吗?

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

对于themes.xml文件,API Level 21+设备可以具有继承自Theme.Material的主题。但是,旧设备上不存在该主题。如果您在res/values/中有一个试图引用Theme.Material的主题,那么您的应用会在这些较旧的设备上崩溃。因此,您可以在res/values/中放置一个主题,该主题适用于您支持的所有设备(例如,Theme.Holo为11个或更高的minSdkVersion,并且覆盖 res/values-v21/中的主题改为使用Theme.Material

您可以在this sample app中看到Theme.Apptheme(我的应用主题)继承自Theme.Holo中的res/values/并继承自Theme.Material res/values-v21/ }}。运行时使用的Theme.Apptheme版本取决于设备的Android版本。