在Flutter中,有没有一种方法可以切换标记在Google地图上的可见性?

时间:2019-07-15 14:59:26

标签: flutter google-maps-flutter

标记属性设置为final,因此不能更改。没有设置器方法可以更改其值而无需尝试重​​新创建所有标记。

我尝试以下内容:

  markers.update(_markerId, (Marker m) {
      print(m.markerId);
      return Marker(markerId: MarkerId("2"), infoWindow: InfoWindow(title: "Test"));
    });

上面的代码只是隐藏了最后一个标记而已

1 个答案:

答案 0 :(得分:0)

您还不能更改现有标记对象的属性,因为它们被声明为final。

您可以做的是在另一个标记中创建该标记对象的副本,然后更改属性并替换为该属性。像这样的东西。

 final Marker marker = markers[selectedMarker];
    setState(() {
      markers[selectedMarker] = marker.copyWith(
        visibleParam: !marker.visible,
      );
    });

版权:摘录自Google官方Google Flutter插件示例的代码段。

更多示例在这里 https://github.com/flutter/plugins/tree/master/packages/google_maps_flutter/example/lib