2013-07-24 3 views
1

offScreenPageLimit을 벗어나면 시스템에서 새보기 또는 페이지를 가져 오기 위해 무엇을 호출합니까?viewPager에 대해 offScreenPageLimit 작동 방법

+0

viewpager.setOffscreenPageLimit (10)을 사용하면 간단하게 유지할 수 있습니다. 조각은 살아있게 유지됩니다. –

답변

7

source code for ViewPager은 실제로 답변을 찾는 데 가장 좋은 장소입니다.

요약하면 ViewPager은 '페이지'를 재현하는 항목의 내부 목록을 유지합니다. 이 목록의 항목 수는 mOffScreenPageLimit 값을 기반으로합니다. 기본적으로 1으로 설정되어 있지만 setOffscreenPageLimit(int limit)을 호출하여 변경할 수 있습니다. ViewPager이 페이지를 채워됩니다 곳입니다 (보호 패키지) 방법 populate()에서는

은, 다음과 같은 코드가 있습니다 :

따라서 PagerAdapter 및 백업 데이터 세트의 경계를 결정
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); 

게재 순위 페이지가 요청됩니다.

존재하지 않는 페이지는 (패키지로 보호되는) addNewItem() 메서드를 사용하여 생성되며 기본적으로 연결된 PagerAdapterinstatiateItem()을 호출합니다. 이 부분은 직접 구현되거나 구체적인 하위 클래스 중 하나를 통해 구현됩니다. 무언가 도중에 바뀌면 보강 데이터 세트가 변경 또는 setOffscreenPageLimit()가 다른 값으로 다시 호출 될 때, 항목이 내부 목록에서 제거 될 수 있고, 경우

, 즉 PagerAdapter에서 통화 destroyItem()는 보통 다음과 같다.

질문에 대한 답변이 있습니까? 그렇지 않은 경우 한 줄짜리보다는 조금 더 구체적으로 노력하십시오. 그러면 우리가 더 잘 도와 줄 수 있습니다. :)

+0

하하 감사합니다! 이것은 실제로 내가 가지고있는 또 다른 질문에 대한 부차적 인 질문입니다! – compprogjava

관련 문제