InfoWindow中的Android Google地图摘要自动更新

时间:2016-08-11 07:14:47

标签: android google-maps

我在我的应用中使用谷歌地图只有很少的标记。每隔几秒钟我就会从API标记位置加载。每个标记都设置了标题和摘要。在片段中,我想显示加载数据的时间。

问题是,当用户点击其中一个标记时,InfoWindow标题和摘要可见,然后我更改了代码段&内容但可见InfoWindow上的内容未更改 - 用户必须点击地图隐藏InfoWindow并再次点击标记 - 然后内容正确。

标题或代码段更改后是否可以刷新InfoWindow内容?

3 个答案:

答案 0 :(得分:4)

我使用Android Maps Extensions https://github.com/mg6maciej/android-maps-extensions找到了解决方案。

更新标记数据后调用此方法:

    Marker m = map.getMarkerShowingInfoWindow();
    if (m != null && !m.isCluster()) {
        m.showInfoWindow();
    }

答案 1 :(得分:3)

请注意,在Google Maps Android API的文档中:

  

info window   绘制的不是实时视图。视图呈现为图像   (在返回时使用View.draw(Canvas))。这意味着   对视图的任何后续更改都不会反映在信息中   在地图上的窗口。稍后更新信息窗口(例如,之后   图像已加载),调用showInfoWindow()。此外,信息   窗口不会尊重任何典型的正常交互   触摸或手势事件等视图。但是你可以听一个   整个信息窗口上的通用点击事件,如中所述   以下部分。

然后,如果你想做实时功能。我建议学习如何使用Firebase with Google maps

什么是Firebase

Firebase是一个具有许多功能的应用程序平台。本教程使用其实时数据库。数据存储为JSON,实时同步到所有连接的客户端,即使您的应用程序脱机也可用。

答案 2 :(得分:0)

使用onDataChange导入Firebase数据后,我更新了标记。

if (marker != null && marker.isInfoWindowShown() ) {
   marker.showInfoWindow();
}