我的目标是构建一个小部件,允许使用单指点击进行绘制,并在双指模式下缩放/移动画布。
当时我已经构建了一个ZoomView和DrawingOverlay小部件。ZoomView
允许缩放和移动作为参数传递的子对象。DrawingOverlay
允许在作为参数传递的child
小部件的顶部绘制。现在他们分开工作很好。
class ZoomView {
build() {
return GestureDetector(
onScaleUpdate: () { ... }
...
)
}
}
class DrawingOverlay {
build() {
return GestureDetector(
onPanUpdate: () { ... }
...
)
}
}
然而,当它们一起使用时,事情就会破裂:
build() {
ZoomView(
child: DrawingOverlay(
child: ...
)
)
}
优先权在很大程度上是偶然的。有时它是在按下两个手指时开始绘制的,有时它用一个手指移动屏幕,有时用另一个手指旋转。
我想将ZoomView
限制为仅2个手指手势并且将DrawingOverlay
限制为仅1个手指手势。
实现这一目标的最佳方式是什么?
它应该可以在同一个GestureDetector
上设置两个侦听器。