RecyclerView ?
-개요
RecyclerView는 리스트뷰(ListView)의 문제점들을 개선했다.
리스트뷰는 위의 그림처럼 아이템들이 삭제되고 생성되는 것을 반복했었다.
이로 인해 굉장히 낭비가 심해지면서 이러한 문제들을 해결하고자 리싸이클러뷰가 등장했다.
원래라면 사라질 뷰의 객체를 삭제하지 않고, 아래쪽 새로 나타날 곳에 재사용을 해서 RecycleView이다.
여기서 주의해야할 점은 데이터까지 재사용하는 것이 아니라!!
뷰객체의 아이템을 재사용할 뿐이다
즉! 원래 만들어 놓은 객체만 재사용한다.
-특징
위의 그림처럼 리싸이클러뷰에 담길 데이터는 데이터리스트 클래스에 담긴다.
가운데 있는 어댑터가 아이템뷰(객체)를 생성하고 객체들의 데이터리스트들의 데이터를 가져와서 바인딩해준다.
실질적으로 생성하고 연결해주는 것을 어댑터에서 하게 된다!!
그리고 수직으로 나열할 것인지, 수평으로 나열할 것인지 레이아웃매니저를 통해 구현한다!
하지만 여기서! 생성된 아이템들을 재활용하려면 객체들을 잡고 있어야 하는데, 그 역할을 뷰홀더(ViewHolder)가 해준다.
만일 이게 없더라면 리스트뷰와 똑같이 삭제되고, 생성되는 것을 반복하게 될 것이다.
즉! 리스트뷰와 리싸이클러뷰의 핵심적인 차이점은 뷰홀더의 유무라고 할 수 있다!!!
-예시
가운데 있는 오늘 발매 음악을 리싸이클러뷰로 구현할 수 있다.
1. HomeFragment에 RecyclerView를 추가한다!
2. 리싸이클러뷰에 보일 아이템들의 뷰 레이아웃을 구성한다! -> item_album.xml
3. 아이템 뷰 객체들에 들어갈 데이터리스트 생성 -> Album 데이터 클래스 생성 후 List에 담기
4. 어댑터클래스 및 뷰홀더 생성
5. 리싸이클러뷰에 어댑터 연결 및 레이아웃매니저 추가
실습 적용은 다음 글에서!!
'Android > Basic' 카테고리의 다른 글
[Android] RecyclerView 적용 (0) | 2022.04.30 |
---|---|
[Android] RecyclerView (2) (0) | 2022.04.29 |
[Android] ViewModel, LiveData (0) | 2022.04.27 |
[Android] Retrofit2 사용하기 (0) | 2022.04.26 |
[Android] UnknownServiceException:CLEARTEXT communication to **** not permitted ....Error (0) | 2022.04.25 |