Skip to content

Instantly share code, notes, and snippets.

@arcadefire
Last active April 20, 2023 10:14
Show Gist options
  • Star 33 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save arcadefire/1e3a95314fdbdd78fb211b099d6ec9da to your computer and use it in GitHub Desktop.
Save arcadefire/1e3a95314fdbdd78fb211b099d6ec9da to your computer and use it in GitHub Desktop.
Add addOnItemClickListener easily to a RecyclerView using Kotlin
import android.support.v7.widget.RecyclerView
import android.view.View
interface OnItemClickListener {
fun onItemClicked(position: Int, view: View)
}
fun RecyclerView.addOnItemClickListener(onClickListener: OnItemClickListener) {
this.addOnChildAttachStateChangeListener(object: RecyclerView.OnChildAttachStateChangeListener {
override fun onChildViewDetachedFromWindow(view: View?) {
view?.setOnClickListener(null)
}
override fun onChildViewAttachedToWindow(view: View?) {
view?.setOnClickListener({
val holder = getChildViewHolder(view)
onClickListener.onItemClicked(holder.adapterPosition, view)
})
}
})
}
// Usage:
recyclerView.addOnItemClickListener(object: OnItemClickListener {
override fun onItemClicked(position: Int, view: View) {
// Your logic
}
})
@yancorrea1995
Copy link

Thank you!!

@ramdaramda
Copy link

perfect, thanks a lot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment