【问题标题】:After removing OverlayItem tap events still trigger删除 OverlayItem 点击事件后仍然触发
【发布时间】:2010-10-27 07:18:52
【问题描述】:

我有一个简单的 Google 地图叠加层:http://pastebin.com/Rg8miMSh,我会根据缩放级别在上面添加/删除项目。删除/添加后,我在叠加层上调用填充并在地图视图上无效。一切正常,除了 1 个故障:删除一个项目后,如果我点击它的位置 onTap 仍然会被触发,并且因为 OverlayItem 不再存在,我在 中得到 java.lang.ArrayIndexOutOfBoundsException com.google.android.maps.ItemizedOverlay.maskHelper(ItemizedOverlay.java:562)(完整堆栈跟踪 - http://pastebin.com/KThn4ZLE

有人知道为什么会这样吗?最初我打电话给 clear 并重新添加了所有项目,这似乎没有导致这个问题。然而,有很多项目,这已成为一个性能问题。仅添加/删除差异会更快,我想保留这种方法。 谢谢!

【问题讨论】:

    标签: android google-maps overlay


    【解决方案1】:

    我通过调用“setLastFocusedIndex(-1);”解决了这个问题在“doPopulate()”中。

    【讨论】:

    • 感谢您跟进您自己的问题!刚刚遇到这个 - 感谢您的修复。 android 类必须持有一个现在删除的覆盖项的实例,导致它抛出一个 draw()。
    • +1 得到很好的答案我花了超过 3 周的时间来解决这个问题,但没有成功......通过添加这一行,我解决了我的问题,感谢您的出色回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    相关资源
    最近更新 更多