본문 바로가기
Android/디버깅

[Android] RecyclerView 데이터 꼬일 때

by 붕어사랑 티스토리 2022. 6. 28.
반응형

대량의 데이터를 단순 출력하는데에는 RecyclerView가 최고의 선택일 것이다.

허나 단순출력을 넘어 데이터에 리스너등을 달아주는 순간 데이터가 꼬이기 시작한다.

 

 

 

이러한 문제의 원인은 ViewHolder를 재사용함에 있어서 발생하는 문제이다.

 

그럼 어떻게 해결해야 할 까? 걍 리스트뷰를 쓰는게 나을까?

 

 

 

 

해결방법1 : 재활용 막기

holder.setIsRecyclable(false);

 

위와같이 홀더의 재활용을 막으면 데이터 꼬임 문제를 해결 할 수 있다.

 

하지만 이렇게 하면 리사이클러뷰를 사용하는 의미가 없다

 

 

 

 

해결방법2 : 재활용 될 때 뷰를 초기화 하기

 

내가 찾은 해결방법은 onViewRecycled(ViewHolder holder) 메소드를 재 정의 하는 것이다.

 

뷰가 재활용 될 때 홀더를 싹다 초기화 시켜주고 마치 새것마냥 사용하면 되는 것이다.

 

이렇게 하면 뷰를 재활용하여 퍼포먼스 문제를 해결함과 동시에 데이터 꼬임을 해결 할 수 있다.

반응형

댓글