Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何阻止我的应用程序返回初始屏幕_Dart_Flutter - Fatal编程技术网

Dart 如何阻止我的应用程序返回初始屏幕

Dart 如何阻止我的应用程序返回初始屏幕,dart,flutter,Dart,Flutter,我正在构建一个带有启动屏幕的简单订购应用程序,我在使该应用程序不返回启动屏幕方面遇到了问题,我尝试了一个条件运算符来解决该问题,但它没有做任何事情,是否有其他替代方法来实现该目标 import "package:flutter/material.dart"; import 'package:propapp/tabs/main.dart'; import 'dart:async'; bool loaded = false; void main() => runApp(new Materi

我正在构建一个带有启动屏幕的简单订购应用程序,我在使该应用程序不返回启动屏幕方面遇到了问题,我尝试了一个条件运算符来解决该问题,但它没有做任何事情,是否有其他替代方法来实现该目标

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;
      }


}
导入“包装:颤振/材料.省道”; 导入“package:propapp/tabs/main.dart”; 导入“dart:async”; bool-loaded=false; void main()=>runApp(新材料应用( 主题:主题数据( primaryColor:Colors.琥珀色, accentColor:Colors.amberAccent, ), debugShowCheckedModeBanner:false, 主页:loaded==true?菜单():SplashScreen()); 类SplashScreen扩展StatefulWidget{ @凌驾 _SplashScreenState createState()=>new_SplashScreenState(); } 类的状态扩展了状态{ @凌驾 void initState(){ super.initState(); 新未来( 常数持续时间(秒:3), ()=>Navigator.push( 上下文 MaterialPackageRoute(生成器:(上下文)=>菜单()), )); 加载=真; } } 您可以使用。再次移除您的状况:

...
home: SplashScreen()));
唯一的其他更改是将
Navigator.push替换为
pushReplacement

... => Navigator.pushReplacement(
              context,
              MaterialPageRoute(builder: (context) => Menu()),
            )
这将从导航器堆栈中删除SplashScreen路径,因此永远不会返回到它。

您可以使用。再次移除您的状况:

...
home: SplashScreen()));
唯一的其他更改是将
Navigator.push替换为
pushReplacement

... => Navigator.pushReplacement(
              context,
              MaterialPageRoute(builder: (context) => Menu()),
            )

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

中有一个名为
SplashScreen
的有用插件将为您提供此功能和其他功能,如启动计时器,链接如下:


在SplashScreen中有一个名为
SplashScreen
的有用插件将为您提供此功能和其他功能,如SplashTimer,以下是链接:


嘿,如果你想阻止你的应用程序回到<代码>溅屏< /代码>,无论你什么时候打开它,你都应该考虑SharedPrefsHey,如果你想阻止你的应用程序回到<代码>溅屏< /代码>,无论你什么时候打开它,你都应该考虑SyrdPrIFS。