如何监听flutter_map的MapController流事件?0.10.1版本无mapEventStream怎么办
问题原因
这个问题是包版本差异直接导致的,你的操作逻辑没有错误。mapEventStream是flutter_map在v1.0.0版本才新增到MapController的API,你使用的v0.10.1属于更早的迭代版本,本身就没有提供这个属性。
0.10.1版本的替代实现方案
v0.10.1版本的所有地图事件回调都统一配置在FlutterMap组件的MapOptions参数中,不需要通过MapController监听。如果你要监听地图移动结束事件,直接配置onMapMoveEnd回调即可,示例代码如下:
@override Widget build(BuildContext context) { return FlutterMap( mapController: _mapController, options: MapOptions( // 你的其他基础配置,如center、zoom等 onMapMoveEnd: (MapPosition position, bool hasGesture) { // 此处填写你原来要在MapEventMoveEnd监听中执行的逻辑 // position参数可获取当前地图的中心点、缩放层级等信息 // hasGesture参数可判断本次移动是否由用户手势触发 }, ), // 你的其他图层配置,如TileLayerOptions、MarkerLayerOptions等 ); }
如果需要监听其他地图事件,对应回调也都在MapOptions中提供,常用的包括:
onTap:监听地图点击事件onLongPress:监听地图长按事件onPositionChanged:监听地图位置实时变化事件onMapReady:监听地图初始化完成事件
内容的提问来源于stack exchange,提问作者Vincenzo
相关产品推荐
相关产品推荐

