颤振后压显示黑屏

时间:2019-12-10 12:33:01

标签: flutter dart

在导航抽屉屏幕显示给用户之前,我已经创建了NavigationDrawer,而我之前有3个屏幕

  1. 启动画面
  2. 简介滑块
  3. 登录屏幕
  4. NavigationDrawer

当用户从NavigationDrawer屏幕中按下Android手机中的后退按钮时,我想关闭我的应用程序,但它将显示黑屏。

我在下面打来电话,要求从登录到抽屉的导航

      Navigator.pushAndRemoveUntil(
                context,
                MaterialPageRoute(
                  builder: (BuildContext context) => NavigationDrawerDemo(),
                ),
                ModalRoute.withName('/LoginFieldForm'));

我用

叫loginfieldform
  Navigator.push(context,
    new MaterialPageRoute(builder: (context) =>new LoginFieldForm()));

4 个答案:

答案 0 :(得分:0)

我认为您已经使用Navigator.push方法推送了“ LoginFieldForm”,并尝试使用命名的路由将其删除。

对于Ex:

//使用Navigator.push方法冲压路线

ValidationExceptions

//使用命名的路由删除。

Navigator.push(
        context,
        MaterialPageRoute(builder: (context) => LoginFieldForm()),
      );

仅当使用命名路由添加路由时,才能使用ModalRoute.withName()。

答案 1 :(得分:0)

您的路线可能未设置名称。如果是这样,弹出直到名称匹配将导致所有内容弹出,因为将永远找不到您要查找的名称。

按下LoginFieldForm时,请确保将settings传递到路线。

按下时,您可以执行以下操作:

MaterialPageRoute(
    settings: RouteSettings(name: "routeName"),
    builder: (context) => YourWidget(),
)

如果您位于onGenerateRoute之内,那么您已经将settings作为参数传递给onGenerateRoute函数。在这种情况下,只需将它们转发到MaterialPageRoute

MaterialPageRoute(
    settings: settings, //these settings are arguments from the function
    builder: (context) => YourWidget(),
)

答案 2 :(得分:0)

要关闭该应用程序,可以在背面按exit(0)中的dart:io按下。exit(0)帮助使用给定的退出代码立即退出Dart VM进程。

这不等待任何异步操作终止。您可能会找到有关exit(0)here

的更多信息

SystemChannels.platform.invokeMethod('SystemNavigator.pop');

有关更多详细信息,您可以检查here

答案 3 :(得分:0)

用例:pushNamedAndRemoveUntil

 Navigator.of(context).pushNamedAndRemoveUntil('/LoginFieldForm', 
(Route<dynamic> route) => false);