2013-07-24 46 views

回答

7

source code for ViewPager確實是找到答案的最佳地點。

簡而言之,ViewPager保留一個項目的內部列表(即respresent'網頁')。此列表中的項目數量基於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()方法創建不存在的頁面,該方法基本上在關聯的PagerAdapter上結束調用instatiateItem()。這是您通常直接或通過具體子類之一實現的部分。

如果某物沿途的變化,即,當所述背襯的數據集被改變時,或者當setOffscreenPageLimit()與不同的值再次被調用,項目可以從內部列表中刪除,並在PagerAdapter呼叫destroyItem()通常如下。

這是否回答你的問題?如果沒有,嘗試比單線更具體 - 這應該有助於我們更好地幫助你。 :)

+0

哈哈謝謝你!這實際上是我的另一個問題的一個側面問題! – compprogjava