반응형
대량의 데이터를 단순 출력하는데에는 RecyclerView가 최고의 선택일 것이다.
허나 단순출력을 넘어 데이터에 리스너등을 달아주는 순간 데이터가 꼬이기 시작한다.
이러한 문제의 원인은 ViewHolder를 재사용함에 있어서 발생하는 문제이다.
그럼 어떻게 해결해야 할 까? 걍 리스트뷰를 쓰는게 나을까?
해결방법1 : 재활용 막기
holder.setIsRecyclable(false);
위와같이 홀더의 재활용을 막으면 데이터 꼬임 문제를 해결 할 수 있다.
하지만 이렇게 하면 리사이클러뷰를 사용하는 의미가 없다
해결방법2 : 재활용 될 때 뷰를 초기화 하기
내가 찾은 해결방법은 onViewRecycled(ViewHolder holder) 메소드를 재 정의 하는 것이다.
뷰가 재활용 될 때 홀더를 싹다 초기화 시켜주고 마치 새것마냥 사용하면 되는 것이다.
이렇게 하면 뷰를 재활용하여 퍼포먼스 문제를 해결함과 동시에 데이터 꼬임을 해결 할 수 있다.
반응형
'Android > 디버깅' 카테고리의 다른 글
[Android] 커스텀 뷰 invalidate 사용 시 주의 사항 (0) | 2022.08.22 |
---|---|
[Android] 앱에서 스크린 캡쳐 막기, recent app 썸네일 가리기 (0) | 2022.07.12 |
[Android] Room DB 에서 query함수 동작 안할 때 (0) | 2022.06.24 |
[Android] AlertDialog에서 showSoftInput 동작 안할 때 (0) | 2022.06.23 |
Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager (0) | 2022.04.13 |
댓글