kotlin

Kotlin_RecyclerView

강용민 2021. 8. 20. 16:24

모든 정보는 https://yunaaaas.tistory.com/43에서 가져왔으며, 이해를 하기위해 적은 것이다.

 

RecyclerView란?

RecyclerView는 데이터 집합들을 각각의 개별 아이템 단위로 구성하여 화면에 출력해주는 뷰 그룹이며, 수많은 데이터를 스크롤 가능한 리스트 형태로 표시해주는 위젯을 의미한다.

즉, 아래 사진과 같이 동일한 형식을 갖는 수 많은 리스트들을 구현할 때 주로 사용한다.

 

RecyclerVIew와 ListView의 차이는?

둘다 동일한 형식의 리스트들을 구현할 때 사용하지만 ListView와 RecyclerView에는 비슷한 것 같지만 세밀한 차이가 존재한다.

  RecyclerView ListView
ViewHolder ViewHolder 패턴을 이용한다. ViewHolder 패턴을 이용하지 않는다.
Item Layout 가로, 세로, Grid 형식 모두 지원 세로 방향만 지원
Decoration RecyclerView.ItemDecoration 객체를 사용하여 구분선을 설정해야 한다. Android:divider 속성을 이용하여 리스트에 있는 아이템을 쉽게 구분할 수 있다.
Click Detection 개별 터치 이벤트를 관리하지만 클릭 처리기능이 내장되어 있지 않다. 목록의 개별 항목에 대한 클릭 이벤트에 바인딩하기 위한 AdpterView.OnItemClickListener인터페이스가 있다.

이때 ListView보다 RecyclerView를 사용하는 가장 큰 이유는 재사용성이 좋기 떄문이다.

ListVIew는 VIewHolder 패턴을 사용하지 않고 getVIew()를 이용하여 View에 접근하는데, 이처럼 getView()로 동작하게 되면 리스크 갯수만큼 getView()가 호출되므로 매우 비효율적이다.

하지만 RecyclerView는 ViewHolder를 통해 만든 객체를 재사용하기 때문에 ListView보다 RecyclerVIew가 재사용성 부분에서 더 효율적이다.

 

RecyclerVIew 주요 클래스

View Holder

각각의 뷰를 보관하는 Holder 객체이다.

Item 뷰들을 재활용하기 위해 각 요소를 저장해두고 사용한다. 즉, 아이템 생성시 뷰 바인딩은 한 번만하며, 그 바인딩 된 객체를 가져다 사용하여 성능 부분에서 효율적이다.

LayoutManager

아이템의 배치를 담당한다.

LinearLayoutManager - 가로/세로

GridLayoutManager - 그리드 형식

StageeredGridLayoutManager - 지그재그형의 그리드 형식

Adapter

ListVIew와 동일한 Adapter의 개념으로 데이터와 아이템에 관한 View를 생성하는 기능을 담당한다.

ItemAnimation

Item 추가 / 삭제 시에 애니메이션을 적용할 때 사용한다.

ItemDecoration

RecyclerView의 아이템을 꾸미는 역할을 한다. 주로, Divider를 설정할 때 유용하게 사용한다.

Click Detection

Click Listener가 ListView처럼 내장되어 있지 않으므로, onClickListener를 통해 직접 구현해주어야 합니다.

 

'kotlin' 카테고리의 다른 글

kotlin / kotlin 기본 언어  (0) 2021.08.06
kotlin 스타일 가이드  (0) 2021.08.05