在我的应用程序中,我有三个屏幕,分别是login,verifyotp,generatepass。我知道如何从一页移动到另一页,例如:Navigator.pushNamed(context, "/theNameOfThePage");
。我有一个流程,我从login-> verifyotp-> generatepass移到我的问题,现在的问题是如何从generatepass移到登录页面并清除所有堆栈。我是一名android开发人员,所以在android中我们有intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
。我如何在颤振中获得相同的结果!
Jam*_*ose 13
正如其他人已经提到的,Navigator.pushNamedAndRemoveUntil
这是要走的路,但如果有人想知道如何使用组件类型(而不是字符串路由路径)来做到这一点,这就是您的做法。
Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (_) => LoginPage()), (route) => false);
我个人更喜欢使用类型名称,因为我在初始开发过程中多次更改路线路径,直到达到稳定的路线名称模式,并且当我这样做时,我不想进行大量搜索/替换。
要添加到上面 Paul Iluhin 的答案中,如果您想将参数传递到新页面,只需在 后面添加参数即可(r) => false
。这是一个例子。
Navigator.pushNamedAndRemoveUntil(context, "/newRouteName", (r) => false, arguments: {
"arg_1": firstArgument,
"arg_2": secondArgument
});
Run Code Online (Sandbox Code Playgroud)
void _logout() {
Navigator.popUntil(context, ModalRoute.withName('/login'));
}
Run Code Online (Sandbox Code Playgroud)
完全清除Navigator的历史记录并导航到新路线:
void _logout() {
Navigator.pushNamedAndRemoveUntil(context, "/newRouteName", (r) => false);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3827 次 |
最近记录: |