Flutter FutureBuilder

FutureBuilder 是 Flutter 中的一个小部件,用于根据 Future 的结果构建用户界面。它接受一个 Future 对象和一个构建函数作为参数。

FutureBuilder 将监听 Future 对象的变化,并相应地更新用户界面。当 Future 正在解析时,可以显示加载指示器。一旦 Future 完成,将调用构建函数来处理返回的数据,并根据成功或失败的状态构建用户界面。

以下是使用 FutureBuilder 的示例:

Future<String> fetchData() async {
  // 模拟异步调用
  await Future.delayed(Duration(seconds: 2));
  return "数据加载成功";
}

class MyWidget extends StatelessWidget {
  @override
  Widget 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 函数表示一个返回带有字符串值的异步操作的 FutureFutureBuilder 将这个 Future 和一个构建函数一起传入,以定义如何根据不同的 Future 状态构建用户界面。在这个示例中,我们在数据加载时显示一个加载指示器,在出现错误时显示错误消息,或者在成功获取数据时显示获取到的数据。

猜你喜欢

转载自blog.csdn.net/qq_27981847/article/details/131602112