Flutter FutureBuilder/Stream 如何根据给定时间在 ConnectionState.waiting 中显示 2 个不同的小部件
Flutter FutureBuilder/Stream how to show 2 different widgets in ConnectionState.waiting depending on given time
我想在 ConnectionState.waiting
的第一秒显示一个 Text()
小部件,但如果时间超过一秒,我想显示一个带有自定义动画的不同小部件。
简化代码(StatelessWidget):
...
Stream
...
if (snapshot.connectionState == ConnectionState.waiting) {
return Text('Loading data');
return CustomWidget(); <- Show this widget instead of Text if more than 1 sec
}
不知道这是不是你需要的
首先定义一个DateTime变量:
DateTime time = DateTime.now();
然后在您的构建方法中设置当前日期时间:
@override
Widget build(BuildContext context) {
time = DateTime.now();
然后在您的结果中,您可以像这样使用当前日期时间检查“时间”变量:
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');
}
}
我想在 ConnectionState.waiting
的第一秒显示一个 Text()
小部件,但如果时间超过一秒,我想显示一个带有自定义动画的不同小部件。
简化代码(StatelessWidget):
...
Stream
...
if (snapshot.connectionState == ConnectionState.waiting) {
return Text('Loading data');
return CustomWidget(); <- Show this widget instead of Text if more than 1 sec
}
不知道这是不是你需要的
首先定义一个DateTime变量:
DateTime time = DateTime.now();
然后在您的构建方法中设置当前日期时间:
@override
Widget build(BuildContext context) {
time = DateTime.now();
然后在您的结果中,您可以像这样使用当前日期时间检查“时间”变量:
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');
}
}