我想在闪屏中添加一些逻辑,以了解用户是否已经登录,以便将其定向到正确的页面。
我分别制作了Android和iOS初始屏幕,但是当然我内部没有任何逻辑,然后又扑出了另一个初始屏幕,以了解用户之前是否已登录,问题是本机启动屏幕和颤动屏幕之间有一个小怪异的过渡,那么有什么解决方案可以避免这种过渡?还是在本机启动屏幕内与SharedPreferences进行通信的逻辑?
答案 0 :(得分:0)
不要让Flutter飞溅。当Flutter应用的main
代码决定显示“主页”或“登录”页面时,让本机iOS / Android启动画面充满屏幕。如果您要做的只是在SharedPreferences
中寻找会话令牌,那应该是一个非常快速的过程。
我今天刚刚回答了另外两个涉及同一问题的问题。它认为他们应该帮助...
https://stackoverflow.com/a/60121967/7034640
https://stackoverflow.com/a/60122485/7034640
更新
我创建了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")),
);
}
}
我使用flutter run --release
在Android设备上运行了该应用。
我看到红色屏幕大约0.5秒钟,然后看到黑色屏幕5秒钟,最后看到主屏幕。
嗯。我希望红色屏幕显示大约5.5秒,然后显示主屏幕。我没想到黑屏会出现。