recyclerview 4

[Android] 하나의 화면에 다양한 UI 블록을 구성하는 3가지 방식

앱 만들다 보면 한 화면에 여러 종류의 UI를 스크롤 되게 구성해야 할 일이 자주 생기는데,이런 경우에 사용하는 3가지 방식에 대해 알아보겠습니다 FragmentContainerView 방식 (Fragment 삽입) 특징각 UI 블록을 Fragment로 나눠서 FragmentContainerView에 삽입고정된 레이아웃이나, 특정 위치에 동적으로 fragment를 붙이는 방식 장점각 블록마다 생명주기, ViewModel 분리 가능로직이 복잡하거나 독립된 기능일 경우 구조화에 유리 단점fragment가 많아지면 성능 저하 발생ScrollView 안에 fragment 여러 개 → 비추천 구조 (nested fragment 문제 등) [layout] [act..

📱 Android 2025.07.28

[Android] ViewPager2 감도 조절하기

viewpager2를 카드뷰처럼 넘기고 싶은데 너무 휙휙 돌아가지는 거 같아서 서치하다 찾은 방법이다  ViewPager2는 ViewPager와 다르게 RecyclerView를 기반이라 recyclerview내에 스크롤 감도를 조절하는 mTouchSlop을 변경하면 된다  fun ViewPager2.reduceDragSensitivity() { val recyclerViewField = ViewPager2::class.java.getDeclaredField("mRecyclerView") recyclerViewField.isAccessible = true val recyclerView = recyclerViewField.get(this) as RecyclerView val touchS..

📱 Android 2025.02.08

[Bug / RecyclerView] java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionNotificationHolder

🐛 SwipeRefreshLayout에서 refresh시 발생 주 원인  : 데이터 변경 시 리사이클러뷰의 뷰 홀더와 실 데이터가 불일치 SwipeRefreshLayout에서 refresh 발생 시 Adapter의 아이템을 clear 하고 새로 그렸는데, 이 과정에서 문제가 발생한 거 같다  시도한 방법 1. bindViewHolder할 때 holder.bind(아이템목록[position])을 holder.bind(아이템목록[absoluteAdapterPosition])으로 변경  -> 똑같이 에러 발생 2. refresh후 데이터 가져올 때 clear()를 시키지 않고, 데이터를 가져온 후 기존의 데이터와 바꿈!  -> 성공 🔑 recyclerView는 기존의 뷰 홀더를 재사용하려고 하지만, cl..

🐛 버그 2024.05.20

[Android] RecyclerView (1) - Multi ViewHolder

안녕하세요 :) 오늘은 RecyclerView를 사용해보겠습니다 굉장히 자주 쓰이는 부분이기에 저 또한 더 자세히 알아두고자 정리해보려 합니다. (사용 빈도는 높지만 프로젝트를 처음부터 구현하지 않으면, 잘 잊기 쉽더라구요) 단순한 RecyclerView 사용보다 API를 연동해서 사용하는 방법을 정리해두면 실무에 더 될 것 같아서 REST API, ViewHolder, Retrofit, OkHttp를 함께 사용해보겠습니다. RecyclerView란 기존에 목록을 나타내기 위해 사용했던 ListView보다 더 유연하고 향상된 View로 쉽게 말하자면 ListView의 상위 버전이라고 생각하면 좋을 것 같습니다 1. 라이브러리 추가하기 implementation 'com.google.code.gson:gs..

📱 Android 2021.05.15