如何获取 flutter_map 的 MapController() 流事件?扑

How to get flutter_map's MapController() stream events? Flutter

我正在尝试按照此处的建议从 MapController() 收听 MapEvents https://github.com/fleaflet/flutter_map/issues/877#issuecomment-825545206 as

@override
  void initState() {
    super.initState();

    _mapController.mapEventStream.where((event) => event is MapEventMoveEnd).listen((event) {
      // TODO: You code
    });
  }

问题是我在 _mapController 中没有 mapEventStream 可用选项。 这只是一个包版本问题还是我做错了什么?? 我仍在使用 flutter_map: ^0.10.1 因为我必须更新许多其他包..

是的,您的软件包版本太旧,无法使用该功能。您至少需要 0.11.0 才能使用 mapEventStream,尽管您可以使用 0.10.1+1,具体取决于在你的用例上。

查看 lib/src/map/map.dart 的 commit history(带有 MapController 代码的文件),有两个提交很有趣:

  • July 9, 2020:在第 62 行,添加了一个名为 positionMapPosition 流。
  • Jan 29, 2021:同样在第 62 行,position 更改为 mapEventStream,其流类型更改为发出 MapEvent 个对象。

现在查看 flutter_map version history,包含上述第一次提交的最早版本是 0.10.1+1,要获得后一种形式,您需要 0.11.0。

我已经在我的编辑器中测试了它们各自版本中两个 getter 的存在。