👉 제가 개인적으로 공부한 내용을 정리해둔것이라 일부 정확하지 않은 정보가 있을 수 있습니다.
❓ 리스트 뷰 (listView) vs 리사이클러뷰 (recyclerView)
" 사용자가 화면을 위에서 아래로 스크롤 하는 상황일 때 "
- 리스트뷰(listView) : 첫번째 itemView를 삭제하고 아랫부분에서 새롭게 보일 itemView 객체를 새로 생성한다. 스크롤을 위아래로 몇번 반복하다보면 수백, 수천개의 itemView가 생성되어 낭비가 심할 수 있다.
- 리사이클러뷰(recyclerView) : 첫번째의 itemView를 삭제하지 않고 아래쪽에서 새로 나타날 위치로 이동시켜 재사용된다.
리스트뷰와 리사이클러뷰의 큰 차이점은 itemView가 재사용되는거의 차이에 있다.
❓ 리사이클러뷰 구조
- data list : 리사이클러뷰 안에 들어갈 data 목록이다. 리사이클러뷰 안의 itemView에 들어갈 data들이 dataList안에서 가져와서 binding 된다고 생각하면 된다.
- Adapter : 리사이클러뷰위에 itemView객체를 생성하고 만들어진 itemView에 dataList속 data를 가져와서 binding시켜주는 중간다리역할을 한다고 생각하면 된다. itemView 객체를 실질적으로 생성하고 데이터와 연결시켜주는 작업을 한다.
- Layout Manager : 아이템들을 배치할 수 있는 형태를 결정할 수 있게 해준다. 수직으로 나열할지, 수평으로 나열할지. 격자로 나열할지 등등
- ViewHolder : viewHolder는 이름처럼 생성된 view객체들을 holding해주는 역할을 한다. 리사이클러뷰는 처음 몇개의 itemView를 생성하고 이것들을 계속 재활용하는데 생성된 itemView 객체가 한번 사용되고 사라지지않도록 viewHolder라는 객체에 담아준다.
🧚♀️ viewHolder안에 담겨있는 itemView들이 재활용되고 이 itemView들의 data가 binding 되는 것이다 🧚♀️
'android' 카테고리의 다른 글
[Android] cosmo calendarview - 캘린더뷰 커스텀 (0) | 2022.06.16 |
---|---|
[데이터베이스] database / 데이터캐싱 / RoomDB란? / RoomDB구성요소 / Database/ DAO / Entity (0) | 2022.05.05 |
[안드로이드,kotlin]constraintLayout 연습,제약,체인 (0) | 2022.03.19 |
[안드로이드 스튜디오,kotlin] ImageView 둥글게 만들기 (0) | 2022.03.16 |
안드로이드(android) 버튼 커스텀/모서리가 둥근 버튼/버튼 그림자효과/버튼 둥글게 (0) | 2022.02.17 |
댓글