offScreenPageLimit如何为viewpager工作

时间:2013-07-24 06:08:04

标签: java android

退出offScreenPageLimit后,系统调用什么来获取新视图或页面?

1 个答案:

答案 0 :(得分:7)

source code for ViewPager确实是找到答案的最佳位置。

简而言之,ViewPager保留一个内部项目列表(表示“页面”)。此列表中的项目数基于mOffScreenPageLimit值。默认情况下,它设置为1,但您可以通过调用setOffscreenPageLimit(int limit)来更改它。

在(包受保护的)方法populate()中,ViewPager填充了网页,以下代码段位于:

final int pageLimit = mOffscreenPageLimit;
final int startPos = Math.max(0, mCurItem - pageLimit);
final int N = mAdapter.getCount();
final int endPos = Math.min(N-1, mCurItem + pageLimit);

确定支持PagerAdapter的数据集的边界,从而确定请求哪些位置页面。

使用(受保护的)addNewItem()方法创建不存在的页面,该方法最终会在关联的instatiateItem()上调用PagerAdapter。这是您通常直接或通过其中一个具体子类实现的部分。

如果某些内容发生了变化,即更改了支持数据集,或者使用不同的值再次调用setOffscreenPageLimit()时,可能会从内部列表中删除项目,并调用destroyItem()通常在PagerAdapter之后。

这会回答你的问题吗?如果没有,尝试比单线更具体 - 这应该有助于我们更好地帮助你。 :)