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

时间:2019-07-02 03:16:04

标签: google-maps flutter flutter-layout flutter-plugin

我正在尝试为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插件可以做到这一点吗?还是它们阻止了这种样式?

1 个答案:

答案 0 :(得分:0)

google_maps_flutter plugin在iOS上呈现本机GMSMapView,在Android上呈现本机MapView,因此插件本身需要实现alpha设置才能访问它。 / p>

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

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