13

我遇到了ViewPager和相关的FragmentPagerAdaptor,它们不是常规 Android 包的一部分,但仅在 V4 支持包中可用。看来我不能将 FragmentPagerAdaptor 与 android.app.Fragment 一起使用,因为 FragmentPagerAdaptor 需要 v4 FragmentManager 来实例化。阅读Activity 和 FragmentActivity 之间的差异这似乎是一致的 - 使用 v4 Fragments 和相关类或常规 android.app.Fragments。永远不要混合。

更进一步,我认为根本不需要使用常规的 android.app.Fragments,因为它们不如 v4 支持包强大。(引用另一个问题:Android 支持包不仅适用于较新 API 的反向移植。它也适用于其他类,无论出于何种原因,未添加到 SDK 中,例如 ViewPager 及其支持类。)。我能想到的“唯一”缺点是 v4 支持库与 APK 捆绑在一起,这意味着我的应用程序将占用更多空间。

我是否正确得出结论,我应该始终使用 v4 支持库来支持片段,因为它们包含更多功能?(而且它们是向后兼容的,不要忘记。)

4

2 回答 2

9

我刚刚意识到可以一起使用android.app.Fragmentand android.support.v4.view.ViewPager......如果你使用android.support.v13.app.FragmentPagerAdapter... 所以看来v13支持包解决/改进了 android.app.Fragment 和android.support.v4.view.ViewPager. 真是一团糟。

虽然这解决了我提出的特定示例,但我仍然想知道最好的选择是否总是在可用时使用v4类而不是内置类(例如 android.app.Fragment),即使我只是担心关于 ICS 和更新的设备?

于 2012-10-25T14:40:22.693 回答
0

在向后兼容性方面,确实使用 v4 支持包版本是最好的方法。

随着设备转向具有内置功能的操作系统,使用 SDK 版本可能会变得更容易,因为支持包中的所有功能都将包含在 SDK 中。

目前,坚持使用 v4 为 2.2/2.3 设备提供支持,这些设备仍然占据 Android 设备市场的很大份额

于 2012-10-25T10:03:40.167 回答