Dart端
pubspec.yaml
添加启动屏插件。
flutter_splash_screen: ^0.3.0
home_page.dart
关闭启动屏。
@override
void initState() {
super.initState();
_handleRefresh();
// 延迟600ms关闭闪屏页
Future.delayed(Duration(milliseconds: 600),(){
FlutterSplashScreen.hide();
});
}
Android端
MainActivity.java
显示闪屏页(注:需要在super.onCreate之前)
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
SplashScreen.show(this, true);
super.onCreate(savedInstanceState);
}
launch_screen.xml
闪屏页设置。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@mipmap/splash_screen" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:scaleType="fitXY"
android:src="@mipmap/splash_screen_bottom" />
</RelativeLayout>
colors.xml
定义状态栏颜色。
<resources>
<!-- 状态栏颜色-->
<color name="primary_dart">#000000</color>
</resources>
styles.xml
主题设置。
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
Flutter draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
<!--设置透明背景-->
<item name="android:windowIsTranslucent">true</item>
</style>