안드로이드 RecyclerView 알아보기
RecyclerView 란?
- 앱을 사용하다보면, 쇼핑몰이든 게시판이든 목록이 쭈욱- 나열된 페이지를 본 적이 있을 것이다! 거~의 모든 앱에서 리스트를 보여줄만큼 필수적이다.
많은 데이터 (리스트, 목록) 를 보여주기 위한 위젯
ListView
- 이전에는 목록을 보여줄 때 ListView 를 활용했었다.
- ListView 는 스크롤하다가 화면을 벗어나면 해당 view 를 삭제하고, 해당 데이터를 보여줘야할 때 다시 생성하고 -> 삭제 -> 생성 -> 삭제 -> 생성 ... (무한반복)
=> 매번 view 를 만들어줘야하니 시간도 오래 걸리고 메모리도 많이 사용한다는 문제가 발생한다. 재사용성도 떨어짐!
ViewHolder 의 등장
- 이러한 Listview 의 단점을 해결하기 위해 ViewHolder 가 등장했다.
- 한 번 찾았던 view 를 다시 탐색하지 않도록 저장해두는 방식이다.
=>findViewById()
호출 횟수가 줄어든다! - 각 뷰를 보관하는 객체 라고 생각하면 될 것 같다!
- 왼쪽의 ListView 는 모든 view 를 하나하나 생성하는 반면,
ViewHolder 를 사용하는 RecyclerView 는 스크롤하다가 맨 위의 빨간 테두리칸이 화면에 보일 필요가 없으니 저장해두었다가,
맨 아래 빨간 테두리 칸을 화면에 보여줄 때 재사용하는 것이다!
RecyclerView 와 ListView 의 차이
- ViewHolder 클래스 활용
- LayoutManager 지원
RecyclerView 에서는 LayoutManager 를 설정할 수 있어 horizontal-scrolling, vertical-scrolling, grid 등등 view 를 다양하게 배치할 수 있다.
Listview 에서는 vertical-scrolling 만 가능했는데,,!
- ItemAnimator 지원
RecyclerView 에서는 리스트가 사라지고 나타날 때, view 를 추가하거나 제거할 때 animation 을 지원한다. 커스텀해서 사용하는 것도 가능하다!
- Notifying 관련 adapter
RecyclerView 의 데이터가 변경됨을 알려주는 Notifying adapter 가 더욱 다양해졌다.`notifyDataSetChanged()` : 데이터가 변경됨을 알려준다. `notifyItemChanged(int position, Object payload)` : 특정 position 의 아이템이 변경됨을 알려준다. `notifyItemInserted(int position)` : 특정 position 에 아이템이 추가되었음을 알려준다. 등등 데이터 변경에 관련된 메소드들이 있다!
반면, ListView 에는 notifyDataSetChanged()
만 있는데.. 이건 그냥 데이터가 변경됨을 알려주는 메소드이기 때문에 RecyclerView 의 메소드를 통해 더 세세하게 활용할 수 있다!
Author And Source
이 문제에 관하여(안드로이드 RecyclerView 알아보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ddudduu/안드로이드-RecyclerView-알아보기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)