更新ViewPager总页数并设置当前项目而不重新加载

时间:2017-03-26 09:20:33

标签: android android-viewpager fragmentstatepageradapter

如果标题含糊不清,我很抱歉,因为我不知道如何在短时间内描述我的问题。

我使用ViewPagerFragmentStatePagerAdapter一起显示论坛帖子的帖子列表。 ViewPager的每个页面都对应于该主题的页面。有一些类型的链接指向线程而没有指定页面,例如:showthread.php?t=12345&goto=newpost,这意味着我只能在加载该链接后获取当前页面和总页面。假设链接将指向第5页并且有10页,我当前的流程是:

  1. ViewPager最初有1页
  2. 加载链接并注意当前页面为5,总页数为10
  3. 更新总页数并使用ViewPager通知viewPager.getAdapter().notifyDataSetChanged();。这会导致ViewPager自动加载第2页
  4. 使用viewPager.setCurrentItem(page);跳转到第5页。这会导致ViewPager自动加载第4,5和6页
  5. 所以我最终得到了2个冗余请求(用于加载第2页和第5页(第一次是通过链接)。有什么方法可以避免这种情况吗?

1 个答案:

答案 0 :(得分:0)

这是viewpager加载上一页和下一页的默认行为

ViewPager pager= (ViewPager)findView.... pager.setOffscreenPageLimit(1);

检查链接以获取更详细的答案

ViewPager offscreen page limit