对于 onClick 功能的实现,哪种方法更好?
- 保存触摸开始/触摸坐标并处理此值以获得接近度?就像,如果起点和上点彼此靠近,让点击动作开始。
- 保存触摸开始/触摸时间差并处理此值?比如,如果touch开始时间和up时间差小于一个值,就让点击动作开始。
为什么?
对于 onClick 功能的实现,哪种方法更好?
为什么?
如果您绝对必须实现自己的,我会使用选项 2。
if(motionEvent==MotionEvent.ACTION_UP){
long duration = motionEvent.getDownTime() - .getEventTime();
if(duration < THRESHOULD)
click();
}
取决于您要支持多少种触摸事件:
上 : 点击
on Up : 不移动太多 -> 点击, 移动 -> 滑动
on Up:短时->点击,长时->长按已触发,忽略。
向上和长按触发:不移动太多->忽略,移动->拖放
当您确实需要更多种类的触摸事件时,您会详细了解持续时间和位移。最佳方法取决于场景。因此,如果您的触摸屏没有滑动或长按或拖放的概念,您可能只需点击每个向上事件,最简单的情况。