[英]flutter: How I can pass gesture to children from GestureDetector?
I have the GestureDetector
, and I detect only onHorizontalDrag
if it started near the edges.我有
GestureDetector
,如果它在边缘附近开始,我只检测onHorizontalDrag
。 How I can pass the gesture to InteractiveViewer
if the gesture is not valid for me?如果手势对我无效,我如何将手势传递给
InteractiveViewer
? if(isHorizontalDragActive == false)
return GestureDetector(
behavior: HitTestBehavior.deferToChild,
onHorizontalDragStart: (DragStartDetails details) {
// allows start only near L/R edges.
final double dX = details.localPosition.dx;
final double dW = constraints.maxWidth / 6;
if (dX < dW || dX > (constraints.maxWidth - dW)) {
isHorizontalDragActive = true;
} else {
isHorizontalDragActive = false;
}
},
onHorizontalDragEnd: (DragEndDetails details) {
if (isHorizontalDragActive == true) {
final double velocity = details.primaryVelocity ?? 0;
if (velocity < 0) {
manager.toForwardPage();
} else if (velocity > 0) {
manager.toBackwardPage();
}
}
isHorizontalDragActive = false;
},
child: InteractiveViewer
Now if I scale InteractiveViewer
I can't start moving content inside InteractiveViewer
in a horizontal direction.现在,如果我缩放
InteractiveViewer
我将无法开始在水平方向上移动InteractiveViewer
内的内容。
A GestureDetector wrapping the InteractiveViewer will not respond to GestureDetector events as expected.包装 InteractiveViewer 的 GestureDetector 不会按预期响应 GestureDetector 事件。 Try listeners
尝试听众
Listener(
onPointerMove: (moveEvent){
if(moveEvent.delta.dx > 0) {
print("user swiped right");
}
}
child: InteractiveViewer()
.....
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.