Flutter跳转页面的方式

本文详细介绍了在Flutter中实现页面跳转的多种方法,包括有返回的跳转和不返回的跳转,以及如何使用Navigator类进行页面切换。通过具体的代码示例,读者可以了解到如何在实际项目中应用这些跳转技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.跳转其他页面有返回

    //第一种
    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);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值