1. 기본 리싸이클러뷰(RecyclerView) 순서대로 아주 차근차근 만드는 방법을 알려주는 블로그 글
: medium.com/androiddevelopers/getting-to-know-recyclerview-ea14f8514e6
Getting to know RecyclerView
RecyclerView is a powerful UI widget that allows you to display a list of data in a flexible manner. When I was learning about…
medium.com
2. 헤더를 활용한 리싸이클러뷰 설명 글
medium.com/androiddevelopers/get-ahead-using-headers-in-recyclerview-2909a69b19
Get ahead using headers in RecyclerView
This is the fourth in a series of articles which cover the fundamentals of using RecyclerView. If you already have a solid understanding…
medium.com
다만, Header 를 활용하긴 했는데 헤더 형태가 생각했던것과 다를 수 있다. 다음 그림을 참고 해보자
1. 구글 샘플에서 제공하는 헤더 형태 - 블로그 글이 참고하는 형태 | 2. 다른 형태의 리싸이클러뷰 헤더(header) |
![]() |
![]() |
이 블로그를 작성하신 분은 설명을 쉽게 잘 풀어주신다. :)
3. 리싸이클러뷰 내부 동작 방법
리싸이클러뷰 자체가 어떻게 동작하는지 알려준다. 다만, 아직 이해가 되지않은 부분이 있다.
blog.mindorks.com/how-does-recyclerview-work-internally
How does RecyclerView work internally?
In this blog, we are going to talk about how recyclerView works internally and how the recycling of views happen. We would also discuss the benefit of using viewholders in recyclerView.
blog.mindorks.com
설명 예시
1. RecyclerView 화면에 5개의 데이터를 보여준다.
2. 데이터셋은 10개가 있다.
리싸이클러뷰가 처음 생성될때 화면에 보이는 아이템 5개와 다음에 보여줄 6번째 아이템까지 총 6개의 뷰홀더가 생성 된다. 그리고 스크롤를 내리게되면 다음과 같이 구성이 된다고 이해하는 중이다.
생성 초기
- 보이는 화면 아이템 5개
- 보이지 않는 화면 아래 아이템 1개
스크롤 진행 후
- 보이지 않는 화면 위 아이템 1개
- 보이는 화면 아이템 5개
- 보이지 않는 화면 아래 아이템 1개
즉, 스크롤 이후에는 7개의 뷰홀더가 생성된다. 참고로 이 부분을 공부할때 Scrapped View, Dirty View에 대한 이해가 필요하다. 보였다가 보이지 않게되는 뷰가 Scrapped View에 속하게 되며 해당 뷰에서 재활용 되는 뷰가 Dirty View 가 되어서 재활용이 된다고 보면 된다. 그런데 저 글에서 설명하는 item X 라는 아이템이 이해가 되질 않는다. 몇번을 보고 또 보는데도 잘 이해가 안되는 현실...... 😭
추가적으로 비슷한 내용의 리싸이클러뷰 동작 방법에 대한 글을 번역한 포스팅이 있다. 참고하면 좋다. 그러나 item X 라는 개념은 여전히 모르겠다.. 😭
[번역] — RecyclerView의 내부 동작
본 글을 Niharika Arora님의 글을 한국어로 번역한 글입니다. 원문 링크👇
medium.com
'Dev > Android' 카테고리의 다른 글
include 의 레이아웃에 DataViewBinding 적용 참고 (0) | 2021.04.06 |
---|---|
Android 기본 개념 정리 (0) | 2021.03.11 |
안드로이드 업데이트가 거부후 재업로드 시간이 이렇게 오래걸려?! (0) | 2021.02.09 |
전화, SMS 권한 설정 업데이트 거부(리젝) 되었습니다 ㅠ (2) | 2021.02.05 |
안드로이드 빌드 타입별로 나누는 방법 - BuildTypes (0) | 2021.01.29 |