0

我正在尝试为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
            )
          ),
          ...
        ]
      )
    )
  );
}

我希望地图是不透明的。谷歌地图插件可以做到这一点,还是他们会阻止这样的样式?

4

1 回答 1

0

google_maps_flutter插件GMSMapView在iOS上渲染一个native ,MapView在Android上渲染一个native,因此需要插件本身实现alpha设置才能访问它。

不幸的是,您不能像Opacity渲染原生组件时尝试的那样使用 Flutter 的小部件,因为该小部件仅适用于 Flutter 本身在画布上绘制的元素。

所以如果你真的想实现这个,你必须自己在 Android 和 iOS 中实现它。在这种情况下,您可以使用该google_maps_flutter插件作为参考。

于 2019-07-02T08:47:09.500 回答