본문 바로가기

Android/View6

[Android] RecyclerView의 원리 및 내부 동작 Android 앱을 개발할 때 리스트를 보여줘야한다면 가장 많이 사용되는 View는 RecyclerView일 것입니다.  우리가 RecyclerView를 사용하면서 아래와 같이 스크롤을 했을 때 체크하지 않은 아이템에도 체크가 돼 있는 현상을 겪었던 적이 있을 것입니다.  왜 이런 현상이 발생하는지 RecyclerView 내부 동작에 대해 깊게 알아보는 시간을 가져보도록 하겠습니다.   🌀 RecyclerView 이전의 시대RecyclerView가 등장하기 전, 안드로이드에선 어떤 리스트를 나타내는 뷰를 만들 때, ListView라는 것을 제공했습니다. 하지만 이 ListView에는 고질적인 문제가 존재했습니다. 대표적인 문제점은 아이템 리스트를 표현하는 ItemView의 갯수가 수 백개 이상으로 많아.. 2025. 1. 23.
[Android] View에 대하여 (2) - CustomView 만들기 커스텀 뷰 만들기커스텀뷰는 왜 필요할까?안드로이드 프레임워크에서 기본 제공되는 위젯들로는 Button, TextView, EditText, ListView, CheckBox, RadioButton, Spinner 등이 있고 레이아웃으로는 LinearLayout, FrameLayout, RelativeLayout 등이 있습니다.하지만 실제로 앱을 만들다 보면 기획자, 디자이너, 사용자(클라이언트)의 요구사항에 맞는 기능을 위의 열거한 뷰들로 만들기 어렵거나 불가능한 경우가 부지기수입니다. 예를들면, 원형 썸네일을 표현하기 위한 뷰를 만들기 위해서 ImageView를 상속할 수있고, 텍스트의 일부 내용만 보여주고 원할 때 펼쳐 모든 내용을 보여줄 수 있는 뷰를 만들기 위해서는 TextView를 상속할 수도 .. 2024. 10. 27.
[Android] View에 대하여 (1) - 기본 Overview안드로이드 앱을 개발하다 보면 일반적인 뷰로는 내가 원하는 결과를 만들 수 없는 경우가 발생합니다. 이런 경우 직접 ‘커스텀 뷰’를 만들어야 합니다. 오늘은 커스텀 뷰에 대해 정리해보겠습니다. View앱 실행 화면을 구성하는 요소의 통칭위 그림에서 최상단에 위치하고 있는 뷰는 사용자 인터페이스를 구축하고 유저의 모든 입력 이벤트를 처리하는 기본적인 클래스입니다. 스크린의 직사각형 영역을 차지하며 해당 자식 요소들과 함께 측정, 배치, 그리는 역할을 합니다. ViewGroup은 하위(자식) 뷰를 포함하고 자체 레이아웃 속성을 정의할 수 있습니다. 커스텀 뷰는 아래와 같을 때 도움이 될 수 있습니다.현재 일반적인 안드로이드 구성 요소로는 원하는 작용이나 애니메이션 또는 UI를 만들 수 없을 때.. 2024. 10. 27.
[Android] 리싸이클러뷰(RecyclerView) (3) - 성능 최적화 (DiffUtil) Android DiffUtil 이해하기DiffUtil은 리스트에 나타낼 아이템들을 old item과 new item으로 나누어 두 목록의 차이를 계산하여 업데이트되는 목록을 출력하는 유틸리티 클래스입니다. 변한 아이템을 탐지하고 알아서 notify를 해주게 되므로 개발하면서 아이템이 변하는 것을 크게 신경쓰지 않아도 됩니다.   1. 기존 사용 방식(Before DiffUtil) - notify 패밀리샘플 코드와 함께 RecyclerView.Adapter 의 list update 방법들을 알아보겠습니다. 1) NotifyDataSetChanged (with Sample Code)Sample Code [1]RecyclerView 에는 ViewHolder 를 RecyclerView 에 연결할 수 있도록 Re.. 2024. 10. 25.
[Android] 리싸이클러뷰(RecyclerView) (2) - Multiple View Type 이전 포스팅에서 RecyclerView와 기본 사용법에 대해서 알아보았습니다.onCreateViewHolder의 파라미터를 살펴보면 viewType이 있는 것을 알 수 있습니다.이러한 viewType은 무엇이고 왜 사용하게 되는 걸까요?viewType이란?viewType은 변수명 그대로 viewType에 의해 구분되어 들어오는 값을 말합니다. RecyclerView 안의 개별 View가 모두 같은 타입인 경우만 있지는 않습니다. 예를 들어, 채팅 UI를 가지는 경우를 보면 View들이 서로 다른 Layout을 가져야 합니다. 또는, RecyclerView에 header나 footer를 추가하고 싶을 때에도 View를 다르게 구성해야 합니다.이런 경우에 유용하게 되는 것이 바로 viewType입니다.vie.. 2024. 10. 24.
[Android] 리싸이클러뷰(RecyclerView) (1) - 기본 개념 1. 안드로이드 리사이클러뷰(RecyclerView)"수많은 데이터의 집합을 지정된 영역 내에서 유연하게(flexible) 표시되도록 만들어주는 위젯"입니다. 안드로이드 개발자 문서에 작성된 리사이클러뷰(RecyclerView)의 설명입니다. 이해를 돋기 위해 설명을 덧붙이자면, 리사이클러뷰(RecyclerView)는 "사용자가 관리하는 많은 수의 데이터 집합(Data Set)을 개별 아이템 단위로 구성하여 화면에 출력하는 뷰그룹(ViewGroup)이며, 한 화면에 표시되기 힘든 많은 수의 데이터를 스크롤 가능한 리스트로 표시해주는 위젯"입니다. 등장 배경RecyclerView 이전에는 스크롤되는 리스트를 표현하기 위해서 ListView를 사용했습니다. ListView를 이용하면 간단하고 빠르게 리스트를.. 2024. 10. 24.