2012-05-24 228 views
2

在我的应用我使用ViewPager从支持库 - V4重新创建片段FragmentPagerAdapter

  1. 在主屏幕上我有viewPager其中有最多5个片段,片段都属于一类ArticlePager

  2. 现在,在主屏幕上有名单上的类别,现在寻呼机的内容是基于选择,

的问题我一个m有,我用FragmentPagerAdapter存储片段,如果片段已经存在,它将返回旧的片段而不重新创建它。这些事情完美运行,但问题发生在方向改变时。

例如

如果有5查看通常在每一个片段对于给定的位置,但也有一些含有2-3看法。 现在如果我更改方向页号可以说5只包含只有3视图内。

因此,现在在每个类别上我都会看到包含3个视图的视图,这不是我想要的。

在我的应用程序的每个类别包含分页

有什么办法,这样我可以破坏并重新创建类别的点击片段?或任何其他变通

谢谢

回答

6

好的感谢开源我找到我的解决方案,FragmentPagerAdapter我已经覆盖了方法instantiateItem并得到了解决方案。

这可以很容易地通过FragmentStatePagerAdapter来实现,使得它不存储片段。它总是重新创建它,但由于只有几页,我不想在100页的页面中。

+0

你如何覆盖它? –

0

所以,如果我理解正确的话,你的问题是,旋转后,错误的片段集合在你ViewPager?

为什么不检查Activity的onResume()或onStart()中当前选定的选项卡,并为您创建/分配一个具有正确片段的ViewPager的新PagerAdapter?

+0

实际上FragmentPagerAdapter现在通过FragmentManager中的标签存储新创建的片段,如果已经创建了位置的片段,那么它只是传递最后片段的对象而不创建它。不管我为适配器创建多少个对象。 –

+0

现在当我切换方向,如果只有3个视图的位置一个,那么它将保持所有标签相同 –

相关问题