如何在使用带有颤振的谷歌地图首次点击标记后更新信息窗口文本?



用户在安卓设备上的颤振应用程序上点击谷歌地图上的标记

正如预期的那样,信息窗口出现

用户点击信息窗口,没有任何反应

预计标题和截图将更新

我尝试了多个版本和代码。

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"));
);

预期结果是信息窗口显示新标题并截取

下面的代码片段位于文件"place_marker.dart"中 Flutter Google 地图包 (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时,它应该触发对现有标记的更新。为了实现这一点,你可以实现一些类似于我上面分享的代码片段的东西,除了使用onInfoWindowTapped而不是onMarkerTapped。

最新更新