dart - 我如何阻止我的应用回到启动画面

标签 dart flutter

我正在构建一个带有启动屏幕的简单订购应用程序,并且在使该应用程序不回到启动屏幕上遇到麻烦,我尝试了条件运算符来解决该问题,但是它什么也没做还有其他选择可以实现这一目标吗?

import "package:flutter/material.dart";
import 'package:propapp/tabs/main.dart';
import 'dart:async';

bool loaded = false;

void main() => runApp(new MaterialApp(
    theme: ThemeData(
      primaryColor: Colors.amber,
      accentColor: Colors.amberAccent,
    ),
    debugShowCheckedModeBanner: false,
    home: loaded == true ? Menu() : SplashScreen()));

class SplashScreen extends StatefulWidget {
  @override
  _SplashScreenState createState() => new _SplashScreenState();
}

class _SplashScreenState extends State<SplashScreen> {
  @override
  void initState() {
    super.initState();

    new Future.delayed(
        const Duration(seconds: 3),
        () => Navigator.push(
              context,
              MaterialPageRoute(builder: (context) => Menu()),
            ));
    loaded = true;
      }


}

最佳答案

您可以使用 Navigator.pushReplacement 。再次删除您的条件:

...
home: SplashScreen()));

唯一的其他更改是将Navigator.push替换为pushReplacement:
... => Navigator.pushReplacement(
              context,
              MaterialPageRoute(builder: (context) => Menu()),
            )

这将从导航器堆栈中删除SplashScreen路由,因此永远不会返回它。

关于dart - 我如何阻止我的应用回到启动画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54692356/

相关文章:

flutterBlue.connect(device, timeout : const Duration(seconds: 10), ).listen(null);在 flutter 中

animation - 英雄动画在 Flutter 中不起作用

android - Flutter Audioplayer APK版本不起作用

flutter - Web Flutter 中 GoogleSignInAuthentication accessToken 的 accessToken 为 null

android - Flutter initState() 返回 _debugLifecycleState 错误

flutter ,等待调用后刷新屏幕

flutter - 无法使用外部小部件设置状态

flutter - 我该如何解决:未处理的异常: 'SocketException'类型不是 'String'类型的子类型吗?

flutter - Codemagic - 为 Build 参数设置动态环境变量

flutter - 等待多个级别的 future ?