2017-10-26 54 views
1

저는 RecycleView에서 프리 패치 된 항목 수를 제어하기 위해 지원 라이브러리 25.1에 소개 된 새로운 API를 사용하여 미리보기를 프리 페칭하여 이미지 격자를 스크롤하는 동안 사용자 환경을 개선하려고합니다.RecycleView의 setInitialPrefetchItemCount가 작동하지 않습니다.

그리고 실제로 바인딩이 발생했는지 확인할 수 있도록 내 ViewHolders에 대한 로깅을 추가했습니다.

void bind(final Photo photo, int position) { 
    // I expcet to see 30 logs without event scrolling as the intial set to 30. 
    log.d("binding photo: " + photo.getId()); 
    loadPhoto(photo); 
} 

그러나 나는 100 개 이미지 목록을로드로는 작동하지 않습니다처럼 보인다하지만 난 (단지 표시되는 항목을 가져 오는) 몇 로그 항목을 볼 수 있지만 난으로 30에서 볼 기대 나는 이렇게되도록 설정했습니다.

답변

0

문서에 따르면, 이것은 내부 RecyclerViews에서만 작동합니다.

문서 : isItemPrefetchEnabled

이 LayoutManager의 처리 RecyclerView 다른 RecyclerView 안에 중첩 될 때 많은 내부 항목이 프리 페치 할 방법을 정의 collectInitialPrefetchPositions에서 프리 페치 항목의 수 (INT, LayoutPrefetchRegistry)을 설정합니다.

+0

이 문서에 따르면, 그건뿐만 아니라 중첩 된 재활용 뷰 : https://medium.com/google-developers/recyclerview-prefetch-c2f269075710 –

+0

기사는 말한다 : 중첩 된 RecyclerViews [이 작업을 수행 .. ]이 더 까다 롭습니다 ... 이것은 LinearLayoutManager의 v25.1에있는 새로운 API 인 setInitialItemPrefetchCount()입니다.이 API는 RecyclerView를 채우기 위해 프리 페치 할 항목 수를 시스템에 알려줍니다 – FlanschiFox