본문 바로가기
Android

리사이클러뷰 (RecyclerView) - 1

by hyunjing0 2021. 11. 26.

위 아래로 스크롤 가능

 

리사이클러뷰 RecyclerView

* 예전에는 ListView 사용 BUT 요즘은 보다 유연하고 향상된 성능의 RecyclerView 사용

* Scrollable

* 화면을 벗어나도 View를 버리지 않고 재활용(recycle)

* ViewHolder를 이용해 한 Item의 Layout을 만들어 놓으면 재사용 가능

 

 

 

 

 

 

ListView와 다른 점

* LayoutManager  a. LinearLayoutManager : 수평 또는 수직 방향 일렬로 배치

                        b. GridLayoutManager : 바둑판 모양 배치

                        c. staggeredLayoutManager : 크기가 다른 사각형 배치

* ViewHolder : View를 유지(hold)

                    Apple, Apricot, ... 등의 Item들의 View를 hold 해 놓고, 밑의 요소 하나 하나의 View를 만들 필요 없이    

                    재사용

 

 

 

 

 

 

RecyclerView의 동작 과정

* RecyclerView가 하는 역할은 거의 없다. 

* LayoutManager 속성 설정, Adapter 속성 설정하면 끝

 

>> LayoutManager가 Adapter에게 요청(어떤 data가 필요하다)하면 Adapter는 ViewHolder의 도움을 받아 처리

 

Adapter에게 요청하면 Adapter는 3개의 Callback Method 제공

onCreateViewHolder : 화면에 출력. Inflater를 이용해 ViewHolder에 view를 넣어 리턴해줌

onBindViewHolder : 데이터 원본의 내용을 Layout과 연결(Binding), 데이터를 뷰에 결합.

                            List에 속한 Item을 반복을 통해 하나씩 가져와 출력

getItemCount :  List 항목의 전체 수

 

 

 

 

RecyclerView 만들기

 

 

 

1. LayoutManager

 

2. ViewHolder

textView는 Item 한개를 출력할 수 있는 Item.xml 안에 있음

 

3.  Adapter

onCreateViewHolder : MyViewHolder 객체 return, view는 Item.xml

onBindViewHolder : item을 하나씩 가져와 출력

 

 

4. onCreate()

recyclerView는 LayoutManager, Adapter(+ ViewHolder의 도움)가 필요

Adapter에게 전달할 데이터셋

Array -> ArrayList로 변환

Array : 정적 타입, 초기화와 동시에 크기가 정해짐

ArrayList : 동적 타입, 메모리 크기가 가변적