33

我想知道是否有可能使用类FragmentStatePagerAdapter或其等价物没有支持库?使用FragmentStatePagerAdapter没有支持库

我知道如何使用原生片段代替支持库中的那些片段,并且许多其他类都具有相似的等价物,但我无法找到应该使用的类而不是此类。

我基本上要扩展它在我的适配器使用它像这样

public class ImageAdapter extends FragmentStatePagerAdapter {... 
+9

是的,这是可能的...你必须从支持库复制所有必要的代码到你的项目....但你可以使用android .support.v13.app.FragmentStatePagerAdapter'而不是'android.support.v4.app.FragmentStatePagerAdapter'(并使用supportv13库)...'android.support.v13.app.FragmentStatePagerAdapter'使用的是原生片段而不是支持的... – Selvin

+4

谢谢你的回答。我完全忘记了v13 ...但我实际上想通过删除支持库等来简化我的项目结构。我仍然不能相信android.app包里面没有类的等价物,因为Fragment类已经和android.app.FragmentManager一起存在,但没有适配器... – PSIXO

回答

16

我相信你读过ViewPagerdocs,但以防万一:

这个类是目前根据早期设计和开发。 API可能会在稍后更新兼容性库时发生变化, 需要更改应用程序的源代码时,针对较新版本编译 。

对于为什么PagerAdapter类不是android.app.*名称空间的一部分,我也感到困惑。由于它们仍在不断完善,它们已被包含在支持库中,因此可以在引入更改时频繁更新这些库(AOSP更新远不方便,因此出现的频率要低得多)。看起来,一旦Android团队对ViewPager及其所有相关类别做出最终决定,它们将成为AOSP的一部分。即使是ViewPager类本身仍然是V4支持库的一部分。所以你想在不久的将来可能... :)

+0

谢谢你的回答。正如你所提到的将它添加到AOSP代码将要求用户有这个新版本的Android,所以通过近距离功能,我会更多地思考2年的时间......我不明白为什么他们还没有最终确定API和只需将2年前在支持库中的代码放入即可。 – PSIXO

+0

他们甚至可以在他们记录“这种方法currentl什么都不做,但会在过去完成的功能/做过的事情”中使用他们计划添加的方法,甚至可以做到这种可怕的兼容性技巧,尽管我怀疑他们会添加新的功能这些变化可能会影响性能和内存优化。 – PSIXO