[英]Flutter google map maker ontap
我是 Flutter 的新手。 這是驚人的。 我正在開發使用谷歌地圖的小應用程序。 我有 6 分(標記),需要識別選擇了哪一個。 我已經使用 i-index (i = 0..5) 將 ontap 事件添加到每個標記中。 當我點擊/單擊標記時,我總是得到 6。根據標記,它應該是 0..5。
非常感謝,加布里埃爾
i=0;
marker.clear();
for (myPoint mar in globals.historia.items) {
print(i.toString());
marker.add(Marker(
markerId: MarkerId(i.toString()),
position: mar.pos,
draggable: false,
consumeTapEvents: true,
onTap: () {
print("Marker_id-${i.toString()}");
},
));
i++;
}
GoogleMap(onMapCreated:_onMapCreated,initialCameraPosition:CameraPosition(目標:myposition,縮放:17.0,),折線:道路,標記:Set.of(標記),
)
當onTap()
被觸發時,它調用i
的最后一個值為== 6
,這就是為什么每次點擊標記時,print 方法都會打印 6。 i
是一個全局變量,它有自己的地址,所以print
方法每次調用onTap
時都會搜索該地址上的值。
我提出了這個解決方案- 將 onTap 中的 youtr 打印方法替換為: print("Marker_id-${globals.historia.items.indexOf(mar)}")
mar
是for in
循環中的一個局部變量,它的值從未改變,所以他會指向同一個值, onTap
會按照你的意願行事。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.