2019. 10. 8. 16:16ㆍ모바일/Android_Java
호출 되는 순서대로 보자면,
getItemCount가 불리면서, 총 item 갯수가 몇개 인지 판단하고,
getItemViewType이 불리면서, 현재 item view의 position에 해당하는 viewType을 판단한다.
그 후 onCreateViewHolder에서, viewType에 해당하는 ViewHolder를 생성하여 return한다.
(각 item view의 정보를 갖고있는 애는 ViewHolder라고 하였다.
그러므로 Adapter는 계속해서 ViewHolder를 이용해 item view를 관리할 것 이다.)
onBindViewHolder에서는 생성된 viewHolder와 position을 전달받아서,
현재 position에 맞는 data를 viewHolder가 관리하는 view들에 binding 한다.
폰 화면에 10개의 list가 보인다면,
맨처음 getItemCount가 불리고,
그 후 10번 getItemViewType, onCreateViewHolder, onBindViewHolder가 연속적으로 호출 될 것이다.
간단히 보면 이렇고,
내부적으로 어떻게 동작하는지를 살펴보면,
view의 layout pass에서, LayoutManager의 onLayoutChildren가 호출되고,
이 메소드 내에서 타고타고 가다보면, Recycler 내의 getViewForPosition이라는 메소드가 호출되는데, (핵심적인 메소드이다)
이 부분에서 Adapter의 4개의 메소드가 설명한 순서대로 불리게 된다.
[출처] Android RecyclerView에 대하여 - View가 재사용되는 내부동작에 대한 고찰|작성자 초코라떼
출처 : http://blog.naver.com/PostView.nhn?blogId=mail1001&logNo=220682221473
'모바일 > Android_Java' 카테고리의 다른 글
Realm (0) | 2019.10.14 |
---|---|
DataBinding (0) | 2019.10.14 |
안드로이드에서 자주쓰는 함수 (0) | 2019.10.08 |
Instnaceof (0) | 2019.10.08 |
MVVM 패턴,Ovserver패턴 (0) | 2019.10.08 |