java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionLoadingViewHolder (with Kotlin)

Purang·2022년 12월 13일
0

Android Studio

목록 보기
24/28

java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionLoadingViewHolder 에러가 현재 진행중인 프로젝트에서 발생하였습니다.

이 문제는 검색 결과 새로고침이 완료되기 전에 무한스크롤을 통해 아이템 항목을 불러와서(스크롤을 빨리 내려서)라고 나왔습니다..

문제해결은 검색 결과에서 나온 holder.adapterPosition과 refresh함수에 1초 딜레이 및 터치방지를 주는 것으로 해결하였습니다.

//새로고침 시 터치불가능하도록
private fun initSwipeRefrech() {
        homeBinding.refreshSwipeLayout.setOnRefreshListener {
            //새로고침 시 터치불가능하도록
            requireActivity().window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE) // 화면 터치 못하게 하기
            val handler = Handler(Looper.getMainLooper())
            handler.postDelayed({
               
                dataSet()
                ...
                //터치불가능 해제 
                requireActivity().window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE)
            }, 1000)
        }
    }

또 하나 배워갑니다~!

참조 : https://todaycode.tistory.com/18

profile
몰입의 즐거움

0개의 댓글