我有一个SupportMapFragment
包含一堆叠加层(Polygons
, Polylines
, Markers
.
我想做的事
代表用户可交互区域的Polygons
类型,因此我想在单击它们时突出显示它们(更改填充颜色)。因为只有一个Polygon
外壳被显示为选中,所以进一步选择的Polygon
外壳获得默认颜色。
这就是我所做的:
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
我在文档中找不到类似的东西。有什么想法吗,伙计们?