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)
}
}
또 하나 배워갑니다~!