多个 WillPopScope?

Multiple WillPopScope?

这是我的应用场景: 启动画面 -> 登录画面 -> 主屏幕

我的登录屏幕主屏幕中都有WillPopScope

如果用户登录成功,我使用:

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

我遇到的问题是,我现在位于 主屏幕,但是当我尝试按下 phone 的后退按钮时,WillPopScope 我的 登录屏幕 被触发而不是 主屏幕 ?

我是 Flutter 的新手,我在理解这个简单的逻辑时遇到了麻烦。请帮忙。

当您处于登录屏幕时,您需要从堆栈中弹出登录屏幕并将主屏幕推入其中。你可以这样做:

Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => HomeScreen()))

在登录屏幕中,在调用主屏幕之前添加 Navigator.pop(context)

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