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

时间:2020-08-15 12:48:30

标签: android kotlin android-recyclerview

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

  1. 定义点击监听器界面
    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,但不确定如何正确地将其应用于我的代码。任何帮助将不胜感激!伪代码就足够了!

1 个答案:

答案 0 :(得分:0)

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