android - 处理项目 ViewHolder 的滑动手势侦听器
问题描述
我想知道为 recyclerView 项目 ViewHolder 定义滑动手势侦听器的正确方法是什么。这是做了什么:
- 定义点击监听接口
interface StockItemViewClickListener {
fun onItemClick(stock: Stock)
fun onItemLongClick(stock: Stock)
fun onGestureListener(stock: Stock)
}
- 我的活动类实现了上面的接口,然后
this
在创建回收器适配器时通过
class MainActivity : AppCompatActivity(), StockItemViewClickListener {
// some code here ...
}
- 最后,在 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来实现您想要的。只需将其添加到itemView
您的 ViewHolder 中即可。
推荐阅读
- python - 在 if、elif 语句中使用变量
- angular - 错误:无法转译程序 - Ionic 3 错误
- raku - “要求”在哪里定义?
- sql - 如何提取不同长度的字符串的一部分并将其插入表中?
- python - 无法在 Raspberry pi 上的 StaticText 上设置 bgcolor(但在 Win10 中没有)
- biztalk - BizTalk 映射中的累积和 functoid 忽略小数点后的零
- python - 在 python 控制台中显示汉字
- c++ - 这是一个错误吗?constexpr 构造函数静默变为非 constexpr
- c# - 在c#中锁定sqlcommand对象
- bootstrap-4 - 无法获得下拉菜单的“打开”状态