2016-09-27 2 views
0

RecyclerView에서 필요에 따라 onCreateViewHolder 메소드는 새로운보기 소유자를 만듭니다. 나는 그것이 화면에 들어갈 수있는 목록에있는 항목만큼이나 많이 호출된다는 것을 알고 있습니다. 그러나 어떤 이상한 이유로, 내 RecyclableList를 스크롤하면 onCreateViewHolder가 몇 번 더 호출됩니다. 왜 새로운 viewHolder가 생성됩니까? 어떤 경우에 viewHolder가 생성됩니까? 한 번 호출해야한다고 생각했습니다.RecyclerView - 아래로 스크롤 할 때 onCreateViewHolders가 여러 번 호출 됨

로그 캣 :

나는 아래로 스크롤 할 때이 호출됩니다
09-27 16:39:20.805 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.814 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.817 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.818 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.822 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.825 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.826 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 

:

09-27 16:39:20.827 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.828 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.830 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 

답변

1

RecyclerView의 점은 개체의 전체 목록을 보유 할 필요가 없다는 것입니다 항상 기억; 즉, (거의) 화면을 볼 때까지 목록 항목에 대한 ViewHolders를 만들지 않습니다. 따라서 처음 활동을 시작하면 뷰 내의 모든 ViewHolders가 생성되고 (막힘을 방지하기 위해 약간의 임계 값이 있음) 아무것도 표시되지 않습니다. 그런 다음 스크롤하면 아래의 뷰 생성이 시작됩니다.

관련 문제