[英]Flutter on tap map marker not working in iOS device
当使用flutter_map和flutter_map_marker_cluster构建带有标记的 map 时,我遇到一个问题,有时但在相当长的时间内 onTap 不再工作,但它只发生在 iOS 设备中。 在android和iOS模拟器上正常。
Flutter Map {
layers: [
// Layer map cluster marker ---> HERE
MapCluster.getMapCluster(mapStateNotifier, mapState),
],
children: [
// map tile layer
TileLayerWidget(),
// Location user marker
CircleLayerWidget(),
// Compass marker
MarkerLayerWidget(),
],
}
// inside method MapCluster.getMapCluster
return MarkerClusterLayerOptions(
// void Function(Marker)?
onMarkerTap: (Marker marker) {
// ---> HERE
// show popup
}
);
我试过了
增加标记的大小
移除其他层,仅标记层
在 Flutter 标记簇 package 中搜索问题
我意识到当我点击设备时,运行调试甚至不会跳转到 onMarkerTap 方法内的断点。 有时它显示流畅,有时即使我触摸了多少次它也会如此滞后,它不依赖于放大/缩小,go 到背景或同步/异步。
因为只有 iOS 设备有问题我认为 2 个包 flutter map 和 flutter 标记集群在处理 iOS 中的 onTap 手势时发生冲突,但我还没有找到任何证据。
最后,我想通了。 原因是在使用 FlutterCompass 时,我在init state
中调用了 StreamSubscription,它总是在旋转或摇动手机时被调用。
_compassStream = FlutterCompass.events?.listen((event) {
// update state with new value event.heading
});
解决方案:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.