首先贴个官方的设置方法,看这里:
虽然官方的方法比较简单,但是有时我们可能需要自己配置启动图的生效时间,这时就需要另外实现了。思路就是第一个页面放一张全屏图片,倒数计时结束时再跳转到主页:
1 import \'dart:async\'; 2 import \'package:flutter/material.dart\'; 3 import \'package:/pages/home.dart\'; 4 import \'package:flutter/services.dart\'; 5 6 void main() { 7 runApp(new MaterialApp( 8 title: \'启动图demo\', 9 theme: new ThemeData( 10 brightness: Brightness.light, 11 backgroundColor: Colors.white, 12 platform: TargetPlatform.iOS), 13 home: new SplashScreen(), 14 routes: <String, WidgetBuilder>{ 15 \'/home\': (BuildContext context) => new Home() 16 }, 17 )); 18 } 19 20 class SplashScreen extends StatefulWidget { 21 @override 22 _SplashScreenState createState() => new _SplashScreenState(); 23 } 24 25 class _SplashScreenState extends State<SplashScreen> { 26 startTime() async { 27 //设置启动图生效时间 28 var _duration = new Duration(seconds: 1); 29 return new Timer(_duration, navigationPage); 30 } 31 32 void navigationPage() { 33 Navigator.of(context).pushReplacementNamed(\'/home\'); 34 } 35 36 @override 37 void initState() { 38 super.initState(); 39 startTime(); 40 } 41 42 @override 43 Widget build(BuildContext context) { 44 return new Scaffold( 45 body: new Center( 46 child: new Image.asset(\'assets/images/launch_image.png\'), 47 ), 48 ); 49 } 50 }