https://blog.csdn.net/weixin_42869574/article/details/98335757
Flutter跳转页面的方式
一.跳转其他页面有返回
二.跳转其他页面不返回(从路由栈中移除本页面)
一.跳转其他页面有返回
//第一种
Navigator.push(context, CupertinoPageRoute(builder: (context){
return new Page();
}));
//第二种
Navigator.of(context).push(new MaterialPageRoute(builder: (context) {
return new Page();
}));
//第三种
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
routes: {
//Map<String, WidgetBuilder>
"/splash": (context) => new SplashPage(),
"/login": (context) => new LoginPage(),
"/home": (context) => new HomePage(),
"/detail": (context) => new DetailPage(),
},
onUnknownRoute: (RouteSettings setting) {
String name = setting.name;
print("onUnknownRoute:$name");
return new MaterialPageRoute(builder: (context) {
return new NotFoundPage();
});
},
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: new SplashPage(),
);
}
}
//弹出路由,跳转到其他页面
Navigator.of(context).pushNamed("/detail");
//这是返回方法
Navigator.pop(context);
二.跳转其他页面不返回(从路由栈中移除本页面)
//第一种
Navigator.of(context).pushReplacementNamed("/login");
//第二种
Navigator.pushAndRemoveUntil( context, new MaterialPageRoute(builder: (context) => new Page()),(route) => route == null,);
//第三种
Navigator.of(context).pushNamedAndRemoveUntil("/login", (Route<dynamic> route) => false);
点赞
收藏
分享
————————————————
版权声明:本文为CSDN博主「析木之林」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42869574/java/article/details/98335757