Recycler View 간단 정리

Hoony·2022년 4월 13일
0

Android Studio

목록 보기
1/1

RecyclerView란?


RecyclerView란 화면에 목록을 출력해주고 동적으로 관리할 수 있는 ViewGroup입니다.

예전에는 ListView를 사용했지만 현재 RecyclerView에서 모든 기능들이 가능해서 가장 많이 쓰이는 컨테이너 ViewGroup이라고 보시면 됩니다.

원리


예전 ListView에서 100개의 목록이 ListView에 들어가면 해당 View를 다 가지고 있었습니다.

하지만 RecyclerView에서 일정 개수의 View를 재사용합니다.
즉,스크롤을 통해 화면에 보여지지 않게 되는 View 다시 재활용해서 사용됩니다.
이로 인해 메모리의 효율적인 사용이 가능하게 됩니다.

Recycler 사용법


1. XML 파일 구성
(RecyclerView 생성 + itemLayout 생성)

RecylcerView

ItemLayout xml 파일

RecyclerView에 들어갈 itemLayout을 만들어줍니다.

2. Adapter Class 정의

이제 xml 파일 구성이 다 끝났으면 Adapter class를 정의해주면 됩니다.

1. viewHolder Clas 정의

class ViewHolder(itemView:View) : RecyclerView.ViewHolder(itemView)
실제 목록에 들어갈 Viewholder 클래스를 먼저 정의해줍니다. RecyclerView의 ViewHolder 클래스를 상속받아 자기 입 맛에 맞춰 수정해줍시다.

2. onCreateViewHolder()


ViewHolder가 처음 생성될 때 호출되는 함수입니다.

여기서 위에서 작성해둔 itemLayoutView를 가져와서 이를 ViewHolder라는 클래스에 넘겨주어서 binding 작업을 합니다.

viewholder가 처음 생성될 때 호출되는 함수라 딱 1번만 호출됩니다. 여기서 가능한 모든 binding 작업을 해주시면 이후 퍼포먼스에 도움이 될 것입니다.

3. onBindViewHolder()


이 함수는 이후 View가 재활용될 때 해당 View 객체에 data를 binding하는 작업을 하는 함수이다.
이 함수는 매번 ViewHolder가 재활용될 때마다 호출되므로 여기서 이벤트 설정은 가능한 피하는 것이 퍼포먼스에 좋습니다.

4. getItemCount()

list의 개수를 return하는 함수입니다.


이렇게 위의 4개의 함수가 RecyclerView Adapter 설정할 때 override 해야 하는 함수입니다.

3. RecylcerView에 Adapter 붙이기

recyclerView.apply {
            adapter = todoAdapter
            layoutManager = linearLayoutManager
            addItemDecoration(DividerItemDecoration(context,LinearLayoutManager.VERTICAL))
        }

이제 recyclerView adapter 설정과 layoutManager 설정과 itemDecoration 설정을 해주시면 됩니다.

이때 layoutManager은 Linear 말고도 grid도 있습니다.

이런 식으로 설정이 끝나면 이제부터 RecyclerView에 대한 기본적인 설정이 끝난 것입니다.
이후 이제 list 관리를 통해 adapter notifyDataSetChange 같은 함수를 통해 RecyclerView를 변경해주시면 됩니다.

profile
Just Do it!

0개의 댓글