Mobile/Android(Kotlin)

[Android] Android RecyclerView(for ListView). Let's Dive into a RecyclerView Foundation.

개발왕 금골드 2022. 9. 23. 20:31
반응형

Android RecyclerView

Concept Of RecyclerView

기본 개념 : RecyclerView는 개발자가 데이터를 제공하고 항목의 모양을 설정하면 RecyclerView 라이브러리가 필요할 때 요소를 동적으로 생성한다. RecyclerView는 개별 요소를 재활용해서 사용하는데, 항목이 스크롤되어 화면에서 벗어나면 View를 제거하지 않는다. 대신, 화면에서 스크롤된 새 항목의 View를 재사용한다. 이를 통해 앱의 응답성을 개선하고 전력 소모를 줄여 성능이 개선된다.
 

Key Classes

  • RecyclerView : 데이터에 해당하는 View가 포함된 ViewGroup.
  • ViewHolder : 목록의 각 개별 요소는 ViewHolder 객체로 정의된다. ViewHolder가 생성되었을 때는 연결된 데이터가 없다. ViewHolder가 생성된 후 RecyclerView가 ViewHolder를 View의 데이터에 바인딩한다. ViewHolder는 View의 Wrapper이고 그 View는 RecyclerView로 관리된다.
  • Adapter : RecyclerView를 요청한 다음, Adapter에서 메서드를 호출하여 View를 View의 데이터에 바인딩한다. 데이터를 ViewHolder의 View와 연결하기 위해 Adapter를 정의한다.
  • LayoutManager : LayoutManager는 목록의 개별 요소를 정렬한다.

 

RecyclerView Adapter

  • onCreateViewHolder() : RecyclerView는 ViewHolder를 새로 만들어야 할 때마다 이 메서드를 호출한다. 이 메서드는 ViewHolder와 연결된 View를 생성하고 초기화하지만 아직 ViewHolder가 특정 데이터에 바인딩된 상태는 아니다.
  • onBindViewHolder() : RecyclerView는 ViewHolder를 데이터와 연결할 때 이 메서드를 호출한다. 이 메서드는 적절한 데이터를 가져와서 연결된 ViewHolder의 Layout을 채운다.
  • getItemCount() : RecyclerView는 데이터 세트 크기를 가져올 때 이 메서드를 호출한다. 이 메서드를 사용하여 항목을 추가로 표시할 수 없는 상황을 확인한다.

 

RecyclerView의 작동방식

  • View가 RecyclerView에 attach 되면 pool에서 제거된다. (스크롤이 되는 등 detach 되면 empty View pool에 추가된다.)
  • Adapter 안에서 empty View가 생성되거나 pool이 더해지면 onCreateViewHolder()를 실행하여 View를 inflate 한다.
  • onBindViewHolder()를 실행하여 inflate 된 View에 데이터를 채운다.

 
 
참고자료
https://developer.android.com/guide/topics/ui/layout/recyclerview

 

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

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. RecyclerView로 동적 목록 만들기   Android Jetpack의 구성요소 RecyclerView를 사용하면 대량의 데이터 세트를 효율적

developer.android.com

https://developer.android.com/guide/topics/ui/layout/recyclerview-custom

 

RecyclerView 맞춤설정  |  Android 개발자  |  Android Developers

RecyclerView의 고급 맞춤설정 옵션

developer.android.com

 

반응형