【问题标题】:Is it possible to handle tap events in an InfoWindow in google_maps_flutter?是否可以在 google_maps_flutter 的 InfoWindow 中处理点击事件?
【发布时间】:2019-06-19 15:16:05
【问题描述】:

我正在使用google_maps_flutter 向谷歌地图添加标记,并且我想在用户点击 InfoTextWindow 时显示一个新屏幕。

我似乎找不到办法做到这一点。有人知道吗?

我添加标记的方式是:

mapController.addMarker(MarkerOptions(
        position: LatLng(sr.lat, sr.lon),
        icon: BitmapDescriptor.defaultMarker,
        infoWindowText: InfoWindowText(
          sr.serviceName,
          sr.description,
        ),
      ));

【问题讨论】:

  • 恐怕目前还做不到。
  • 我找到了解决办法。看看我下面的答案。
  • 我以为您想知道具体点击了哪个标记。我相信您的解决方案会触发任何点击的标记。
  • 是的,我就是这个意思。您可以将标记存储在 Map<String, YourObject> 中,然后检查 .onInfoWindowTapped(Marker marker 中的 Marker 的 id 是否与您要查找的匹配。
  • 很高兴知道。谢谢。

标签: flutter


【解决方案1】:

我刚刚发现这已经使用GoogleMapController.onInfoWindowTapped() 实现了。

【讨论】:

    【解决方案2】:

    现在有一种新方法可以做到这一点,基本上你应该在你的InfoWindow 实现中实现onTap。看这个例子:

    Marker(
        markerId: MarkerId("your marker id"),
        position: position,
        icon: BitmapDescriptor.defaultMarker,
        onTap: _onMarkerTapped,
        infoWindow: InfoWindow(
            title: t.name,
            onTap: () {
               // InfoWindow clicked
            })
     )
    

    【讨论】:

    • 谢谢,我更新了正确答案供大家查看。
    猜你喜欢
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多