Android 为什么一开始调用单点确认而不是双点确认?

Android 为什么一开始调用单点确认而不是双点确认?,android,touch-event,Android,Touch Event,实际上,我正在尝试使用singleTapConfirmed()和doubleTap()执行两个操作。为此,我使用GestureTap类,该类从GestureDetector.SimpleOnGestureListener扩展而来。虽然它在某些设备上运行良好,但在某些设备上,如nougat和oreo它会首先接收singletapconfixed(),甚至是通过doubleTap。我想知道如何解决这个问题 代码: 这可能对你有帮助 @Override public boolean onTou

实际上,我正在尝试使用
singleTapConfirmed()
doubleTap()
执行两个操作。为此,我使用
GestureTap
类,该类从
GestureDetector.SimpleOnGestureListener
扩展而来。虽然它在某些设备上运行良好,但在某些设备上,如
nougat
oreo
它会首先接收
singletapconfixed()
,甚至是通过doubleTap。我想知道如何解决这个问题

代码:

这可能对你有帮助

@Override
    public boolean onTouchEvent(MotionEvent event) {
        int action = event.getActionMasked();
                if (action == MotionEvent.ACTION_DOWN) {
                    final long now = event.getEventTime();
                    if (now - mTouchTime < ViewConfiguration.getDoubleTapTimeout()) {
                        mTouchTime = 0;
                        //doubleClick(event);
                    } else {
                        mTouchTime = now;
                    }
                } else if (action == MotionEvent.ACTION_POINTER_DOWN) {
                    mTouchTime = 0; // no double-tap for other fingers
                }

            return true;
    }
@覆盖
公共布尔onTouchEvent(运动事件){
int action=event.getActionMasked();
if(action==MotionEvent.action\u DOWN){
final long now=event.getEventTime();
if(现在-mTouchTime
系统双击超时为ViewConfiguration.getDoubleTapTimeout();我不确定窃听的延迟是否会触发这两种情况,请检查一下。@AjgTheta先生如何做检查帖子以获取答案非常感谢您的回答。虽然现在双击被正确接收,但如何得到确认
@Override
    public boolean onTouchEvent(MotionEvent event) {
        int action = event.getActionMasked();
                if (action == MotionEvent.ACTION_DOWN) {
                    final long now = event.getEventTime();
                    if (now - mTouchTime < ViewConfiguration.getDoubleTapTimeout()) {
                        mTouchTime = 0;
                        //doubleClick(event);
                    } else {
                        mTouchTime = now;
                    }
                } else if (action == MotionEvent.ACTION_POINTER_DOWN) {
                    mTouchTime = 0; // no double-tap for other fingers
                }

            return true;
    }