Flutter Flatter FutureBuilder/Stream如何在ConnectionState.waiting中显示2个不同的小部件取决于给定的时间

Flutter Flatter FutureBuilder/Stream如何在ConnectionState.waiting中显示2个不同的小部件取决于给定的时间,flutter,flutter-futurebuilder,Flutter,Flutter Futurebuilder,我想在ConnectionState.waiting的第一秒钟显示Text()小部件,但如果需要的时间超过一秒钟,我想显示另一个带有自定义动画的小部件 简化代码(无状态小部件): 。。。 流动 ... if(snapshot.connectionState==connectionState.waiting){ 返回文本(“加载数据”); 返回CustomWidget();我不知道这是否是您需要的 首先定义DateTime变量: DateTime time = DateTime.now(); 然

我想在
ConnectionState.waiting
的第一秒钟显示
Text()
小部件,但如果需要的时间超过一秒钟,我想显示另一个带有自定义动画的小部件

简化代码(无状态小部件):

。。。
流动
...
if(snapshot.connectionState==connectionState.waiting){
返回文本(“加载数据”);

返回CustomWidget();我不知道这是否是您需要的

首先定义DateTime变量:

DateTime time = DateTime.now();
然后在使用当前日期时间设置的生成方法中:

@override
  Widget build(BuildContext context) {
    time = DateTime.now();
然后在结果中,您可以使用当前日期时间检查“time”变量,如下所示:

if (snapshot.connectionState == ConnectionState.waiting) {
  if (DateTime.now().difference(time).inSeconds>10){
    return Text("More than 10 seconds");
  }
  else {
    return Text('Less than 10 seconds');
  }
}

我不知道这是否是你需要的

首先定义DateTime变量:

DateTime time = DateTime.now();
然后在使用当前日期时间设置的生成方法中:

@override
  Widget build(BuildContext context) {
    time = DateTime.now();
然后在结果中,您可以使用当前日期时间检查“time”变量,如下所示:

if (snapshot.connectionState == ConnectionState.waiting) {
  if (DateTime.now().difference(time).inSeconds>10){
    return Text("More than 10 seconds");
  }
  else {
    return Text('Less than 10 seconds');
  }
}

您所说的更长时间是什么意思?连接时只调用一次等待状态。您所说的更长时间是什么意思?连接时只调用一次等待状态。这正是我想要的,非常感谢!这正是我想要的,非常感谢!