侧边栏壁纸
博主头像
析木之林博主等级

山不让尘,川不辞盈。

  • 累计撰写 63 篇文章
  • 累计创建 59 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

flutter跳转页面的方式

已删除用户
2019-10-09 / 0 评论 / 0 点赞 / 510 阅读 / 2355 字 / 正在检测是否收录...

一.跳转其他页面有返回

    //第一种
    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);
0

评论区