当指针在多个指针中移动时如何处理事件?

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

来自文档 - https://developer.android.com/develop/ui/views/touch-and-input/gestures/multi

仅将 getActionIndex() 函数与 ACTION_POINTER_UP 和 ACTION_POINTER_DOWN 事件结合使用。不要将此函数与 ACTION_MOVE 事件一起使用,因为它始终返回 0。

那么,我该如何处理

当前代码不起作用。

override fun onTouchEvent(event: MotionEvent): Boolean {
    when (event.action and MotionEvent.ACTION_MASK) {
        MotionEvent.ACTION_MOVE -> {
            val pointerId = event.getPointerId(event.actionIndex)
            val eventX = event.getX(event.actionIndex).toInt()
            val eventY = event.getY(event.actionIndex).toInt()
            return true
        }
    }
    return super.onTouchEvent(event)
}
正如文档中提到的,

event.actionIndex
始终返回
0
,因此当有多个触摸时,我只能处理第一次触摸的移动。

android android-canvas android-custom-view multi-touch
1个回答
0
投票

正如文档所说 - 使用向下和向上事件来保存索引,然后在移动事件中使用它来获取坐标。

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