我有一个SupportMapFragment
,其中包含一堆叠加层(Polygons
,Polylines
,Markers
。
我想做什么
Polygons
类代表用户可交互区域,因此我想在点击它们时突出显示它们(更改填充颜色)。因为只有一个Polygon
shell显示为已选中,所以进一步选择的Polygon
shell将获得默认颜色。
这就是我的工作:
private synchronized void selectPolygon(Polygon polygon) {
if (polygon != null && selectedPolygon != polygon) {
selectedPolygon.setFillColor(COLOR_DEFAULT);
}
if (polygon != null)
polygon.setFillColor(COLOR_SELECTED);
selectedPolygon = polygon;
mapFragment.getView().invalidate(); // added this because I was hoping this does the trick
}
实际发生的事情
更改或切换填充颜色可连续使用约2或3次。之后,多边形颜色不会改变。填充颜色本身设置正确,但地图不会更新。如果我放大我们的(似乎强制重绘或类似的东西),将显示正确的多边形颜色。
我想invalidate()
我需要某种SupportMapFragment
但我在文档中找不到类似的内容。任何想法,伙计们?
答案 0 :(得分:1)
以一致性方式执行此操作的正确方法是使用颜色更改删除并重新添加地图上的多边形