【发布时间】:2020-01-01 07:23:45
【问题描述】:
我有一个 RecyclerView,它的模型中有三个按钮, 如何为每个按钮设置一个监听器?我可以访问 RecyclerView 的孩子并为其设置一个监听器,但我想为 RecyclerView 的一个孩子的孩子设置一个监听器。考虑一下我正在使用 Kotlin。
我使用了这段代码,它可以让您访问 recyclerView 的孩子,但不能访问 RecyclerView 的孩子的孩子:
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)
}
}
})
}
【问题讨论】:
-
添加你的实现到目前为止你尝试了什么
-
总是添加一些有问题的工作实现。 :)
-
您可以在适配器中添加按钮点击
标签: android kotlin android-recyclerview onclicklistener