Recycler View

2020. 12. 22. 13:50Android

RecyclerView

이미지 출처: dev.to/jbc7ag/recyclerview-or-listview-pros-cons-and-examples-with-kotlin-2nb2

 

Recycer View를 쓰는 이유?

- 화면에 보이는 뷰(아이템)을 화면이 갱신될 때마다(스크롤이 움직일 때마다?) 생성/삭제 하지 않고 상단의 사라질 뷰를 재활용(Recycle) 함으로써 메모리를 굉장히 절약한다.

*setIsRecyclable(false) 시 뷰를 재활용하지 않아 스크롤이 매우 버벅이는것을 체감할 수 있다.

 

onCreateViewHolder

- 각 아이템을 위해 정의한 xml레이아웃을 뷰 객체로 만들어줌.

- 이 후 객체를 반환하면서 ViewHolder에서 레이아웃을 참조할 수 있도록 도와줌.

- RecyclerView에 보이는 레이아웃을 구성하고 설정하고 인플레이션 해주는 메소드.

 

onBindViewHolder

- 내부의 한정된 용량이 있기 때문에 매번 뷰 홀더를 다 만들지 않음.

- onCreateViewHolder를 통해 생성한 뷰 객체를 재활용해 데이터만 바꾸는 형식

- ViewHolder 클래스에 새로운 데이터를 담아 설정해 같은 객체에 다른 데이터를 포함함.

 

getItemCount

- 아이템이 생성될 개수 

 

getItemViewType

- position값과 getItemCount에 사용되는 리스트의 크기를 이용해 할당되는 뷰의 type을 판단할 수 있다.

ex) if (position == items.size() - 1) return TYPE_FOOTER;

    -> footerview일 때는 아이템의 레이아웃을 다른 종류의 레이아웃으로 할당해주거나 할 때 매우 유용.