Android如何检测双击
Android How to detect double tap?
我正在尝试在android的DoubleTap
上刷新Canvas
。我在自定义View
中使用GestureDetector
final GestureDetector mDetector = new GestureDetector(
getContext(), new GestureDetector.OnGestureListener() {
@Override
public boolean onDoubleTap(MotionEvent e) {
invalidate();
return true;
}
}
但是我得到了错误
类型为new的onDoubleTap(MotionEvent)方法GestureDetector.OnGestureListener(){}必须覆盖或实现超类型方法
Remove '@Override' annotation
解决方案。我删除覆盖,得到这个警告
来自new类型的onDoubleTap(MotionEvent)方法GestureDetector.OnGestureListener(){}从未在本地使用。
然后我试着测试这是否有效,并做了一个函数来改变TextView
字符串每当我DoubleTap
。什么也不会发生。
我还查看了gestredetector Reference以寻求解释,但他们甚至没有每个人都使用的DoubleTap
。我该怎么办?
try this
final GestureDetector mDetector = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
return true;
}
});
对于那些想知道如何将其设置为相应视图的人:
final GestureDetector gDetector = new GestureDetector(getBaseContext(), new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
doIt();
return true;
}
});
// Set it to the view
mButton.setOnTouchListener((v, event) -> gDetector.onTouchEvent(event));
我对这个问题的方法是不同的,因为我需要为onClick侦听器执行一些操作,而且它是在列表视图中,所以我需要知道项目内容是什么。以下是我使用kotlin Job的方法:在类的顶部,我声明了如下内容:
private var doubleTapTimerJob: Job = Job()
private var clickedViewItem: CartViewItem? = null
val DOUBLE_TAP_DELAY = 200L
,其中CartViewItem是列表中使用的模型。这是我的onClickListener逻辑:
if (clickedViewItem == null || clickedViewItem != cartViewItem) {
doubleTapTimerJob.cancel()
doubleTapTimerJob = lifecycleScope.launch {
delay(DOUBLE_TAP_DELAY)
clickedViewItem = null
}
clickedViewItem = cartViewItem
onClicked(cartViewItem)
} else {
onDoubleClicked(cartViewItem)
clickedViewItem = null
doubleTapTimerJob.cancel()
}
在这里,我等待200毫秒的第二次点击,如果没有发生,我将使clickedViewItem为空,所以它不再有效
相关文章:
- 使用类从一个标记中双击事件
- onclick函数需要双击,因为类分配延迟
- 了解双击代码标记
- jquery Onclick函数带有导致双击的回调排序函数
- 防止双击执行两次jQuery post请求
- JavaScript双击事件
- 选择“字符串”并使用SeleniumJava双击
- jQuery UI自动完成需要在iOS上双击
- 使用jquery在html中添加双击操作
- 双击泛光灯单击
- 如何在Firefox中禁用视频的单击和双击控件
- 双击可更改树标签
- 如何检测双击是否要提供AD
- 如何使用Firefox SDK(用于插件)检测双击选择的文本
- 我们如何检测元素外部的双击
- 如何检测发布商 DFP 广告的 Google 双击的加载状态
- 检测鼠标在单击时的移动,并检测双击
- phonegap:是否有可能从Javascript中检测到双击滑动
- 我可以查询/检测网页用户的双击速度吗?
- Android如何检测双击