Fix duplicate launch screen and native splash exit flashing

This commit is contained in:
Codex
2026-10-13 22:52:25 +08:00
parent 204e945b2e
commit 57eb2c0505
10 changed files with 128 additions and 79 deletions
@@ -1,10 +1,20 @@
package com.tpschedule.app
import android.os.Build
import android.os.Bundle
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
class MainActivity : FlutterActivity() {
private var calendar: CalendarBridge? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
// Once Flutter has drawn, remove the system preview immediately.
// Its default blue exit fade can flash over an already ready app.
splashScreen.setOnExitAnimationListener { view -> view.remove() }
}
}
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
calendar = CalendarBridge(this, flutterEngine.dartExecutor.binaryMessenger)
@@ -8,10 +8,10 @@
<item name="android:windowLightNavigationBar">false</item>
</style>
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">@color/tpschedule_blue</item>
<item name="android:statusBarColor">@color/tpschedule_blue</item>
<item name="android:navigationBarColor">@color/tpschedule_blue</item>
<item name="android:windowLightStatusBar">false</item>
<item name="android:windowLightNavigationBar">false</item>
<item name="android:windowBackground">@color/tpschedule_surface</item>
<item name="android:statusBarColor">@color/tpschedule_surface</item>
<item name="android:navigationBarColor">@color/tpschedule_surface</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:windowLightNavigationBar">true</item>
</style>
</resources>
@@ -8,10 +8,10 @@
<item name="android:windowLightNavigationBar">false</item>
</style>
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">@color/tpschedule_blue</item>
<item name="android:statusBarColor">@color/tpschedule_blue</item>
<item name="android:navigationBarColor">@color/tpschedule_blue</item>
<item name="android:windowLightStatusBar">false</item>
<item name="android:windowLightNavigationBar">false</item>
<item name="android:windowBackground">@color/tpschedule_surface</item>
<item name="android:statusBarColor">@color/tpschedule_surface</item>
<item name="android:navigationBarColor">@color/tpschedule_surface</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:windowLightNavigationBar">true</item>
</style>
</resources>
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="tpschedule_surface">#F3F7FF</color>
<color name="tpschedule_blue">#38B3FF</color>
</resources>