【问题标题】:Android app's map pins not appearing until screen is touched在触摸屏幕之前,Android 应用的地图图钉不会出现
【发布时间】:2010-10-05 20:42:08
【问题描述】:

我的应用程序出现问题。出现的第一个屏幕是显示基于从我们的服务器加载的 XML 文件定位的图钉的地图。

有时应用会按预期加载。其他时候,地图会加载,但在您触摸屏幕之前不会出现任何图钉。

任何想法为什么会发生这种情况以及可以采取什么措施来解决问题?

【问题讨论】:

  • 嗯...为什么我的问题被我以外的人编辑了?
  • 也许是为了调整标签或修复错字之类的——我们这些在 SO 上帮助了一段时间的人有能力做这种事情。

标签: android google-maps


【解决方案1】:

有时应用会按预期加载。其他时候,地图会加载,但在您触摸屏幕之前不会出现任何图钉。

如果我不得不猜测,这是一个时间问题 - 有时,您的服务器响应速度足够快,以至于引脚在初始地图渲染中被拾取,有时不是。我不知道你是如何实现服务器获取和 pin-popluation 的,但是在你的 pin 准备好之后在你的ItemizedOverlay 上调用populate()(假设这是你正在使用的),然后如果需要调用invalidate() on MapView

【讨论】:

    【解决方案2】:

    我在我的一个项目中遇到了类似的问题。叠加层会在我的测试手机(三星 G5)上正确绘制,但在模拟器上,叠加层只会在我的操作(如屏幕触摸)后出现。后来我在 Nexus One 上测试了同一个项目,结果与在模拟器上的行为相同。

    一旦按照 CommonsWare 的说明填充了 Overlay,我现在通过在 mapview 上调用 invalidate() 来强制重绘 MapView。

    【讨论】:

      【解决方案3】:

      地图上有多少个图钉??? 如果有很多引脚,则在引脚准备好后仅使用一次填充,否则将需要时间 每个填充语句都需要很长时间,所以只使用一次填充

      【讨论】:

        【解决方案4】:

        解决此问题的另一种方法是添加 GoogleMap.OnMapLoadedCallBack() 来初始化您的显示。然后时间问题就完全消失了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-10-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多