기존 안드로이드 : ListView 사용
최근 안드로이드 : RecyclerView 사용
ListView 대비 RecyclerView는
- 개발자들이 구현하던 View Holder 패턴을 라이브러리 내에 포함
- 단순 가로, 세로 스크롤 외에 그리드 타입, 가변 높이 타입 등 다양한 레이아웃 제공
- 배경 이미지, 간격 조정 등의 기능 제공
새 화면을 출력할 Activity를 하나 추가하고, RecyclerView를 추가한 다음
MainActivity에서 새 Activity를 부르도록 구현
RecyclerView의 구성 요소
- 각 항목의 화면 디자인을 가지고 있는 레이아웃 파일
- 그 파일을 불러 변수로 제공할 ViewHolder
- 주어진 데이터와 ViewHolder를 결합하여 각 항목의 화면을 제공할 Adapter
- 리스트 전체의 좌표 및 사이즈와 이벤트를 담당할 RecyclerView
실습
MainActivity가 있는 패키지에서 우클릭 > New > Activity > Empty Activity
activity_record.xml에 가서 RecyclerView 전체 화면 사이즈로 추가
다운로드가 필요하면 위젯 팔레트에서 다운 받기
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".RecordActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
res/layout에서 마우스 우클릭 > New > Layout Resource file
File name : item
Root element : LinearLayout
res/layout/item.xml
layout의 height를 match_parent로 설정 할 경우 한 화면에 하나의 아이템만 출력 되므로 주의
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical|start"
android:padding="16dp">
<TextView
android:id="@+id/textViewContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Test"/>
</LinearLayout>
RecyclerView는 성능 향상을 위해 View를 inflate 하는 수를 줄이고 만들어 둔 View를 재사용
ex) 학생 30명(총 데이터 수)이 훌라후프 시험을 쳐야한다. 선생님은 한 번에 3명만 채점 가능하다.(RecyclerView의 실제 사이즈에 따라 화면에 출력되는 아이템의 수가 정해짐). 이경우 훌라후프를 30개 준비할 수도 있지만 6개 정도만 준비해 시험을 치는 사람과 그 다음 3명 정도만 가지고 있다가 시험을 마친 경우 훌라후프를 다음 학생에게 전달해 다시 사용하는 것이 효과적이다.
비슷하게 RecyclerView는 일정개의 아이템 화면을 만들어 두고(onCreateView) 화면에 나갈 차례가 되었거나 화면에 금방 나갈 것 같은 순서의 데이터에게 그 화면을 전달한다(onBindView)
'모바일 > 안드로이드' 카테고리의 다른 글
[Android] BroadcastReceiver (0) | 2021.06.18 |
---|---|
[Android] Permission (0) | 2021.06.18 |
[Android Studio] SharedPreference (0) | 2021.04.04 |
[Android Studio]Activity 와 Intent (0) | 2021.04.04 |
[Android Studio] View Binding (0) | 2021.04.04 |