标记属性设置为final,因此不能更改。没有设置器方法可以更改其值而无需尝试重新创建所有标记。
我尝试以下内容:
markers.update(_markerId, (Marker m) {
print(m.markerId);
return Marker(markerId: MarkerId("2"), infoWindow: InfoWindow(title: "Test"));
});
上面的代码只是隐藏了最后一个标记而已
答案 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