首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建可变的ItemizedOverlay

如何创建可变的ItemizedOverlay
EN

Stack Overflow用户
提问于 2010-01-16 12:13:03
回答 2查看 3.8K关注 0票数 2

我想让一个谷歌地图与可变的引脚覆盖。可视化这一点的一种简单方法是考虑近乎实时的覆盖,其中引脚不断地改变位置。

然而,我似乎想不出一种安全的方法来使用ItemizedOverlay来做这件事。问题似乎出在填充的调用上--如果某个映射线程调用了size(),然后我的数据发生了变化,那么当映射调用访问getItem()时,结果可能是一个IndexOutOfBoundsException。

有谁能想到比重载填充并将super.populate包装在同步块中更好的解决方案吗?

也许我可以使用普通的覆盖来获得更好的运气?分项数据的存在似乎是为了为您管理数据,也许我使用它是犯了一个根本性的错误?

谢谢你的帮助,我的大脑很痛!

哈米

EN

回答 2

Stack Overflow用户

发布于 2010-08-11 23:53:16

正如在this article中提到的

在列表中添加或移除条目后,需要调用以下函数。

setLastFocusedIndex(-1);

populate();

示例:

代码语言:javascript
复制
@Override
protected OverlayItem createItem(int i) {
    return overlays.get(i);
}
protected void removeOverlay(OverlayItem o){
    overlays.remove(o);
    setLastFocusedIndex(-1);
    populate();
}
@Override
public int size() {
    return overlays.size();
}
public void addOverlay(OverlayItem o){
    overlays.add(o);
    setLastFocusedIndex(-1);
    populate();
}
票数 3
EN

Stack Overflow用户

发布于 2011-01-03 21:49:08

我也有类似的问题,通过相互排除来解决(是的……使它们同步)方法大小和更新(添加/更改)管脚的方法...实际上,第一个是通过GUI线程调用的,而第二个是在异步工作线程中调用的,因此可以异步调用它们

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2076176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档