【发布时间】:2020-09-09 12:36:25
【问题描述】:
我有RecyclerView 并设置了OnTouchListener 和OnClickListener 的每个项目
OnTouchListener:
override fun onBindViewHolder(holder: ItemListViewHolder, position: Int) {
val item = getItem(position)
holder.bind(item)
holder.itemView.cardview.setOnTouchListener { v, event ->
if (event.action == MotionEvent.ACTION_DOWN) {
Log.d(TAG, "onBindViewHolder: $event.buttonState")
this.startDragListener.onStartDrag(holder)
}
return@setOnTouchListener true
}
}
OnClickListener:(在视图持有者内)
init {
itemView.setOnClickListener(this)
}
override fun onClick(v: View?) {
onItemClickListener.onItemClick(adapterPosition)
}
问题是当我点击该项目时,只触发了startDragListener,但从未触发过点击事件。
我在 stackoverflow 上阅读了一些关于此问题的类似问题,但其中大多数都是非常旧/不推荐使用的方法
如何解决这个问题并同时处理触摸监听器和点击监听器?
【问题讨论】:
标签: android kotlin android-recyclerview listener