728x90

Android RecyclerView 6

[Android] RecyclerView의 DiffUtil 알아보기

RecyclerView를 업데이트 하기 위해 초기에는 notifyDataSetChanged()를 호출하여 전체 목록을 업데이트 했지만 이러한 방법은 전체 목록을 재생성하기 때문에 매우 비효율적이다. 이러한 문제를 해결하기 위해 등장한 DiffUtil은 데이터 세트 간의 차이점을 계산하여 필요한 최소한의 업데이트만을 수행함으로써 성능을 개선하는 것이 목적이다. 즉, 두 목록간의 차이점을 찾고 업데이트 되어야 할 목록들을 반환하고RecyclerView 어댑터에 대한 업데이트를 알리는데 사용된다. DiffUtil을 사용해야 하는 상황에 대한 예시 블로그를 작성하는 과정에서 사용자가 새로고침을 하여 블로그 게시글이 업데이트 되었다고 가정해보자 초기 데이터 세트 Post A Post B Post c 변경된 데이터..

Android 2024.03.06

[Android] RecyclerView 메소드에서의 payload

payload payload란 아이템의 변경 사항에 대한 부분 업데이트를 위해 사용되는 객체이다. 즉, 어댑터의 onBindViewHolder()가 호출될 때 넘겨 받는 파라미터이다. payload의 목적은 RecyclerView 내의 아이템 변경 시 전체 아이템 뷰를 재바인딩 하지 않으며, 변경된 부분만 업데이트 하는 것에 있다. onBindViewHolder(ViewHolder holder, int position, List payloads) payloads는 List 타입의 파라미터로 변경 사항에 대한 정보를 담고 있는 객체의 집합이다. payload는 Object 객체이기 때문에 기본 자료형(int, float, double, long)을 제외한 어떤 객체든 payload로 전달할 수 있다. 예시..

Android 2024.02.28

[Android] RecyclerView를 update하는 메소드

요약 전체적으로 업데이트 notifyDataSetChanged() 아이템 내용 변경 notifyItemChanged(int position) notifyItemChanged(int position, Object payload) notifyItemRangeChanged(int positionStart, int itemCount) notifyItemRangeChanged(int positionStart, int itemCount, Object payload) 아이템 추가 notifyItemInserted(int position) notifyItemRangeInserted(int positionStart, int itemCount) 아이템 이동 notifyItemMoved(int fromPosition, in..

Android 2024.02.28

[Android] RecyclerView - GridLayout 구현하기

RecyclerView를 카드뷰 형식으로 LinerLayout 형태로 만들어 보았다. 오늘은 GridView 형식으로 RecyclerView를 만들어 보자. 1. Layout 만들기 액티비티에 RecyclerView를 생성하고, 각 행의 아이템을 나타내줄 레이아웃도 작성해준다. 이때, row.xml에서 최상단 ConstraintLayout과 CardView는 wrap_content로 설정하여 아이템 항목에 맞춰 감싸준다. // activity_main.xml // row.xml 2. Adapter 작성 RvAdapter.java 파일을 생성한다. RvAdpater는 RecyclerView의 Adapter 클래스를 상속받아 MyViewHolder라는 내부 클래스를 사용하는 커스텀 어댑터를 정의한다. // ..

Android 2024.02.27

[Android] RecyclerView (2) - CardView를 활용해서 구현해보기

https://ehdnsdlek.tistory.com/8 [Android] RecyclerView (1) 개념 및 구조 1. RecyclerView 란? RecyclerView란 안드로이드 공식 문서에서 데이터에 해당하는 뷰가 표함된 ViewGroup이라고 정의하고 있다. 즉, RecyclerView는 데이터를 표시하기 위해 어댑터, 뷰홀더, 레이아웃 매니저 ehdnsdlek.tistory.com RecyclerView (1) 편에서 이해한 내용대로 구현하기위해 워크플로우를 작성하면 다음과 같다. Activity or Fragment에 RecyclerView 작성 아이템의 목록을 나타낼 행 레이아웃 작성 어떤 데이터를 출력할 것인지 데이터 모델 작성 리사이클러뷰 어댑터 작성 리사이클러뷰에 어댑터 연결 및..

Android 2024.02.15

[Android] RecyclerView (1) - 개념 및 구조

1. RecyclerView 란? RecyclerView란 안드로이드 공식 문서에서 데이터에 해당하는 뷰가 표함된 ViewGroup이라고 정의하고 있다. 즉, RecyclerView는 데이터를 표시하기 위해 어댑터, 뷰홀더, 레이아웃 매니저 등의 구성 요소를 사용하여 데이터를 관리하고, 이를 효율적으로 뷰로 변환하여 사용자에게 표시하는 과정 전체를 일컫는다. ListView와의 차이점은 "뷰 재사용" 기법을 사용한다는 것인데, 화면에 보이지 않는 항목의 뷰를 새로운 데이터 항목에 재사용함으로써 성능을 향상시킨다. 이를 위해 뷰홀더(ViewHolder) 패턴을 사용한다. 2. RecyclerView의 구조 RecyclerView의 구조는 크게 3가지로 분류할 수 있다. 데이터 (Data Set) Recyc..

Android 2024.02.14
728x90
LIST