我在ViewPager实例中使用的片段占用大量资源,因此我只想一次加载一个。当我尝试以下操作时:

mViewPager.setOffscreenPageLimit(0);
mViewPager.setAdapter(mPagerAdapter);

我的FragmentStatePagerAdapter.getItem(int position)覆盖函数被调用了3次,这就是我调用mViewPager.setOffscreenPageLimit(1)时发生的情况。我希望它只被调用一次,因为我指定了0个屏幕外页面。

我相信我正确地调用了所有内容,因为如果我调用mViewPager.setOffscreenPageLimit(2)FragmentStatePagerAdapter.getItem(int position)的调用次数将达到预期的5次。

ViewPager是否至少需要1个离屏页面,或者我在这里做错了什么?

最佳答案



是的。如果我正确地阅读了源代码,则应该在LogCat中收到关于此的警告,例如:

Requested offscreen page limit 0 too small; defaulting to 1

10-05 21:15