Я пытаюсь создать интерактивные маркеры, используя карты и трепетание Google:
void onMarkerTapped(String id) {
Fluttertoast.showToast(msg: id);
Navigator.push(
context,
MaterialPageRoute(builder: (context) => StoryPlayerView()),
);
}
Set<Marker> createMarkers() {
List<dynamic> locations = widget.data['locations'];
Set<Marker> markers = {};
locations.forEach((e) => {
markers.add(Marker(
markerId: MarkerId("${e['id']}"),
position: LatLng(e['coordinates']['x'], e['coordinates']['y']),
onTap: () {
print("marker ${e['id']} tapped");
Fluttertoast.showToast(msg: e['id']);
onMarkerTapped("1");
}))
});
return markers;
}
Я не могу понять и объяснить поведение этого кода, потому что фрагмент выше не запускает StoryPlayerView (); Но если я изменю последовательность вызова метода, я получу необходимый результат:
onTap: () {
Fluttertoast.showToast(msg: e['id']);
onMarkerTapped("1");
print("marker ${e['id']} tapped");
}))
Кто-нибудь знает, что происходит? Может быть, печатать блокирует виджет строителя темы?