用户在Android设备上的flutter应用上点击谷歌地图上的标记
出现预期的信息窗口
用户点击infowindow,没有任何反应
预计标题和剪辑会更新
尝试了多个版本和代码。
mapController.onInfoWindowTapped.add((marker) {
_launchURL(data[i]["urlmember"]);
// options
print(marker.id.toString());
print(data[i]["urlmember"]);
MarkerOptions( infoWindowText: InfoWindowText("counseling","find us on second service"));
);
预期的结果是infowindow显示新标题并剪切
以下代码段位于文件“place_marker.dart”中的Flutter Google Maps Package(https://pub.dartlang.org/packages/google_maps_flutter)中的示例应用中:
void _updateSelectedMarker(MarkerOptions changes) {
controller.updateMarker(_selectedMarker, changes);
}
void _onMarkerTapped(Marker marker) {
if (_selectedMarker != null) {
_updateSelectedMarker(
const MarkerOptions(icon: BitmapDescriptor.defaultMarker),
);
}
setState(() {
_selectedMarker = marker;
});
_updateSelectedMarker(
MarkerOptions(
icon: BitmapDescriptor.defaultMarkerWithHue(
BitmapDescriptor.hueGreen,
),
),
);
}
我相信您目前设置的方式,您点击与预先存在的标记关联的信息窗口,并触发创建另一个没有“位置”的标记(即; LatLng值,这是必需的标记对象),但有infoWindow文本属性。这可以解释为什么单击infoWindow时没有任何反应;它实质上是创造一个标记并将它放在一边;这意味着没有任何地方可以显示相应的infoWindow文本。
我相信您要实现的逻辑是:当用户点击infoWindow时,它应该触发对现有标记的更新。要实现这一点,您可以实现类似于我上面共享的代码片段,除了使用onInfoWindowTapped而不是onMarkerTapped。