[Android 개념] RecyclerView

이창민·2022년 7월 27일
0

Android 개념

목록 보기
5/9

RecyclerView

  • ViewGroup의 서브클래스 (데이터에 해당하는 뷰가 포함된 ViewGroup)
  • 각 item들은 ViewHolder 인스턴스에 포함되어 있다고 간주(view를 참조하는 ViewHolder)
  • RecyclerView는 자신이 ViewHolder를 생성하지 않고 어댑터에 요청

Adapter

컨트롤러 객체로 RecyclerView와 RecyclerView가 보여줄 데이터 사이에 위치

어댑터가 처리하는 일

  • 필요한 ViewHolder 인스턴스들 생성
  • 모델 계층의 데이터를 ViewHolder들과 바인딩

RecyclerView가 처리하는 일

  • 새로운 ViewHolder 인스턴스의 생성을 어댑터에 요청
  • 지정된 위치의 데이터 항목에 ViewHolder를 바인딩하도록 어댑터 요청

어댑터 구현

  • onCreateViewHolder() : 보여줄 뷰(item) 인플레이트한 후 처리할 ViewHolder 생성하고 반환
    뷰의 데이터를 채우지는 않음
  • onBindViewHolder() : 뷰의 데이터를 채움
  • getItemCount() : 데이터 세트 크기 반환

뷰의 재활용

리싸이클러뷰의 아이템으로 100개를 가지고 있고 한 화면에 12개의 View를 보여준다고 가정하자.

메모리에 100개의 View를 모두 가질까? 그렇지 않다.

한정된 메모리를 가지는 안드로이드는 필요할 때 View 객체를 생성하는 것이 좋다.
이런 일을 해주는 것이 RecyclerView이다.

100개의 View를 생성하지 않고 한 화면을 채우는 데 충분한 개수만 생성해,
화면이 스크롤되면서 항목 View가 화면을 벗어날 때
RecyclerView는 해당 View를 버리지 않고 재활용한다. 닉값(재활용)을 한다고 볼 수 있다.

이런 이유로
onCreateViewHolderonBindViewHolder보다 덜 호출된다. -> 시간, 메모리 절약

참고자료

https://developer.android.com/guide/topics/ui/layout/recyclerview?hl=ko

profile
android 를 공부해보아요

0개의 댓글