Android上有不兼容的类吗?
Posted
技术标签:
【中文标题】Android上有不兼容的类吗?【英文标题】:Are there non-compat classes on Android? 【发布时间】:2017-02-06 09:31:31 【问题描述】:我开始涉足 android,已经做了一段时间的 ios 开发人员,我发现对向后兼容性的痴迷有点令人困惑。特别是,我似乎无法理解为什么官方文档提到兼容/支持类而不是适当的类——例如,android.support.v4.view.ViewPager
。
我了解向后兼容性,但我一直将其视为您别无选择时所做的一种事情。我也很清楚,Android 和 iOS 在向后兼容方面有着截然不同的方法,这是有充分理由的。
所以,我的问题是:是否存在仅作为兼容/支持存在的类?如果我不关心 bw-compat 并且想做一些事情,就好像 Lollipop(或 Marshmallow 或 Nougat)是 Android 的第一个版本?特别是,我遇到了不支持正确存在的 PreferenceFragment 问题。
【问题讨论】:
【参考方案1】:回答您的一个问题:有些类仅存在于压缩包/支持包中,并未添加到 SDK。
以ViewPager为例,你可以查看这些线程以获得详细解释https://***.com/a/21284814/1865583https://***.com/a/9958041/1865583
如果可以从上面的帖子中引用@CommonsWare:“Android 支持包不仅适用于较新 API 的反向移植。它也适用于其他类,无论出于何种原因,未添加到 SDK 中,例如 ViewPager 及其支持类。”
【讨论】:
谢谢。而且,有什么方法可以判断任何给定类是否有不支持的版本? 我通常在通过代码编辑器导入的时候注意给定的类包名。通过这种方式,您可以查看它是否在非支持包中提供了替代方案……随着您花更多时间在 Android 上,您也会掌握它的窍门。以上是关于Android上有不兼容的类吗?的主要内容,如果未能解决你的问题,请参考以下文章
support v7兼容包的用途(三 、v7兼容包和系统自带的比较和注意点)