带有逻辑的 Flutter 启动画面
Flutter splash screen with logic inside it
我想在 flutter 中制作一个启动画面,其中包含一些逻辑,以了解用户是否已经登录,以便将他引导到正确的页面。
我已经分别制作了 Android 和 iOS 启动画面,但当然我不能在其中包含任何逻辑,然后在 flutter 中制作了另一个启动画面以了解用户之前是否有登录与否,问题是原生启动画面和 flutter 启动画面之间有一个奇怪的小过渡,那么是否有避免这种过渡的解决方案?或者在与 SharedPreferences 通信的本机启动画面中具有逻辑?
不要引起 Flutter 的轰动。让原生 iOS/Android 飞溅填满屏幕,而 Flutter 应用的 main
代码决定显示主页或登录页面。如果您所做的只是在 SharedPreferences
中查找会话令牌,这应该是一个非常快速的过程。
我今天刚刚回答了另外两个处理同样问题的问题。它认为他们应该帮助...
更新
我创建了一个 Flutter 测试应用。
我将 Android 启动画面设置为红色。
我把main.dart
的内容改成了下面这样。
import 'package:flutter/material.dart';
void main() async {
await Future.delayed(Duration(seconds: 5));
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(final BuildContext context) {
return MaterialApp(
title: 'Splash Demo',
theme: ThemeData(primarySwatch: Colors.blue),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(final BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("My Home Page")),
body: Center(child: const Text("My Home Page")),
);
}
}
我 运行 Android 设备上的应用 flutter run --release
。
我看到红屏大约0.5秒,然后黑屏5秒,最后看到主屏幕。
嗯。我预计红色屏幕会显示大约 5.5 秒,然后是主屏幕。没想到会黑屏
我想在 flutter 中制作一个启动画面,其中包含一些逻辑,以了解用户是否已经登录,以便将他引导到正确的页面。
我已经分别制作了 Android 和 iOS 启动画面,但当然我不能在其中包含任何逻辑,然后在 flutter 中制作了另一个启动画面以了解用户之前是否有登录与否,问题是原生启动画面和 flutter 启动画面之间有一个奇怪的小过渡,那么是否有避免这种过渡的解决方案?或者在与 SharedPreferences 通信的本机启动画面中具有逻辑?
不要引起 Flutter 的轰动。让原生 iOS/Android 飞溅填满屏幕,而 Flutter 应用的 main
代码决定显示主页或登录页面。如果您所做的只是在 SharedPreferences
中查找会话令牌,这应该是一个非常快速的过程。
我今天刚刚回答了另外两个处理同样问题的问题。它认为他们应该帮助...
更新
我创建了一个 Flutter 测试应用。
我将 Android 启动画面设置为红色。
我把main.dart
的内容改成了下面这样。
import 'package:flutter/material.dart';
void main() async {
await Future.delayed(Duration(seconds: 5));
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(final BuildContext context) {
return MaterialApp(
title: 'Splash Demo',
theme: ThemeData(primarySwatch: Colors.blue),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(final BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("My Home Page")),
body: Center(child: const Text("My Home Page")),
);
}
}
我 运行 Android 设备上的应用 flutter run --release
。
我看到红屏大约0.5秒,然后黑屏5秒,最后看到主屏幕。
嗯。我预计红色屏幕会显示大约 5.5 秒,然后是主屏幕。没想到会黑屏