我正在为 Android 4.0 及以上版本开发一个应用程序。我刚刚更新到了 appcompat 22.2.0,但是我在网上看到所有这些与...-v21 / v22.xml 相关的引用。它们有什么用处?它们会产生影响吗?谢谢!
我正在开发一个适用于 Android 4.0 及以上版本的应用程序。我刚刚升级到 appcompat 22.2.0,但是我注意到网上出现了很多关于 ...-v21 / v22.xml 的引用。它们有什么作用?是否会对我的应用程序产生影响?谢谢!我正在为 Android 4.0 及以上版本开发一个应用程序。我刚刚更新到了 appcompat 22.2.0,但是我在网上看到所有这些与...-v21 / v22.xml 相关的引用。它们有什么用处?它们会产生影响吗?谢谢!
我正在开发一个适用于 Android 4.0 及以上版本的应用程序。我刚刚升级到 appcompat 22.2.0,但是我注意到网上出现了很多关于 ...-v21 / v22.xml 的引用。它们有什么作用?是否会对我的应用程序产生影响?谢谢!themes.xml
文件的情况下,API 21及以上设备可以具有继承自Theme.Material
的主题。但是,该主题在旧设备上不存在。如果您在res/values/
中引用Theme.Material
,则您的应用程序将在这些旧设备上崩溃。因此,您需要在res/values/
中放置一个适用于您支持的所有设备的主题(例如,对于minSdkVersion
为11或更高版本的设备使用Theme.Holo
),并在res/values-v21/
中覆盖该主题,以改用Theme.Material
。Theme.Apptheme
(我的应用程序的主题)继承自res/values/
中的Theme.Holo
并继承自res/values-v21/
中的Theme.Material
。在运行时使用哪个版本的Theme.Apptheme
取决于设备使用的Android版本。Theme.AppCompat
及其子类(例如 Theme.AppCompat.Light
)适用于 API Level 7 及以上版本,并且 appcompat-v7
处理与该主题相关的所有向后兼容性工作。 - CommonsWarevalues/
和 values-21/
中定义了相同的样式资源名称(且没有其他地方定义),则 API 级别为 21 或更高的设备将使用在 values-21/
中定义的资源,而运行旧版 Android 的设备则使用在 values/
中定义的资源。 - CommonsWareListActivity
。如果整个活动是ListView
,则不需要使用ListActivity
中的setContentView()
。 “如果我们有minSDKVersion 21,我们需要v21文件夹吗?”-- 不需要。 - CommonsWareTheme.Material
的,你需要使用Theme.AppCompat
。请提出一个单独的Stack Overflow问题,在其中提供[mcve]和详细说明“不起作用”的含义。 - CommonsWare