用户在Android设备上的flutter应用程序上点击Google地图上的标记
出现预期的信息窗口
用户单击信息窗口,没有任何反应
应该会看到标题和片段已更新
我尝试了多个版本和代码。
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"));
);
预期结果是信息窗口显示新标题并被剪断
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之外,您可以实现与我上面共享的代码段相似的东西。