簡體   English   中英

Flutter 谷歌 map 制造商 ontap

[英]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)}")

marfor in循環中的一個局部變量,它的值從未改變,所以他會指向同一個值, onTap會按照你的意願行事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM