RecyclerView에서 getAdapterPosition() 사용시 주의점 및 해결방법
RecyclerView adapter에서 holder를 구성하다 보면 onBindViewHolder에서 데이터 처리를 해주는 경우가 많습니다. 그러나 한 번만 생성해야 하는 리스너나 기타 설정 등은 holder constructor에서 적용해줘야 하는 경우가 있습니다.
그런데 가끔 getAdapterPosition()
가 RecyclerView.NO_POSITION (-1)
을 반환하는 경우가 있습니다. 이는 말 그대로 POSITION된 상태가 아니라 위치값을 가져올 수 없다는 의미입니다.
해결방법
OnClickListener
등은 RecyclerView에 bind 된 상태이기 때문에 해당 리스너 안에서 getAdapterPosition()
를 사용하면 RecyclerView.NO_POSITION (-1)
을 반환하지 않습니다. 이 점을 개발 시 참고해서 사용하면 좋겠습니다.
0 개의 댓글:
Post a Comment