无法在 onTouch 中按下时间

Can't get time pressed in onTouch

我正在尝试获取用户按下按钮所花费的时间。我就是这样做的:

var timeDown = 0L
when (event.actionMasked) {
    MotionEvent.ACTION_DOWN -> {
        timeDown = event.eventTime
        true
    }
    MotionEvent.ACTION_UP -> {
        val totalTime = event.eventTime - timeDown`

        if (totalTime <= 500) {
            do something
        }
    }
}

但不是减法,totalTime只保留了Action_UP

eventTime

这是我的 LogCat:

2020-05-13 11:58:57.194 11259-11259/app D/timeDown: 34492026
2020-05-13 11:58:57.240 11259-11259/app D/timeUp: 34492083
2020-05-13 11:58:57.240 11259-11259/app D/totalTime: 34492083

确保 var timeDown = 0L 在触摸时调用的函数之外(例如 onInterceptTouchEvent),因为您在收到的每个事件上都分配了 = 0,所以您最终会进入 "ACTION_UP ->" timeDown = 0 并且 totalTime 变得等于 event.eventTime.