我使用FragmentPageAdapter
将ViewPager
与Fragments
一起使用。每个Fragment
都包含带有小图库的适配器。
在一些片段上。 n
位置,我有更改图库的按钮。当我更新此内置适配器的数据集时,我试图在我的notifyDataSetChanged()
上调用FragmentPageAdapter
,但它并没有刷新我的观点。
但是,如果我切换到n+2
片段,然后再切换回n
片段,则会更新图库。看起来它将它存储在内存中......
所以问题是:
如何强制FragmentPageAdapter
仅在当前位置(当前可见)片段上重新创建视图?
答案 0 :(得分:1)
解决方案是覆盖getItemPosition(Object)
并返回POSITION_NONE
。
这会强制PagerAdapter
重新创建已加载的片段,方法是检查它们在适配器中的位置是否已更改。因为它有,并且你用一个“更新”的片段替换“旧”片段,你告诉适配器当前片段没有位置,你需要它重新加载该位置应该是什么。
答案 1 :(得分:0)
您应该使用Viewpager.setOffScreenPageLimit方法根据当前页面确定视图寻呼机预先加载的页面数量。是的,你描述的行为非常好 - 我认为默认金额是1。我不知道你有多少页,但尝试将其设置为2-3,看看它是如何工作的。
干杯!