notifyDataSetChanged不能与FragmentPageAdapter一起使用

时间:2015-07-15 16:46:40

标签: android android-viewpager fragmentpageradapter

我使用FragmentPageAdapterViewPagerFragments一起使用。每个Fragment都包含带有小图库的适配器。

在一些片段上。 n位置,我有更改图库的按钮。当我更新此内置适配器的数据集时,我试图在我的notifyDataSetChanged()上调用FragmentPageAdapter,但它并没有刷新我的观点。

但是,如果我切换到n+2片段,然后再切换回n片段,则会更新图库。看起来它将它存储在内存中......

所以问题是: 如何强制FragmentPageAdapter仅在当前位置(当前可见)片段上重新创建视图?

2 个答案:

答案 0 :(得分:1)

解决方案是覆盖getItemPosition(Object)并返回POSITION_NONE

这会强制PagerAdapter重新创建已加载的片段,方法是检查它们在适配器中的位置是否已更改。因为它有,并且你用一个“更新”的片段替换“旧”片段,你告诉适配器当前片段没有位置,你需要它重新加载该位置应该是什么。

答案 1 :(得分:0)

您应该使用Viewpager.setOffScreenPageLimit方法根据当前页面确定视图寻呼机预先加载的页面数量。是的,你描述的行为非常好 - 我认为默认金额是1。我不知道你有多少页,但尝试将其设置为2-3,看看它是如何工作的。

干杯!