颤动启动画面,内部具有逻辑

时间:2020-02-07 22:23:27

标签: android ios flutter splash-screen

我想在闪屏中添加一些逻辑,以了解用户是否已经登录,以便将其定向到正确的页面。

我分别制作了Android和iOS初始屏幕,但是当然我内部没有任何逻辑,然后又扑出了另一个初始屏幕,以了解用户之前是否已登录,问题是本机启动屏幕和颤动屏幕之间有一个小怪异的过渡,那么有什么解决方案可以避免这种过渡?还是在本机启动屏幕内与SharedPreferences进行通信的逻辑?

1 个答案:

答案 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秒,然后显示主屏幕。我没想到黑屏会出现。