遇到一个指定返回问题这里记录一下
需求:登录页->首页->功能页->详情页 <=> 详情页->首页
Navigator.popUntil(context, ModalRoute.withName('/'));
如上代码pop后回到的是登录页,这里‘/’是指回到的根,也就是最初的那一层,所以需要处理一下,在.main 中 加入路由
return MaterialApp(
routes: <String, WidgetBuilder>{
"/home": (BuildContext context) => HomeView(),
"/rec": (BuildContext context) => ReceiveCar(),
"/atwork": (BuildContext context) => AtWorkView(),
"/working": (BuildContext context) => WorkingView(),
},
在登录方法里
Navigator.push(
context,
MaterialPageRoute(
settings:
RouteSettings(name: "/home"),
builder: (context) => HomeView()),
);
在返回pop 方法里
Navigator.popUntil(
context,
ModalRoute.withName(
SynchronizePreferences.Get('autoLogin') == null
? '/'
: '/home'));
其中 SynchronizePreferences.Get('autoLogin')适用于判断是否是自动登录
网友评论