如何在listview.builder(loop)的“文本”小部件中显示将来的值?我正在计算每个属性的距离,并希望显示在文本小部件中。
Text('${ _calculateDistance(model, store)' }
哪个返回“未来实例”
Future<double> _calculateDistance(MainModel model, Store store) async {
double distanceInMeters = await Geolocator().distanceBetween(
model.postion.latitude,
model.postion.longitude,
store.position.latitude,
store.position.longitude);
return distanceInMeters / 1000;}
对于单个帖子,我知道我可以使用setstate,但是我为每个帖子计算距离。
答案 0 :(得分:2)
您可以将商品包装在FutureBuilder
@override
Widget build(BuildContext context) {
return FutureBuilder<double>(
future: _calculateDistance( model, store),
initialData: 0.0,
builder: (context, snapshot) {
if (snapshot.hasData) {
return Text("${snapshot.data}");
} else {
return Center(
child: CircularProgressIndicator(),
);
}
},
);
}