flutter - 退出按钮只是在当前页面的顶部添加了一个新页面

标签 flutter dart

我的应用程序中有一个个人资料页面,单击退出按钮即显示我正在显示登录页面。

我的代码是这样的,

 FlatButton(
                    onPressed: () {
                      setState(() {
                        token = null;
                      });

                      Navigator.of(context).pushReplacement(CupertinoPageRoute(
                        builder: (context) => LoginPage()

                      ));

                    },
                    child: Text(
                      Logout,
                      style: TextStyle(color: Colors.red),
                    ),
                  ),

但是它只是在当前页面的顶部添加了一个登录页面。因此,如果我从左向右拖动屏幕,它会回到个人资料页面,如何解决此问题。

看看这个

this

谢谢

最佳答案

您需要完全清除堆栈,而不仅仅是更换堆栈顶部。

您可以这样做:

Navigator.of(context)
  .pushAndRemoveUntil(
    CupertinoPageRoute(
      builder: (context) => LoginPage()
    ),
  (_) => false,
);

第二个参数是返回true时停止弹出的条件。

通过使其始终返回false,您将弹出其余堆栈,仅保留当前路由。

关于flutter - 退出按钮只是在当前页面的顶部添加了一个新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58815642/

相关文章:

validation - 如何检查输入的所有值是否为空格?

dart - 如何将Dart IO流程设置为将现有Stream用于其stdin?

flutter - 将 'key' 转换为 super 参数警告 - 如何更改现有的 super 调用以使用 super 命名参数?

dart - 在 Dartlang 中旋转/移动列表?

firebase - 在我的 Flutter Web 应用程序中按 Altright 时出错

flutter - 又抛出异常: type 'Null' is not a subtype of type 'String'

dart - Flutter FadeInImage Network - 不会在 setState 图像更改时淡入图像

flutter - "Missing ' 包 ' key attribute on element package at AndroidManifest.xml:11:5-64"

dart - 在 flutter/dart-ui 中将 UInt8List 转换为图像

dart - 单击父选项卡后,我想创建动态子选项卡和子 TabBarViews