본문 바로가기

[Android/Error] 안드로이드 java.lang.IllegalStateException: An instance of OnFlingListener already set.

꿈꾸는블로그왕 2021. 2. 4.

안녕하세요.

오늘은 RecyclerView에서 SnapHelper를 적용하는 도중에 아래와 같은 에러가 생겼습니다.

java.lang.IllegalStateException: An instance of OnFlingListener already set.

 

 

OnFlingListener 인스턴스가 이미 존재하는 에러라는데...

 

OnFlingListener 리스너를 한번 찾아 봤는데 아래와 같은 설명이 있었습니다.

 

This class defines the behavior of fling if the developer wishes to handle it.

Subclasses of RecyclerView.OnFlingListener can be used to implement custom fling behavior.

 

일단 구글링 해본 결과 아래와 같은 해결책을 제시해 주네요.

 

[방법1]

binding.rvTaskList.onFlingListener == null
snapHelper.attachToRecyclerView(binding.rvTaskList)

이 방법은 OnFlingListener가 복잡해서 그냥 null 하면 다른 문제가 생길 수도 있다는 의견이 있네요.

 

[방법2]

if (binding.rvTaskList.onFlingListener == null) {
    snapHelper.attachToRecyclerView(binding.rvTaskList)
}

저는 이방법을 적용했습니다.

 

[방법3]

init에서 호출하기

 

 

댓글