在导航抽屉屏幕显示给用户之前,我已经创建了NavigationDrawer
,而我之前有3个屏幕
当用户从NavigationDrawer屏幕中按下Android手机中的后退按钮时,我想关闭我的应用程序,但它将显示黑屏。
我在下面打来电话,要求从登录到抽屉的导航
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
builder: (BuildContext context) => NavigationDrawerDemo(),
),
ModalRoute.withName('/LoginFieldForm'));
我用
叫loginfieldform Navigator.push(context,
new MaterialPageRoute(builder: (context) =>new LoginFieldForm()));
答案 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);