【发布时间】:2022-02-20 01:31:17
【问题描述】:
在 Flutter 中,我在 for 循环中使用 Text 小部件。控制台显示了一个很好的不断增加的数字列表。但是所有 25 个文本小部件都显示 25。
看起来 Text 小部件确实引用了 _markersDistanceCount 而不是使用它们的值。
我也尝试了jsonEncode 和jsonDecode 的值,但它们仍然都是 25。有人知道我做错了什么吗?
var _markersDistanceCount = 0;
for (var i = 0; i < 25; i++) {
_markersDistanceCount++;
print(_markersDistanceCount);
markersDistance.add(
Marker(
point: LatLng(point.latitude, point.longitude),
builder: (context) => CircleAvatar(
radius: 50,
backgroundColor: Colors.red,
child: Text(_markersDistanceCount.toString())
),
),
);
}
当我将Text(_markersDistanceCount.toString()) 更改为Text(i.toString()) 时没有问题,并且文本小部件包含正确的i 值。
【问题讨论】:
-
这个功能看起来不错,可以在飞镖垫中使用。您如何使用小部件树中的列表,您是否使用 listview.builder 按索引访问元素?
-
markersDistance 被 flutter_map 用来在地图上显示标记。您只需提供清单即可。它被定义为
List<Marker> markersDistance = [];,这应该不是问题,因为使用i而不是_markersDistanceCount时标记是正确的 -
你能包含小部件 => Minimal, Reproducible Example?
-
@YeasinSheikh 你知道像 Dart pad 这样可以使用外部包的东西吗?因为我需要 flutter_map 来重现。
-
我可能错了,虽然这是
Text问题,但您可以提供一个小部件,主要是您在哪里生成这些数据。