【发布时间】:2020-04-24 15:27:11
【问题描述】:
我在 BuildWaitingScreen 小部件中创建了启动屏幕的 UI。我想在名为 buildWaitingScreen 的小部件中显示启动屏幕 4 秒。我想知道如何给这个小部件等待时间?是否可以使用 Timer for this 或 Future Delay 来获得 4 秒的延迟?
代码:`
Widget buildWaitingScreen() {
return Scaffold(
body: Stack(
fit: StackFit.expand,
children: <Widget>[
Container(
decoration: BoxDecoration(color: Colors.blueAccent),
),
Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Expanded(
flex: 2,
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CircleAvatar(
backgroundColor: Colors.white,
radius: 50.0,
child: Icon(
Icons.directions_car,
color: Colors.blue,
size: 50.0,
),
),
Padding(padding: EdgeInsets.only(top: 10.0),
),
Text(
"CarWash Locator v.1",
style: TextStyle(color: Colors.white,
fontSize: 24.0,
fontWeight: FontWeight.bold),
)
],
),
),
),
Expanded(
flex: 1,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CircularProgressIndicator(),
Padding(
padding: EdgeInsets.only(top: 20.0),
),
Text(
"one click! locate car wash!!",
style: TextStyle(color: Colors.white,
fontSize: 18.0,
fontWeight: FontWeight.bold
),
)
],
),
)
],
)
],
)
);
}
@override
Widget build(BuildContext context) {
switch (authStatus) {
case AuthStatus.NOT_DETERMINED:
return buildWaitingScreen();
break;
case AuthStatus.NOT_LOGGED_IN:
return new LandingPage(auth: widget.auth,);
break;
case AuthStatus.LOGGED_IN:
if (_userId.length > 0 && _userId != null) {
return new HomePage(auth: widget.auth,);
} else
return buildWaitingScreen();
break;
default:
return buildWaitingScreen();
}
}
}
`
【问题讨论】: