防止 Google 地图在 SingleChildScrollView 内滚动

时间:2021-02-01 08:28:36

标签: flutter google-maps scroll

我在“SingleChildScrollView”中有一个谷歌地图以及其他几个小部件。

地图确实占据了屏幕高度的很大一部分。

当我滚动内容并来到地图区域并尝试滚动时,整个页面不滚动。它滚动地图。

有没有办法解决这个问题?

我还想滚动地图。 也许在谷歌地图上启用 2 指滚动?

GoogleMap(
              mapType: MapType.normal,
              initialCameraPosition: _cameraStartPos,
              onMapCreated: (GoogleMapController controller) {
                _mapController = controller;
                controller.setMapStyle(_mapStyle);
              },
              onCameraMove: (CameraPosition pos) {
                _zoomLevel = pos.zoom;
                _zoomLevelChanged();
              },
              onTap: null,
              myLocationButtonEnabled: false,
              zoomControlsEnabled: true,
              zoomGesturesEnabled: true,
              mapToolbarEnabled: true,
              gestureRecognizers: Set()
                ..add(
                    Factory<PanGestureRecognizer>(() => PanGestureRecognizer()))
                ..add(Factory<ScaleGestureRecognizer>(
                    () => ScaleGestureRecognizer()))
                ..add(Factory<VerticalDragGestureRecognizer>(
                    () => VerticalDragGestureRecognizer())),
              markers: Set.of(_markers.values),
            )

1 个答案:

答案 0 :(得分:1)

尝试用 IgnorePointer 包装 GoogleMap:

IgnorePointer(ignored: true, child: GoogleMap

使用 Stack 包裹 GoogleMap 和透明容器(与 GoogleMap 大小相同并在其顶部):

Stack(
  children:[
    GoogleMap,
    Container(color: Colors.transparant
  ],
)