GDSC HUFS 3기/Android with Kotlin Team 5

[5팀] 코틀린 안드로이드 기초강의_29~30 | 리사이클러뷰

나쵸 소스 2021. 11. 3. 23:40

 

이 글은 이것이 안드로이드다 with 코틀린(개정판)을 참고하여 작성하였습니다.

작성자 : 홍수정

개발환경은Mac.os, Android Studio입니다. 

 

 

 

출처 : 안드로이드 Developers 글도 같이 참고해서 포스팅한 글입니다. 

 

RecyclerView로 동적 목록 만들기  |  Android 개발자  |  Android Developers

RecyclerView로 동적 목록 만들기   Android Jetpack의 구성요소 RecyclerView를 사용하면 대량의 데이터 세트를 효율적으로 표시할 수 있습니다. 개발자가 데이터를 제공하고 각 항목의 모양을 정의하면 R

developer.android.com

 

 

 

1. Recycler View 란?

 

RecyclerView를 사용하면 대량의 데이터 세트를 효율적으로 표시할 수 있다.

 

이름에서 알 수 있듯이 RecyclerView는 개별 요소를 재활용한다. 항목이 스크롤되어 화면에서 벗어나더라도 RecyclerView는 뷰를 제거하지 않고, 화면에서 스크롤된 새 항목의 뷰를 재사용한다. 

 

(ex. 한 화면에 목록이 10개까지밖에 안보이고 전체 목록은 20개라면 10개 이후의 목록을 보기 위해 스크롤을 내릴 때 항목들을 재사용해서 나타낸다는 뜻) 

 

 

 

 

2. RecyclerView 구현 단계

 

1. 목록 또는 그리드의 모양을 결정 (보통 Layout 관리자 중 하나를 사용할 수 있다.)

2. 목록에 있는 각 요소의 모양과 동작 방식 설계 => 설계에 따라 viewHolder 클래스 확장

3. 데이터를 viewHolder 뷰와 연결하는 Adapter를 정의한다. 

 

 

 

▼ 더 구체적인 이론설명은 필기 사진으로 대체

 

 

 

 

2. RecyclerView 실습 및 설명

 

 

mainActivity 코드

 

Memo

 

ⓐ 어댑터는 데이터로부터 Recycler View에 보일 아이템 뷰 (즉, 우리가 화면에서 볼 리스트의 각 항목들)를 만든다. 그렇기 때문에 Data를 불러온 후, 어댑터를 생성하여 화면의 RecylerView와 연결하는 것이다.


ⓑ loadData()는 Memo라는 데이터 클래스를 만든 것을 요소로 갖는 memoList를 for문을 통해 title과 날짜, 그리고 해당 항목 숫자를 Memo클래스에 대입하여 만든 후, memoList의 요소로 저장하게 한다.

(memoList=[<Memo>클래스1, <Memo>클래스2, ...] 의 형태가 됨)

그렇게되면 100개의 Memo 클래스를 넘겨받을 수 있게된다.

 

 

(*ViewHolder(뷰홀더)란 view를 보관하는 Holder 객체를 뜻함)

 

ⓒ CustomAdatper 클래스를 통해 loadData()를 통해 만든 데이터 리스트를 사용하여 화면에 출력할 수 있게끔 한다.

 

ⓒ-1 onCreateViewHolder : RecyclerView가 ViewHolder를 새로 만들어야 할 때마다 호출되는 메서드.
ViewHolder와 연결된 View 를 생성하고 초기화

ⓒ-2 onBindViewHolder : RecyclerView가 ViewHolder를 데이터와 연결할 때 호출되는 메서드 데이터에서 각 항목들을 가져와 세팅해준다. 
(데이터를 사용하여 항목의 각 텍스트라던지 그런것들을 세팅할 수 있음)

ⓒ-3 getItemCount : RecyclerView가 데이터 세트의 크기를 가져올 때 호출되는 메서드 

 

 

 

mainActivity xml

 

item_recycler.xml

각 항목에 보일 디자인을 만들기 위해 item_recycler.xml을 만들어주고 item_recycler를 담을, RecyclerView를 포함한 xml을 만들어준다.

 

 

 

즉, 전체적으로 간략하게 과정을 정리해보자면 다음과 같다. 

 

 

 


(1) RecyclerView가 들어갈 xml과 ItemView가 들어갈 xml을 추가 => (2) RecyclerView 어댑터와 ViewHolder 구현  => 

(3) LayoutMananger와 어댑터 설정 (레이아웃 매니저는 목록을 어떤 형태로 보여줄지 정해주는 역할)


 

 

 

 

4. RecyclerView 실행화면