[TIL] #24 Recycler View

Yeon·2023년 8월 24일
0

내일배움캠프 - Kotlin

목록 보기
34/58
post-thumbnail

RecyclerView

  • 이미지나 텍스트를 리스트화해서 스크롤하며 볼 수 있게 해주는 컨테이너
  • ListView + Flexibility(유연함) + Performance(성능) = RecyclerView
  • Adapter의 ViewHolder를 이용
  • RecyclerView 내의 View를 재활용하여 사용

1. Component

  • Adapter: 아이템 뷰를 생성하는 역할
  • Layout Manager
    • 아이템 뷰가 나열되는 형태를 관리하기 위한 요소
    • LayoutManager가 제공하는 레이아웃 형태로 화면에 표시
    • 어댑터를 통해 만들어진 각 아이템 뷰는 ViewHolder 객체에 저장되어 화면에 표시
    • 필요에 따라 생성 또는 재활용
  • ViewHolder
    • RecyclerView 내 위치에 대한 아이템 뷰와 메타데이터를 설명
    • 각 뷰들을 보관하는 Holder 객체를 의미
    • ViewHolder 객체는 레이아웃의 태그 필드 안에 각 구성 요소 뷰를 저장하므로 반복적으로 조회하지 않고도 즉시 액세스 할 수 있음

2. How to Use RecyclerView

1) 사용할 Activity xml에 RecyclerView 추가

2) RecyclerView 아이템에 표시될 View 레이아웃 추가
→ 아이템 View를 위한 레이아웃 XML 작성

3) Adapter 구현
→ RecyclerView.Adapter상속

  • onCreateViewHolder(ViewGroup parent, int viewType) ViewHolder 객체를 생성
  • onBindViewHolder(ViewHolder holder, int position) ViewHolder에 data를 넣는 작업 수행
  • getItemCount() data의 개수를 반환

4) RecyclerView에 Adapter와 Layout Manager 지정
→ setAdapter(), setLayoutManager() 메서드 사용


3. RecyclerView 생명주기

1) onAttachedToRecyclerView(RecyclerView recyclerView)

  • Adapter가 RecyclerView에 연결될 때 호출

2) onCreateViewHolder(ViewGroup parent, int viewType)

  • 새로운 아이템 뷰를 위한 ViewHolder 객체를 생성

3) onBindViewHolder(ViewHolder holder, int position)

  • 생성된 ViewHolder를 이용하여 아이템 데이터를 뷰에 연결

4) onViewAttachedToWindow(ViewHolder holder)

  • ViewHolder가 화면에 연결되었을 때 호출

5) onViewDetachedFromWindow(ViewHolder holder)

  • ViewHolder가 화면에서 분리될 때 호출

6) onViewRecycled(ViewHolder holder)

  • ViewHolder가 재활용될 때 호출
  • 재활용을 위한 초기화 작업을 수행할 수 있음

7) onDetachedFromRecyclerView(RecyclerView recyclerView)

  • Adapter가 RecyclerView와 연결이 해제될 때 호출됨



[참고 사이트]

'RecyclerView로 동적 목록 만들기', developers
'ViewHolder Pattern에 대해 알아보기', Medinum

0개의 댓글