【发布时间】:2019-11-05 14:10:09
【问题描述】:
比如我现在的路由是这样的: 登录 -> Screen1 -> Screen2 -> Screen3 -> Screen4 我想从 Screen4 回到 Screen2。 我不能使用命名路由,因为我必须将参数传递给 Screen2。 在 Screen4 中推送 Screen2 不是一个好的解决方案。 请帮忙,谢谢。
【问题讨论】:
标签: flutter mobile-application
比如我现在的路由是这样的: 登录 -> Screen1 -> Screen2 -> Screen3 -> Screen4 我想从 Screen4 回到 Screen2。 我不能使用命名路由,因为我必须将参数传递给 Screen2。 在 Screen4 中推送 Screen2 不是一个好的解决方案。 请帮忙,谢谢。
【问题讨论】:
标签: flutter mobile-application
使用 Navigator 类的popUntil 方法。
例如
int count = 0;
Navigator.of(context).popUntil((_) => count++ >= 2);
但是,我建议为您的路线定义名称并使用 popUntil,因为它是按照文档设计的。
如果这有帮助,请告诉我。
【讨论】:
你可以弹出两次;
nav = Navigator.of(context);
nav.pop();
nav.pop();
【讨论】:
如果你想弹出三遍,可以使用下面的代码。
int count = 3;
Navigator.of(context).popUntil((_) => count-- <= 0);
【讨论】:
将作为 StatefulWidget 进行转换的类。要按下操作,请添加 pushNamed 导航器和 then,这将在返回此屏幕后触发。通过setState 更新小部件:
onTap: () {
Navigator.pushNamed(
context,
RouteNames.viewExercises,
).then((value) {
setState(() {});
});
},
要从哪个屏幕返回以使用:
Navigator.of(context)
..pop()
..pop()
..pop();
..pop() 的使用次数可根据需要多次使用。
【讨论】: