如何正确检测向上滑动

问题描述 投票:0回答:1

我有一个视频观看屏幕。在着陆事件中,我停止视频,在触摸恢复时。然而,我遇到了一个困难 - 我需要向上滑动并打开视频设置窗口,而视频应该暂停。

我正确处理了向下和向上事件 - 但现在当我处理向上滑动时,我遇到了问题。 根据文档,首先调用向下,然后滑动,然后向上 - 结果,我在滑动期间收到不需要的事件。我如何跟踪这是一次滑动,同时忽略向下和向上?

我有代码可以尝试

    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吗?

android touch swipe ontouchlistener
1个回答
0
投票

您需要引入一个 SimpleOnGestureListener(),请参阅此处(Java Kotlin 中的示例)。

如果这个答案可以帮助您解决您的问题,请不要忘记点赞(点击左侧的⏶)。

© www.soinside.com 2019 - 2024. All rights reserved.