静态 Google 地图(禁用所有手势)

Static Google map (disable all gestures)

我想创建一个 Google 地图小部件,它不会处理任何点击、手势 - 只是一个静态地图。 我知道我需要以某种方式设置 gestureRecognizers 但不知道哪个 class 会锁定所有手势。我应该用什么代替 ScaleGestureRecognizer()

gestureRecognizers 设置为 null 没有帮助。

When this set is empty or null, the map will only handle pointer events for gestures that were not claimed by any other gesture recognizer.

import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

class StaticMap extends StatelessWidget {
  final CameraPosition cameraPosition;
  StaticMap(this.cameraPosition);

  @override
  Widget build(BuildContext context) {
    return GoogleMap(
      mapType: MapType.normal,
      initialCameraPosition: cameraPosition,
      gestureRecognizers: {
        Factory<OneSequenceGestureRecognizer>(() => ScaleGestureRecognizer()),
      },
    );
  }
}

尝试使用 AbsorbPointer

AbsorbPointer 设为 GoogleMap child 并将其 absorbing 属性 设置为 true

return AbsorbPointer(
  absorbing: true,
  child: GoogleMap(
    mapType: MapType.normal,
    initialCameraPosition: cameraPosition,
    gestureRecognizers: {
    Factory<OneSequenceGestureRecognizer>(() => ScaleGestureRecognizer()),
    }
  )
);

你也可以设置为absorbing属性false当你想检测事件

有关 AbsorbPointer 的更多信息,请参阅 here