导航路线未移除或弹出

Navigation Route not removed or Pop

目前我正在我的应用程序上做一个安全设置页面。现在我遇到的问题是当我向后导航或按下后退按钮时。页面仍在导航甚至弹出。

我的代码我正在使用它进入第一个流程

Navigator.push(
        context,
        MaterialPageRoute(builder: (context) => otp_mPin())

现在在第二次或回流中我使用了这个

Code used for second flow

在 OTP 页面上,我使用了 pop 和 push

Navigator.of(context).pop();
Navigator.push(
        context,
        MaterialPageRoute(builder: (context) => mPin())

这是我得到的流程

屏幕 1 设置页面

 onTap: (){
                Navigator.push(context, MaterialPageRoute(builder: (context) => ProtectPhone()));
              },

屏幕 2 密码页面

成功密码导航

   onPressed: (){
            Navigator.pop(context);
            Navigator.push(context, MaterialPageRoute(builder: (context) => selectScreenLock()));
          },

后退按钮/willPop

Navigator.pop(context);

屏幕 3 Selection

Select 或单击 MPin 将重定向到 OtpMpin 页面

  Navigator.push(
                    context,
                    MaterialPageRoute(builder: (context) => OtpMpin())
                );

返回或弹出命令

  Navigator.of(context).pop();
  Navigator.push(
      context,
      MaterialPageRoute(builder: (context) => ProtectPhone())
  );

屏幕 4 OTP

成功输入 OTP

 Navigator.pop(context);
                      Navigator.push(context, MaterialPageRoute(builder: (context) => setMPin()));

屏幕 5 MPIN

返回或弹出命令

        Navigator.of(context).pop();
      Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => selectScreenLock())

第一流

1 > 2 > 3 > 4 > 5

二次或回流

5 > 3 > 2 > 4 > 2 > 1

在第 3 页到第 4 页中使用 pushReplacement 方法,以便在从第 3 页导航到第 4 页时,第 3 页从堆栈中移除并推送到第 4 页。因此,如果用户在第 4 页按下后退按钮,则用户将进入第二页。

Navigator.pushReplacement(context,
                MaterialPageRoute(builder: (context) {
              return NewPage();
            }));