是否可以向 GoogleMap 小部件添加不透明度?

Is it possible to add opacity to the GoogleMap widget?

我正在尝试为 GoogleMap 小部件添加不透明度,但没有看到任何变化。

我之前曾尝试用 Container 包装整个小部件,然后添加 OpacityGoogleMap 作为直接子级,但这也没有用。

下面的代码构建正确,但没有添加不透明度:

@override
Widget build(BuildContext context) {
  return MaterialApp(
    home: Scaffold(
      body: Stack(
        children: <Widget>[
          Opacity(
            opacity: 0.5,
            child: GoogleMap(
              onMapCreated: _onMapCreated,
              myLocationButtonEnabled: false,
              initialCameraPosition: CameraPosition(
                target: _center,
                zoom: 15.0,
              ),
              indoorViewEnabled: false,
              mapType: MapType.normal,
              markers: _markers
            )
          ),
          ...
        ]
      )
    )
  );
}

我希望地图是不透明的。这可以通过 GoogleMaps 插件实现吗?它们会阻止这样的样式吗?

Android 上的 google_maps_flutter plugin renders a native GMSMapView on iOS and a native MapView,因此 alpha 设置需要由插件本身实现才能访问它。

不幸的是,您不能像在呈现本机组件时尝试的那样使用 Flutter 的 Opacity 小部件,因为该小部件仅适用于 Flutter 本身在 canvas 上绘制的元素。

因此,如果您真的想实现这一点,则必须自己在 Android 和 iOS 中实现。在这种情况下,您可以使用 google_maps_flutter 插件作为参考。