오늘 하루의 느낀점

230823 Today I Learned!

조예_ 2023. 8. 23. 20:29

리스트뷰..리사이클러뷰..

커스텀뷰..그리드뷰...

뭔 뷰가 이렇게 많아.... 뭘 연결하고 뿌려주고 잉..

(후발대 과제도 리사이클러뷰인데.. 머리가 터질듯..뷰 어댑터 뷰홀더 뭐가 이렇게 새로운 용어가 많은지..)

지금 대충 정리된 내용 말고도 추가적으로 따로 게시물 파서 정리를 더 해야겠다

(저번에도 그렇게 말만하고 까먹었지만..ㅠㅠ)

우선 가장 대표적인 리스트뷰와 리사이클러뷰에 대해 비교해보고자 한다!

 


리스트뷰란?

데이터의 목록을 세로방향으로 나열하여 화면에 표시하는 뷰그룹의 한 종류

리스트 항목이 갱신될 때마다 매번 아이템 뷰를 새로 구성해야 하기 때문에 성능저하를 야기하는 요인이 됨!

 

리사이클러뷰란?

한 화면에 보기 힘든 수많은 데이터를 스크롤 가능한 리스트로 출력하는 뷰그룹의 한 종류

아이템을 표시하기 위해 생성한 뷰를 재활용하기 때문에 리스트뷰의 성능저하 문제를 해결함

구글은 RecyclerView의 사용을 권장하고 있음

 

리스트뷰 vs 리사이클러뷰

   RecyclerView  ListView
ViewHolder  ViewHolder 패턴을 이용한다.
RecyclerView.Viewholder
ViewHolder 패턴을 이용할 필요가 없다.
 Item Layout 가로/세로/지그재그 방향 모두 지원한다.
RecyclerView.LayoutManager 
세로 방향만 지원한다.
Item Animation  아이템 애니메이션을 처리하는 클래스가 있다.
RecyclerView.ItemAnimator
아이템이 추가/제거될 때에 적용할 수 있는 애니메이션이 없다. 
 Adapter 데이터를 제공하기 위한 사용자 정의 구현이 필요하다.
RecyclerView.Adapter
ArrayAdapter/CursorAdapter와 같은 다양한 소스에 대한 어댑터가 존재
Decoration  RecyclerView.ItemDecoration 객체를 사용하여 더 많은 구분선을 설정해야한다. android:divider 속성을 이용하여 리스트에 있는 아이템들을 쉽게 구분할 수 있다.
 Click Detection 개별 터치 이벤트를 관리하지만 클릭 처리 기능이 내장되어 있지 않다.
RecyclerView.OnItemTouchListener
AdapterView.OnItemClickListener 인터페이스가 있다