处理项目ViewHolder的滑动手势侦听器



我想知道为recyclerView项ViewHolder定义滑动手势监听器的正确方法是什么。以下是所做的:

  1. 定义Click Listener接口
interface StockItemViewClickListener {
fun onItemClick(stock: Stock)

fun onItemLongClick(stock: Stock)

fun onGestureListener(stock: Stock)
}
  1. 我的活动类实现了上面的接口,然后在创建回收器适配器时传递this

class MainActivity : AppCompatActivity(), StockItemViewClickListener {
// some code here ...
}
  1. 最后,在ViewHolder类中执行一些操作
class StockViewHolder(
private val view: View,
private val itemClickListener: StockItemViewClickListener
) : RecyclerView.ViewHolder(view) {
view.setOnClickListener {
stock?.let {
itemClickListener.onItemClick(it)
}
}
view.setOnLongClickListener {
stock?.let {
itemClickListener.onItemLongClick(stock)
}
true
}
// some other code
}

定义onItemClick和onItemLongClick非常容易,但我不知道如何在ViewHolder中处理手势。我读过这篇文章https://developer.android.com/training/gestures/detector.html但不确定如何将其正确地应用到我的代码中。任何帮助都将不胜感激!伪代码就足够了!

您可以使用OnTouchListener来实现您想要的功能。只需将其添加到ViewHolder的itemView即可。

相关内容

最新更新