Flutter Maps:如何在标记水龙头上更改标记图标

时间:2019-11-16 11:30:14

标签: google-maps flutter flutter-layout flutter-dependencies

我正在尝试找到一种解决方案,以便在点击标记时更改标记图标,以提供视觉反馈。不过,我还没有弄清楚如何做到这一点。首先想到的是按索引访问标记,但是由于标记是按Set<Markers>排列的,因此以正确的方式访问标记没有改变。那么很容易用新标记替换旧标记。有一种通用的方法吗?

编辑:

使用Java,有类似的选项。 setIcon用于标记。这不是Flutter的追求。

像这样:

marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_selected_user_mark_icon));

快乐编码:)

1 个答案:

答案 0 :(得分:0)

我有同样的问题。 Google Maps API没有此选项。我手动解决了。

您可以创建标记,并在标记的onTap和GoogleMap的onTap属性中更改图标标记。

int markerFlag = null;
List<Marker> _allMarkers = [];

标记的onTap:

onTap: () {
            if (markerFlag != idMarker) {                  
              setState(() {
                if (markerFlag != null) {
                  _allMarkers[markerFlag] = _allMarkers[markerFlag].copyWith(iconParam: defaultMarkerIcon);
                }
               _allMarkers[idMarker] = _allMarkers[idMarker].copyWith(iconParam: selectedMarkerIcon);
               markerFlag = idMarker;
              });                
            }
          }

GoogleMap的onTap:

onTap: (value){
    if (markerFlag != null) {
      setState(() {
        _allMarkers[markerFlag] = _allMarkers[markerFlag].copyWith(iconParam: defaultMarkerIcon);
        markerFlag = null;
      });
    }
  }