无法确定哪个标记用户在标记的onTapped事件内按下了
因此,我在onTap()事件中添加了9个标记,其中我通过传入markerId来调用私有方法。当_onMarkerTapped(markerId)被触发时(当用户点击任何标记时),我总是最终得到添加到标记集中的最后一个标记ID,即,我从未设法获取当前点击的标记的ID。
下面是我的代码段……
for (var campusData in Campuses.campusLocations) {
campusDetails = json.decode(campusData);
campus = Campus.fromJson(campusDetails);
markerId = MarkerId(i.toString());
mrkr = new Marker(
markerId: markerId, // a string for marker unique id
icon: BitmapDescriptor.fromAsset(
'assets/wsu@2x.png'), // options for hues and custom imgs
position:
LatLng(campus.latitude, campus.longitude), // lat and long doubles
onTap: () {
_onMarkerTapped(markerId);
});
campusMarkers.add(mrkr);
i++;
}
GoogleMap(
initialCameraPosition: cameraPosition,
onMapCreated: _onMapCreated,
mapType: MapType.normal,
markers: campusMarkers,
onTap: (lng) => _onMapTapped(lng),
);
void _onMarkerTapped(MarkerId markerId) {
_getCurrentLocation();
final Marker tappedMarker = campusMarkers.elementAt(int.parse(markerId.value));
if (tappedMarker != null) {
}
else{
print("Tapped marker is NULL..");
}
}
我需要一种方法来确定用户点击了哪个标记,因此我可以打开另一个页面,其中包含该位置的更详细的地图(一个用户已经点击了)。