Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振-如何在不使用命名路由的情况下弹出两个屏幕?_Flutter_Mobile Application - Fatal编程技术网

Flutter 颤振-如何在不使用命名路由的情况下弹出两个屏幕?

Flutter 颤振-如何在不使用命名路由的情况下弹出两个屏幕?,flutter,mobile-application,Flutter,Mobile Application,例如,我当前的路由如下所示: 登录->屏幕1->屏幕2->屏幕3->屏幕4 我想从屏幕4回到屏幕2。 我不能使用命名路由,因为我必须向Screen2传递一个参数。 在Screen4中推送Screen2不是一个好的解决方案。 请帮助,谢谢。使用Navigator类的方法 e、 g int count=0; Navigator.of(context.popintil)((u)=>count++>=2); 但是,我建议您为路线定义名称,并使用popintil,因为它是根据文档设计的 如果有帮助,请告

例如,我当前的路由如下所示: 登录->屏幕1->屏幕2->屏幕3->屏幕4 我想从屏幕4回到屏幕2。 我不能使用命名路由,因为我必须向Screen2传递一个参数。 在Screen4中推送Screen2不是一个好的解决方案。 请帮助,谢谢。

使用Navigator类的方法

e、 g

int count=0;
Navigator.of(context.popintil)((u)=>count++>=2);
但是,我建议您为路线定义名称,并使用
popintil
,因为它是根据文档设计的


如果有帮助,请告诉我。

您只需弹出两次

nav = Navigator.of(context);
nav.pop();
nav.pop();

如果您想弹出三次,可以使用下面的代码

int count = 3;
Navigator.of(context).popUntil((_) => count-- <= 0);
int计数=3;

Navigator.of(context).popIntil((\u)=>count--将从中作为StatefulWidget进行转换的类。要按操作,请使用
添加
pushNamed
导航器,然后添加
,返回此屏幕后将触发该导航器。传递
setState
以更新小部件:

onTap: () {
  Navigator.pushNamed(
    context,
    RouteNames.viewExercises,
  ).then((value) {
    setState(() {});
  });
},
返回要使用的屏幕:

Navigator.of(context)
  ..pop()
  ..pop()
  ..pop();
其中,
.pop()
根据需要多次用于备份。

的可能重复项