我的应用程序中有一个个人资料页面,单击退出按钮即显示我正在显示登录页面。
我的代码是这样的,
FlatButton(
onPressed: () {
setState(() {
token = null;
});
Navigator.of(context).pushReplacement(CupertinoPageRoute(
builder: (context) => LoginPage()
));
},
child: Text(
Logout,
style: TextStyle(color: Colors.red),
),
),
但是它只是在当前页面的顶部添加了一个登录页面。因此,如果我从左向右拖动屏幕,它会回到个人资料页面,如何解决此问题。
看看这个
谢谢
最佳答案
您需要完全清除堆栈,而不仅仅是更换堆栈顶部。
您可以这样做:
Navigator.of(context)
.pushAndRemoveUntil(
CupertinoPageRoute(
builder: (context) => LoginPage()
),
(_) => false,
);
第二个参数是返回true时停止弹出的条件。
通过使其始终返回false,您将弹出其余堆栈,仅保留当前路由。
关于flutter - 退出按钮只是在当前页面的顶部添加了一个新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58815642/