我有一个视频观看屏幕。在着陆事件中,我停止视频,在触摸恢复时。然而,我遇到了一个困难 - 我需要向上滑动并打开视频设置窗口,而视频应该暂停。
我正确处理了向下和向上事件 - 但现在当我处理向上滑动时,我遇到了问题。 根据文档,首先调用向下,然后滑动,然后向上 - 结果,我在滑动期间收到不需要的事件。我如何跟踪这是一次滑动,同时忽略向下和向上?
我有代码可以尝试
override fun onTouch(view: View, event: MotionEvent): Boolean {
when (event.action) {
MotionEvent.ACTION_DOWN -> {
touchAction(TouchEvent.TOUCH_START) //callback touch start
}
MotionEvent.ACTION_UP -> {
touchAction(TouchEvent.TOUCH_END) //callback touch end
}
MotionEvent.ACTION_MOVE -> {
val lastTouchPosition = lastDownTouchPosition ?: return false
val deltaX = lastTouchPosition.x - event.rawX
val deltaY = lastTouchPosition.y - event.rawY
if (deltaY.absoluteValue - deltaX.absoluteValue > 1.5 && deltaY > 0) {
swipeUpAction() //callback swipe up
}
}
}
return true
}
我可以在ACTION_MOVE中过滤ACTION_DOWN和ACTION_UP吗?
您需要引入一个 SimpleOnGestureListener(),请参阅此处(Java 和 Kotlin 中的示例)。
如果这个答案可以帮助您解决您的问题,请不要忘记点赞(点击左侧的⏶)。