gpt4 book ai didi

dart - 如何在 Flutter 中将 RefreshIndicator 与 FutureBuilder 一起使用?

转载 作者:IT老高 更新时间:2023-10-28 12:36:02 26 4
gpt4 key购买 nike

我正在尝试找出一种方法来在 FutureBuilder 完成加载时向周围的类指示。 RefreshIndicatorFuture 作为参数,并在 Future 完成时停止显示刷新指示器。我无法访问传递给 FutureBuilder 的完全相同的 Future 变量,尤其是当它们位于两个单独的类中时,除非我可以传递对一个的引用当它在其他类(class)完成时,我会知道......

最佳答案

我也在寻找这个答案。终于明白了……

这是我的做法

FutureBuilder<String>(
future: _calculation,
// a previously-obtained Future<String> or null
builder: (BuildContext context,
AsyncSnapshot<String> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.none:
return Text('Press button to start.');
case ConnectionState.active:
case ConnectionState.waiting:
return Text('Awaiting result...');
case ConnectionState.done:
if (snapshot.hasError)
return Text('Error: ${snapshot.error}');
return new RefreshIndicator(
key: _refreshIndicatorKey,
color: Colors.blue,
onRefresh: () {
return _calculation = getCalculation(); // EDITED
},
child: SingleChildScrollView(
physics: AlwaysScrollableScrollPhysics(),
child: Text('Result: ${snapshot.data}')
)


);
break;
default:
return null;
}
},
)


Future<String> getCalculation() async {
try {
/*Write your API here or what ever u want to get when pull to refresh*/
return ""/*the value of api*/; //EDITED

} catch (e) {
///Handle Exception here. So in FutureBuilder we can capture it in snapshot.hasError
return Future.error(e.toString());
}
}





关于dart - 如何在 Flutter 中将 RefreshIndicator 与 FutureBuilder 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51775098/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com