FutureBuilder
是 Flutter 中的一个小部件,用于根据 Future
的结果构建用户界面。它接受一个 Future
对象和一个构建函数作为参数。
FutureBuilder
将监听 Future
对象的变化,并相应地更新用户界面。当 Future
正在解析时,可以显示加载指示器。一旦 Future
完成,将调用构建函数来处理返回的数据,并根据成功或失败的状态构建用户界面。
以下是使用 FutureBuilder
的示例:
Future<String> fetchData() async {// 模拟异步调用await Future.delayed(Duration(seconds: 2));return "数据加载成功";
}class MyWidget extends StatelessWidget {@overrideWidget build(BuildContext context) {return FutureBuilder<String>(future: fetchData(),builder: (BuildContext context, AsyncSnapshot<String> snapshot) {if (snapshot.connectionState == ConnectionState.waiting) {// 在等待 Future 完成时显示加载指示器return CircularProgressIndicator();} else {if (snapshot.hasError) {// 处理错误情况return Text('错误:${snapshot.error}');} else {// 数据已经成功获取return Text('数据:${snapshot.data}');}}},);}
}
在这个示例中,fetchData
函数表示一个返回带有字符串值的异步操作的 Future
。FutureBuilder
将这个 Future
和一个构建函数一起传入,以定义如何根据不同的 Future
状态构建用户界面。在这个示例中,我们在数据加载时显示一个加载指示器,在出现错误时显示错误消息,或者在成功获取数据时显示获取到的数据。