안드로이드 자바 코틀린 기초 지식/안드로이드 기초 지식
List View와 Recycler View의 차이
Everyday Growing Engineer
2022. 7. 29. 16:20
1. View Binding
- ListView : 최초 생성이나 스크롤 시 아이템을 생성할 때마다 뷰바인딩을 해서 성능 저하가 일어난다.
- RecyclerView : ViewHolder 패턴을 강제로 구현하게 해서 뷰 바인딩을 한 번만 해준다. 이 후 아이템을 생성할 때 바인딩된 뷰 객체를 재활용한다.
2. RecyclerView VS ListView
RecyclerView | ListView | |
ViewHolder | ViewHolder 패턴 이용 | ViewHolder 패턴 이용할 필요 X |
Item Layout | 가로/세로/지그재그 모두 지원 | 세로만 지원 |
Item Animation | 아이템 애니메이션 처리 클래스 O | 아이템 애니메이션 처리 클래스 X |
Adapter | 데이터 제공을 위해 직접 구현 | 다양한 소스에 대한 어댑터 존재 |
Decoration | 많은 구분선 설정 | 쉽게 구분 가능 |
Click Event | 개별 터치 이벤트 관리O, 클릭 처리 기능 X | 클릭 이벤트에 바인딩 하기위한 인터페이스 존재 |
리스트뷰와 리사이클러뷰는 모두 스크롤 가능한 리스트 형식의 레이아웃을 구현할 때 사용. 리스트뷰는 스크롤할 때 나오는 아이템을 끊임없이 새로 만들어 메모리 성능에 부담이 갈 수 있음. 반면, 리사이클러뷰는 처음 만들어지는 아이템의 개수는 정해져있고, 뷰홀더를 통해 들어가는 뷰의 재사용을 가능하게 함.
View Holder 란?
View를 보관하는 객체이다.
ListView와 RecyclerView는 inflate를 최소화하기 위해 View를 재활용하는데, 이 때 성능 저하를 방지하기 위해 ItemView의 각 요소를 바로 엑세스 할 수 있도록 저장해두고 사용하기 위해 사용한다.