꾸준히 안타치기
리사이클러뷰, 리스트뷰 본문
https://medium.com/@bansooknam/android-recyclerview-%EC%9A%94%EC%95%BD-aaea4a9c95e7
2.리사이클러뷰의 모듈화
Android RecyclerView 요약
1. 구성요소
medium.com
어뎁터 : 새로운 뷰의 추가를 위한 어뎁터
- 어뎁터는 데이터를 가져와서 뷰에 적용시킨다.
- 어뎁터가(뷰홀더를 전달) ->리사이클러뷰에게 전달시킨다.
- ViewHolder 클래스를 static으로 정의한다.
OnCreateVIewHolder
- 뷰홀더 객체가 만들어 질때 자동으로 호출됨
- 뷰 타입을 위한 정수 값이 파라미터로 전달됨
- xml레이아웃을 인플레이션하여 뷰그룹객체에 설정
OnBindVIewHolder
- 재사용될때 호출됨
- 뷰 객체는 기존것을 그대로 사용하고, 데이터만 바꿔줌
ViewHolder: 실제 아이템의 레퍼런스를 가지고 있음
- findviewbyid를 레이아웃에 뷰가 추가될때가 아닌 뷰가 생성될때만 호출
- 뷰에 새로운 데이터를 넣어 업데이트할때 캐시로 사용함.
- 클릭 이벤트를 처리할수 있게 만든다.
- 어댑터 객체 밖에 리스너를 설정하고, 설정된 리스터 쪽으로 이벤트를 전달받도록 하는 것이 좋다.
3. 왜 뷰홀더를 사용하는 것일까?
뷰홀더 사용이 중요한 이유 : 추가할 데이터나 이미지를 포함하는 뷰를 캐쉬하기 떄문에!
계속 어뎁터로부터 findeviewbyid를 호출하는 것은 무거운 작업이기 떄문에 비효율적이다 .
특히 계층적인 뷰구조를가질떄는 더욱더 비효율적이다. 그래서 뷰홀더에 뷰전체를 캐쉬시키는것이 최선이다.
뷰홀더가 하는 일 - 리스트 항복 하나의 view를 만들고 보존하는 일을 한다.
리사이클러뷰는 Adapter를 통해서 viewHolder 객체를 생성한다.
ViewHolder 클래스 내부에는 itemView라는 필드가 있는 데 ,해당 필드로 View 객체를 가져온다.
public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> {
//
ArrayList<String> arr = new ArrayList<String>();
CustomAdapter( ArrayList<String> arr){
this.arr = arr;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_test, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.getTextView().setText(arr.get(position));
}
@Override
public int getItemCount() {
return arr.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
private final TextView textView;
public ViewHolder(View view) {
super(view);
// Define click listener for the ViewHolder's View
textView = (TextView) view.findViewById(R.id.textView);
}
public TextView getTextView() {
return textView;
}
}
}
레이아웃 매니저 : 리사이클러뷰에게 뷰를 어떻게 보여줄지 말해줌.
- 수직, 수평 , 그리드 등으로 보여주는거나 아이템을 추가 제거할떄 애니메이션 효과를 넣을 수 있음.
[안드로이드] Recyclerview 제대로 알고 쓰자 !
안녕하세요 개발자 삐질입니다 오늘 제가 소개하고 싶은 내용은 제대로 된 리사이클러뷰의 개념 입니다. 여러분, 리사이클러뷰는 리스트뷰 -> 리사이클러뷰 즉 리스트형식의 UI를 구성하는 데
ppizil.tistory.com
Android_RecyclerView(리사이클러뷰)_re
RecyclerView 1. 어답터의 개념 Adapter의 역할 1) List의 셀 하나하나의 맞게 데이터를 가공한다. 2) 데이터가 통째로 바뀐다고 해도 (데이터 Title, Name, Number 가 Car number, Address) 어답터가 한번..
jjunji.tistory.com
jjunji.tistory.com/70?category=702320
ListView(리스트 뷰)
ListView : 일반적으로 리스트 형태로 된 화면 컨트롤, 여러 개의 아이템 중에 선택하는 기능을 넣을 때 자주 사용. 위 그림은 리스트 뷰와 같은 선택 위젯이 사용되는 방식이다. 원본 데이터를 위
jjunji.tistory.com
옆으로 넘겨서 삭제, 이동하기
'Android _ 서버연동_채팅 > Android - UI' 카테고리의 다른 글
버튼 이벤트 리스너 만드는 법 (0) | 2021.02.08 |
---|---|
커스텀 토글 버튼 만들기 , custom toggle btn (0) | 2021.02.08 |
버튼 Enable (0) | 2021.02.07 |
타이머 구현 (0) | 2021.02.06 |
상태바,하단 소프트바 보이게 하기, 안보이게 하기, (0) | 2021.02.01 |