Thursday, June 13, 2019

RecyclerView에서 getAdapterPosition() 사용시 주의점 및 해결방법

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