ListView.builder中的Flutter Display Future值

时间:2018-11-23 16:14:38

标签: dart flutter

如何在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,但是我为每个帖子计算距离。

1 个答案:

答案 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(),
          );
        }
      },
    );
  }