Dart 颤振显示ListView.builder中的未来值
如何在listview.builder(循环)中的文本小部件中显示未来值?。我正在计算每个属性的距离,并希望显示在文本小部件中Dart 颤振显示ListView.builder中的未来值,dart,flutter,Dart,Flutter,如何在listview.builder(循环)中的文本小部件中显示未来值?。我正在计算每个属性的距离,并希望显示在文本小部件中 Text('${ _calculateDistance(model, store)' } 返回一个“未来的实例” Future\u CalculateInstance(主模型、存储)异步{ double distanceInMeters=等待地理定位器()( model.position.latitude, model.position.longitude, sto
Text('${ _calculateDistance(model, store)' }
返回一个“未来的实例”
Future\u CalculateInstance(主模型、存储)异步{
double distanceInMeters=等待地理定位器()(
model.position.latitude,
model.position.longitude,
store.position.latitude,
存储、位置、经度);
返回距离(米/1000;}
对于单个帖子,我知道我可以使用setstate,但我正在计算每个帖子的距离。您可以将您的项目包装在
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(),
);
}
},
);
}
@覆盖
小部件构建(构建上下文){
回归未来建设者(
未来:_计算立场(模型、商店),
初始数据:0.0,
生成器:(上下文,快照){
if(snapshot.hasData){
返回文本(“${snapshot.data}”);
}否则{
返回中心(
子对象:CircularProgressIndicator(),
);
}
},
);
}
谢谢。还有一个问题:在StreamBuilder中使用FutureBuilder可以吗?虽然我已经测试过了,而且它工作得很好。我只是想知道这是一个好的方法还是不好的方法,我正在使用StreamBuilder从firebase获取数据(位置),然后我必须使用FutureBuilder计算每个位置和显示的距离。好吧,你可以使用StreamBuilder的主方法获得距离,但这取决于你想要什么。在每个项目中使用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(),
);
}
},
);
}