리사이클러뷰 RecyclerView
* 예전에는 ListView 사용 BUT 요즘은 보다 유연하고 향상된 성능의 RecyclerView 사용
* Scrollable
* 화면을 벗어나도 View를 버리지 않고 재활용(recycle)
* ViewHolder를 이용해 한 Item의 Layout을 만들어 놓으면 재사용 가능
ListView와 다른 점
* LayoutManager a. LinearLayoutManager : 수평 또는 수직 방향 일렬로 배치
b. GridLayoutManager : 바둑판 모양 배치
c. staggeredLayoutManager : 크기가 다른 사각형 배치
* ViewHolder : View를 유지(hold)
Apple, Apricot, ... 등의 Item들의 View를 hold 해 놓고, 밑의 요소 하나 하나의 View를 만들 필요 없이
재사용
RecyclerView의 동작 과정
* RecyclerView가 하는 역할은 거의 없다.
* LayoutManager 속성 설정, Adapter 속성 설정하면 끝
>> LayoutManager가 Adapter에게 요청(어떤 data가 필요하다)하면 Adapter는 ViewHolder의 도움을 받아 처리
Adapter에게 요청하면 Adapter는 3개의 Callback Method 제공
onCreateViewHolder : 화면에 출력. Inflater를 이용해 ViewHolder에 view를 넣어 리턴해줌
onBindViewHolder : 데이터 원본의 내용을 Layout과 연결(Binding), 데이터를 뷰에 결합.
List에 속한 Item을 반복을 통해 하나씩 가져와 출력
getItemCount : List 항목의 전체 수
RecyclerView 만들기
1. LayoutManager
2. ViewHolder
3. Adapter
onCreateViewHolder : MyViewHolder 객체 return, view는 Item.xml
onBindViewHolder : item을 하나씩 가져와 출력
4. onCreate()
recyclerView는 LayoutManager, Adapter(+ ViewHolder의 도움)가 필요
Array -> ArrayList로 변환
Array : 정적 타입, 초기화와 동시에 크기가 정해짐
ArrayList : 동적 타입, 메모리 크기가 가변적
'Android' 카테고리의 다른 글
리사이클러뷰 (RecyclerView) - 3. Fragment, ViewModel, CardView ... (0) | 2021.11.30 |
---|---|
리사이클러뷰 (RecyclerView) - 2. ViewModel (0) | 2021.11.26 |
프래그먼트 (Fragment) - 3. 통신 (0) | 2021.11.25 |
프래그먼트 (Fragment) - 2. 동적 교체 (0) | 2021.11.25 |
프래그먼트 (Fragment) - 1 (0) | 2021.11.24 |