3

我有一个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我在文档中找不到类似的东西。有什么想法吗,伙计们?

4

1 回答 1

1

保持一致性的正确方法是在地图上删除并重新添加颜色变化的多边形

于 2013-10-28T15:37:59.447 回答