按照Android文档中的说明,我已将ScaleGestureDetector挂钩到OnTouchListener。出于某种原因,ScaleGestureDetector并不总是检测捏合手势的结束。这种情况主要发生在从大到小快速捏合时。ScaleGestureDetector未检测到手势结束
效果是,我释放了两个手指后,探测器不会触发手势结束事件。如果我之后用一个屏幕触摸屏幕,它仍然认为我正在继续缩放手势(持续触发缩放事件)。我必须做另一个手势才能让探测器触发结束事件。
我已经添加日志到OnTouchListener而当规模的姿态用一根手指和event.getPointerCount()为1
我已经确信,我也不当卡住我仍然得到运动赛事正常有其他听众介入。具有onTouchListener的视图不是屏幕上唯一的视图,但是当我非常小心地在这个视图内部开始和结束手势时,这种效果也会发生。
有什么办法可以改善结束检测吗?
或者如果有方法让我手动将ScaleGestureDetector设置为触发onScaleEnd并将scaleGestureDetector.isInProgress()
更改为false?
你是怎么解决这个问题的? Akos Cz的评论与源代码中的错误计算有关,而不是onScaleEnd未发送的原因? – 2011-08-02 11:33:46
@ vivek.m查看我的答案。 – 2011-08-31 02:38:11