【发布时间】:2018-02-24 09:56:22
【问题描述】:
使用 RecyclerView.OnItemClickListener 比在 recyclerView 的视图中实现 onClickListener 有什么优势吗?
我在 Recycler 视图中处理点击的方式是在 ViewHolder 上实现 onClickListener,如下所示
class MyViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView), View.OnClickListener{
val my_view : View
init {
my_view = itemView.findViewById(R.id.my_view_id)
my_view.setOnClickListener(this)
}
override fun onClick(v: View?) {
when (v?.id){
R.id.my_view_id -> doSomething()
}
}
}
而不是像https://stackoverflow.com/a/26196831 中演示的那样使用 RecyclerView.OnItemClickListener()
【问题讨论】:
-
优点是您可以在 Activity 或 Fragment 中处理点击,并且在适配器内部执行某些操作时会更容易。
-
你在
ViewHolder中使用它的方式:setOnClickListener(this)是你应该遵循的方式 -
@pskink 谢谢,但是你试过 Recycler.OnItemClickListener() 方法,有没有性能提升?
-
@humazed 感谢您的意见,但我不太明白您写的内容。你的意思是 Recycler.OnItemClickListener() 选项更好,因为我将能够处理 Activity 或 Fragment 中的点击?
-
将为每个视图持有者绑定附加点击侦听器,因此如果您每次都分配一个新的点击侦听器,可能会影响性能。项目点击监听器附加到回收器视图,可以在片段中处理。
标签: android android-recyclerview kotlin onclicklistener