要想给APP加上闪屏页,解决方式为:
1.加上闪屏图片
2.在pubspec.yaml中配置图片
3.创建闪屏页splash_page.dart
import 'package:flutter/material.dart';
class SplashPage extends StatefulWidget {
@override
_SplashPageState createState() => _SplashPageState();
}
class _SplashPageState extends State<SplashPage> {
@override
void initState() {
super.initState();
/// 延时跳转
Future.delayed(Duration(seconds: 2), _toAppPage);
}
_toAppPage() {
Navigator.of(context).pushReplacementNamed('/HomePage');
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
child: Image.asset(
'assets/images/splash.png',
fit: BoxFit.cover,
),
);
}
}
4.在main.dart中配置一进入页面就是SplashPage组件,再配置路由/HomePage到想要真正加载的页面组件。
其中闪屏页的时长可配置。
main.dart代码如下:
import 'package:flutter_ask_answer_game/page/bottom_tab_bar.dart';
import 'package:flutter_ask_answer_game/page/splash_page.dart';
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: '竞赛开始',
theme: new ThemeData(
primaryColor: Colors.blueAccent,
),
home: SplashPage(),
routes: <String, WidgetBuilder>{ // 路由
'/HomePage': (BuildContext context) => new BottomTabBar()
},
);
}
}
这样,就会有闪屏页了。但是,闪屏页出现之前会有一段时间的空白。
为了解决这个空白问题,安卓可以:
5.在drawable下加入闪屏页图片
6.在launch_background.xml中配置闪屏页路径,即@drawable/splash。
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />
<!-- You can insert your own image assets here -->
<item>
<bitmap
android:gravity="fill"
android:src="@drawable/splash" />
</item>
</layer-list>
即可。