리사이클러뷰(RecyclerView)는 많은 수의 데이터 집합을, 제한된 영역 내에서 유연하게 표시할 수 있도록 만들어주는 위젯을 말한다. 즉, View를 재활용하는 기능을 추가한 효율적인 ListView를 말한다.
아래 사진에서 RecyclerView같은 경우, Swipe를 하면 위의 것이 아래로 내려오게 된다.
📌 ListVIew vs RecyclerView
리스트뷰(ListVIew)의 개선판인 리사이클러뷰(RecyclerView)
리스트뷰의 경우, 기본 가이드에 따라 구현했을 때 만날 수 있는 문제점 중 하나는, 리스트 항목이 갱신될 때마다 매번 아이템 뷰를 새로 구성해야 한다는 것이다. 이는 많은 수의 데이터 집합을 표시하는 데 있어서 성능 저하를 야기할 수 있는 요인이 된다. 그래서 이러한 리스트뷰의 단점을 참고하여, 리사이클러뷰는 아이템을 표시하기 위해 생성한 뷰를 재활용한다. 그리고 이를 위해 기본적으로 뷰홀더 패턴을 사용하도록 만들어 놨다.
📌 RecyclerView 특징
1. View를 미리 담아놓고 재활용하는 ViewHolder 사용
Layout의 XML정보를 미리 해석(Inflate) 해두어 재활용한다.
뷰홀더는 화면에 표시될 아이템 뷰를 저장하는 객체이다.
어댑터에 의해 관리되는데 필요에 따라 어댑터에서 생성된다. 물론, 미리 생성된 뷰홀더 객체가 있는 경우에는 새로 생성하지 않고 이미 만들어져 있는 뷰홀더를 재활용하는데, 이 때는 단순히 데이터가 뷰홀더의 아이템 뷰에 바인딩된다.
2. 표현 방법을 정하는 LayoutManager 사용
선형적으로 배치하는 LinearLayoutManager -> orientation (방향) 설정을 통해 수평/수직 설정 가능
그리드 형태로 배치하는 GridLayoutManager -> orientation (방향) 설정을 통해 수평/수직 설정 가능, spanCount로 형 or 열의 개수 설정 가능
레이아웃 매니저는 리사이클러뷰가 아이템을 화면에 표시할 때, 아이템 뷰들이 리사이클러뷰 내부에서 배치되는 형태를 관리한다. 필수적으로 써줘야 오류가 나지 않는다.
3. RecyclerView Adapter의 구성
- 실제 Item을 담고 있는 List
- ViewHolder 객체
- ViewHolder 생성 시에 수행할 작업을 작성한 함수 (onCreateViewHolder)
- ViewHolder가 보일 때 수행할 작업 (onBindViewHolder)
- RecyclerView에서 표현해야 할 총 아이템 수 등 (getItemCount)
리사이클러뷰에 표시될 아이템 뷰를 생성하는 역할은 어댑터가 담당한다. 사용자 데이터 리스트로부터 아이템 뷰를 만드는 역할을 한다.
'🍞 Front-End > Android' 카테고리의 다른 글
[Android] 로또 번호 추첨기 (2) | 2022.10.27 |
---|---|
[Android] BMI 계산기 (0) | 2022.10.27 |
[Android] No speakable text present 경고 없애기 (0) | 2022.10.18 |
[Kotlin] 안드로이드 스튜디오 AVD(Android Virtual Device) 설정 (0) | 2022.09.22 |
[Kotlin] 코틀린 3강으로 끝내기 - 3편 심리테스트 앱 만들기 (0) | 2022.09.20 |