例如,我当前的路由如下: 登录->屏幕1->屏幕2->屏幕3->屏幕4 我想从Screen4回到Screen2。 我不能使用命名路由,因为我必须将参数传递给Screen2。 在Screen4中推送Screen2不是一个好的解决方案。 请帮助,谢谢。
答案 0 :(得分:1)
如果你想弹出三遍,你可以使用下面的代码。
int count = 3;
Navigator.of(context).popUntil((_) => count-- <= 0);
答案 1 :(得分:0)
使用Navigator类的popUntil
方法。
例如
int count = 0;
Navigator.of(context).popUntil((_) => count++ >= 2);
但是,我建议为您的路线定义名称,并根据文档设计使用popUntil
。
让我知道这是否有帮助。
答案 2 :(得分:0)
您可以将其弹出两次;
nav = Navigator.of(context);
nav.pop();
nav.pop();
答案 3 :(得分:0)
将作为 StatefulWidget 进行转换的类。要按操作添加带有 pushNamed
的 then
导航器,它将在返回到此屏幕后触发。传递 setState
以更新小部件:
onTap: () {
Navigator.pushNamed(
context,
RouteNames.viewExercises,
).then((value) {
setState(() {});
});
},
返回使用的屏幕:
Navigator.of(context)
..pop()
..pop()
..pop();
其中 ..pop()
根据需要多次使用。