我已按照 Android 文档中的说明将 ScaleGestureDetector 连接到 OnTouchListener。由于某种原因,ScaleGestureDetector 并不总是检测到捏合手势的结束。这主要发生在从大到小快速捏合时。
效果是,在我松开两个手指后,检测器不会触发手势结束事件。如果我之后用一个触摸屏幕,它仍然认为我正在继续缩放手势(继续触发 onScale 事件)。我必须做另一个手势才能让探测器触发结束事件。
我已将日志添加到 OnTouchListener 并且当缩放手势卡住时,当使用一根手指并且 event.getPointerCount() 为 1 时,我仍然会正常获得运动事件。
我确保没有其他听众介入。具有 onTouchListener 的视图不是屏幕上的唯一视图,但是当我非常小心地在这个视图中开始和结束手势时也会发生这种效果。
有什么方法可以改善末端检测吗?
或者,如果我有办法手动将 ScaleGestureDetector 设置为触发 onScaleEnd 并更改scaleGestureDetector.isInProgress()
为 false?