Flutter开发中能否禁用GoogleMap的相机拖动移动功能?
Google Map禁用用户拖动时相机移动的实现方案
该需求可以直接通过Google Map官方SDK提供的手势配置项实现,不同端的具体操作如下:
- Android平台
调用地图实例uiSettings对象的setScrollGesturesEnabled(false)方法即可,仅禁用拖动滚动手势,不会影响缩放、旋转等其他交互:
// Java示例 googleMap.getUiSettings().setScrollGesturesEnabled(false);
// Kotlin示例 googleMap.uiSettings.isScrollGesturesEnabled = false
- iOS平台
设置GMSMapView实例settings属性的scrollGestures为false:
mapView.settings.scrollGestures = false
- Web端(JS)
初始化地图时在配置参数中添加draggable: false即可仅禁止拖动,若要禁用所有手势触发的相机变动可设置gestureHandling: "none":
const map = new google.maps.Map(document.getElementById("map"), { center: { lat: 你的纬度, lng: 你的经度 }, zoom: 你的默认缩放等级, draggable: false });
- Flutter平台
直接在GoogleMap组件的初始化参数中设置scrollGesturesEnabled: false即可:
GoogleMap( initialCameraPosition: CameraPosition(target: LatLng(0,0), zoom: 10), scrollGesturesEnabled: false, )
如果后续需要恢复拖动功能,只需要将上述对应的配置项改回true即可。
内容的提问来源于stack exchange,提问作者NM Naufaldo
相关产品推荐
相关产品推荐

