不使用支持库的情况下,如何使用FragmentStatePagerAdapter?

34

我想知道是否可能在不使用支持库的情况下使用FragmentStatePagerAdapter类或其等效类?

我知道如何使用原生片段来代替支持库中的片段,许多其他类也有它们的类似等效物,但是我找不到应该用什么代替这个类。

我基本上希望扩展它以便像这样在我的适配器中使用:

public class ImageAdapter extends FragmentStatePagerAdapter {...

9
是的,这是可能的...你需要将支持库中所有必要的代码复制到你的项目中...但你可以使用android.support.v13.app.FragmentStatePagerAdapter代替android.support.v4.app.FragmentStatePagerAdapter(并使用supportv13库)... android.support.v13.app.FragmentStatePagerAdapter使用本地的Fragment而不是支持包中的Fragment... - Selvin
4
谢谢您的回答。我完全忘记了v13...但是我实际上想通过删除支持库等来简化我的项目结构。我仍然无法相信在android.app包中没有与Fragment类和android.app.FragmentManager一样的适配器类等价物... - Igor Čordaš
1个回答

16

我想你已经阅读了 ViewPager 文档,但以防万一:

该类目前正在早期设计和开发阶段。API 可能会在兼容库的后续更新中进行更改,这将要求应用程序在编译时针对更新版本进行源代码更改。

我最初也感到困惑为什么 PagerAdapter 类不是 android.app.* 命名空间的一部分。由于它们仍在不断完善中,因此它们已被包含在支持库中,以便在引入更改时可以频繁地更新这些库(AOSP 更新不太方便,因此更新频率较低)。看起来一旦 Android 团队给出了 ViewPager 及其所有相关类的最终形状,它们将成为 AOSP 的一部分。即使 ViewPager 类本身仍然是 V4 支持库的一部分。所以在不久的将来,你所需要的应该是可以实现的... :)


1
谢谢你的回答。正如你所提到的,将其添加到AOSP代码中将需要用户拥有新版本的Android,因此在不久的将来,我认为更多的是考虑2年左右的时间......我不明白他们为什么没有最终确定API并只是放置了2年前在支持库中的代码。 - Igor Čordaš
1
他们甚至可以使用那种可怕的兼容性技巧,有时在记录“此方法当前什么也不做,但将来会做某事/已经完成”时,他们会使用这种技巧,以计划添加的方法,尽管我怀疑他们是否会添加新功能,更可能的是对性能和内存进行优化的变化。 - Igor Čordaš

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接