gpt4 book ai didi

google-maps - 在 Dart 中使用 google_maps_flutter 的 GestureDetector

转载 作者:行者123 更新时间:2023-12-03 23:11:34 35 4
gpt4 key购买 nike

我正在使用 google_maps_flutter并且希望在用户在 map 上执行手势时执行操作,无论是缩放/倾斜/移动/旋转。但是我无法使用 onCameraMoveStarted房产在GoogleMap class因为它还可以识别非手势用户操作以及编程动画(我的应用程序使用),无法(据我所知,否则请纠正我)无法区分它们。

因此我想到了使用 flutter 小部件 GestureDetector ,将 map 包裹在其中,以便我能够根据 GestureDetector 检测到的手势更改变量,从而在 map 中间接导致更改。

最初没有问题,它充当透明层, map 可以正常移动/倾斜/旋转/缩放。但是,在添加要通过 onPanStart、onPanUpdate 或 onPanEnd 执行的函数后,都会使 map 无法通过手势进行交互。我想这一切都被 GestureDetector 捕获了,但是我有没有办法在将手势传递给 child 的同时异步执行上述额外任务?

这是结构,顺便说一句:

 build(context) {
return Scaffold(
body: GestureDetector(
behavior: HitTestBehavior.deferToChild,
onPanStart: {...}
child:
GoogleMap(...),
),
...
);
}

提前致谢,非常感谢任何帮助。

最佳答案

我找到了一个可能对你有用的解决方案。

class Test extends DragGestureRecognizer {
Function _test;

Test(this._test);

@override
void resolve(GestureDisposition disposition) {
super.resolve(disposition);
this._test();
}
}

...
return GoogleMap(
...
gestureRecognizers: Set()
..add(Factory<DragGestureRecognizer>(() => Test(() {
if (_focusEnabled) {
setState(() {
_focusEnabled = false;
});
}
})),
);

这会在每次与 map 交互时运行您的函数。
但我没有找到区分事件的方法。

关于google-maps - 在 Dart 中使用 google_maps_flutter 的 GestureDetector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57061134/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com