来自文档 - 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
,因此当有多个触摸时,我只能处理第一次触摸的移动。
正如文档所说 - 使用向下和向上事件来保存索引,然后在移动事件中使用它来获取坐标。