Flutter 颤振:如何在不实际导航的情况下更改以前的导航路线?

Flutter 颤振:如何在不实际导航的情况下更改以前的导航路线?,flutter,Flutter,我的用户将导航到屏幕1,然后是屏幕2,然后是屏幕3 当他们单击屏幕3上的后退按钮时,根据该屏幕中的变量,我希望后退按钮将他们带回屏幕2或屏幕1 注意:后退按钮必须由用户触发,我不想实际地导航回去 我想我可以用WillPopScope,但那只能返回一个bool Widget build(BuildContext context) { return WillPopScope( onWillPop: () { return true }, child: Scaffold( .

我的用户将导航到屏幕1,然后是屏幕2,然后是屏幕3

当他们单击屏幕3上的后退按钮时,根据该屏幕中的变量,我希望后退按钮将他们带回屏幕2或屏幕1

注意:后退按钮必须由用户触发,我不想实际地导航回去

我想我可以用WillPopScope,但那只能返回一个bool

Widget build(BuildContext context) {
 return WillPopScope(
  onWillPop: () {
    return true
  },
  child: Scaffold(
  ...
  ),
 );
}
,
下面是一个例子:

return WillPopScope(
  onWillPop: () async => true,
  child: Scaffold(
    appBar: AppBar(
      automaticallyImplyLeading: true,
      leading: IconButton(
        icon: Icon(Icons.arrow_back),
        onPressed: () {
          _user.isRegistered
          ? Navigator.popUntil(context, (route) => route.isFirst) // Takes the user to the first page
          : Navigator.push(context, MaterialPageRoute(builder: (context) => SecondRoute()));
        },
      ),