...-v21.xml 有什么用?
What is the use of a ...-v21.xml?
我正在为 android 4.0 及更高版本开发应用程序。我刚刚更新到 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
表示 minSdkVersion
为 11 或更高),并且 覆盖 res/values-v21/
中的主题,改为使用 Theme.Material
.
您可以在 this sample app 中看到,其中 Theme.Apptheme
(我的应用程序的主题)继承自 res/values/
中的 Theme.Holo
并继承自 Theme.Material
中的 res/values-v21/
。在运行时使用哪个版本的 Theme.Apptheme
取决于设备具有哪个版本的 Android。
我正在为 android 4.0 及更高版本开发应用程序。我刚刚更新到 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
表示 minSdkVersion
为 11 或更高),并且 覆盖 res/values-v21/
中的主题,改为使用 Theme.Material
.
您可以在 this sample app 中看到,其中 Theme.Apptheme
(我的应用程序的主题)继承自 res/values/
中的 Theme.Holo
并继承自 Theme.Material
中的 res/values-v21/
。在运行时使用哪个版本的 Theme.Apptheme
取决于设备具有哪个版本的 Android。