RecyclerView

홍성덕·2024년 7월 11일

최근에 RecyclerView에 대해 다시 한번 공부하게 되어 그 내용을 간략하게 정리하였다.

RecyclerView란?

RecyclerView는 많은 양의 데이터를 효율적으로 화면에 표시하기 위한 안드로이드의 Jetpack 라이브러리 중 하나이다. 안드로이드 초창기에 사용하던 ListView는 아이템을 한번에 불러와서 많은 양의 데이터를 표시할 때 성능 문제가 존재했다.

하지만 RecyclerView는 이름에서도 알 수 있듯이, 아이템 View를 재활용한다. 아이템이 스크롤되어서 화면에서 사라지면, RecyclerView는 View를 파괴하지 않고 스크롤되어 새롭게 나타나는 아이템에 재사용한다. 그래서 RecyclerView는 성능과 앱의 응답성을 개선하고, 전력 소비를 줄여준다.


Key classes

  1. RecyclerView : RecyclerView class는 데이터와 상응하는 View들을 포함하는 ViewGroup class이다.
  2. ViewHolder: 개별 아이템 뷰의 Wrapper class로 개별 아이템 뷰를 보유하고 있는 class이다.
  3. Adapter: RecyclerView 인스턴스가 ViewHolder를 생성하고 데이터와 binding하는데, Adapter class내의 메소드를 호출하여 생성하고 데이터를 binding한다. Adapter는 이러한 메소드를 제공하는 역할을 한다.
  4. LayoutManager: 리스트에 개별 아이템을 배치 및 정렬하는 역할을 한다.

Adapter 내의 메소드

  1. onCreateViewHolder(): RecyclerView 인스턴스는 새로운 ViewHolder 생성이 필요할 때 이 메소드를 호출한다. 이 메소드는 ViewHolder와 그와 연결된 View를 생성 및 초기화한다. 하지만 View의 콘텐츠를 채우지는 않는다. (아직 data와 binding되지 않은 상태)
  2. onBindViewHolder(): RecyclerView 인스턴스가 ViewHolder와 data를 binding하기 위해 이 메소드를 호출한다. 이 메소드는 적절한 data를 가져와서 view holder의 레이아웃에 data를 채워넣는다.
  3. getItemCount(): RecyclerView 인스턴스가 이 메소드를 호출하여 dataset의 size를 알아낸다. RecyclerView 라이브러리는 이 메소드를 통해서 더이상 표시할 수 있는 항목이 없는 경우를 확인한다.

참고자료

profile
안드로이드 주니어 개발자

0개의 댓글