包装在 GestureDetector 中的 Google 地图不会收到拖动事件



如何使GoogleMap在被GestureDetector包装时接收指针事件,以下代码阻止拖动映射:

GestureDetector(
    behavior: HitTestBehavior.translucent,
    onVerticalDragStart: _onMapDragged,
    onHorizontalDragStart: _onMapDragged,
    child: GoogleMap(...

我认为这可能取决于您需要对该手势检测器做什么。我在使用手势检测器打开/关闭菜单抽屉时遇到了类似的问题。所以我的解决方案是创建一个control变量来检查菜单是打开还是关闭,然后设置null GestureDetector 小部件的事件回调,如下所示:

GestureDetector(
  behavior: HitTestBehavior.translucent,
  onVerticalDragStart: isDraggable ? _doVerticalDrag : null,
  onHorizontalDragStart: isDraggable ? _doHorizontalDrag : null,
  child: GoogleMap(),
);

因此,当isDraggable false时,地图将收到拖动操作。

希望这对其他人有类似问题有所帮助。

最新更新