
컨테이너
measuring, positioning에 대한 역할을 함
뷰 재사용을 담당하는 recyclerView의 핵심 클래스
Scrapped된 뷰와 recyclerPool을 가지고있음
RecyclerView에 있는 고유 개념이 아니라 ViewGroup에 속한 속성
item이 add(), remove() 등 이벤트 발생 시 애니메이션 담당
기본적으로 자식 뷰들이 모두 그려졌을 때, 1회 작동
scheduleLayoutAnimation()를 통해 재실행 가능
많은 일을 하지만 주요작업은 ViewHolder를 생성함
cache에 데이터가 있는지 여부에 따라 생성 로직이 달라짐

1. LayoutManager가 recyclerView에게 position기반으로 뷰 요청
2. recyclerView가 Cache에 있는지 확인
3. 있으면 받은 데이터로 전달

1. 위 2번까지했는데 캐시에 뷰가 없으면 recyclerView가 adapter에게 viewType을 물어봄
2. recyclerView는 가져온 viewType으로 recyclerView Pool에게 viewHolder있는지 체크

1. viewType에 대한 viewHolder가 없으면 recyclerView가 adapter에게 새 viewHolder 생성 요청, adapter는 생성한 viewHolder를 전달해줌

1. pool에 있는 viewHolder를 recyclerView에게 전달
2. recyclerView는 adapter에게 position, viewHolder을 넘겨 bind요청
3. adapter는 bind작업한 itemView를 전달, recyclerView는 전달받은 뷰를 layoutManager에게 전달
layoutManager는 포지션으로 요청한 itemView를 배치하고 recyclerView에게 배치완료 사인을 보냄
recyclerView는 adapter에게 배치되었다고 전달