静态 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
我想创建一个 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