Flutter Navigation路由跳转/回退

Push跳转:

Navigator.push(

                context,

                MaterialPageRoute(

                    //fullscreenDialog: true, //从底部弹出

                    builder: (BuildContext context) {

                      return Login();

                    }),

              );

或 (等价于):

Navigator.of(context)

                  .push(MaterialPageRoute(builder: (BuildContext context) {

                return Login();

              }));

或:

Navigator.pushNamed(context, '/Login').then((value){

      });


跳转并销毁之前的页面,返回到指定页面:

//跳转顺序是Screen1—>Screen2—>Screen3—>Screen4

当从Screen3跳转到Screen4的时候我们希望将Screen2,Screen3从栈里面移除掉,这样在Screen4点击返回就能直接回到Screen1

Navigator.of(context).pushAndRemoveUntil(

MaterialPageRoute(builder: (context) => Screen4()),

ModalRoute.withName('/screen1'));


//打开Screen4页面,并销毁当前页:Screen2—>Screen3—>Screen4

Navigator.of(context).pushReplacementNamed('/screen3');

//也可以使用以下方式

Navigator.of(context).pushReplacement(MaterialPageRoute(builder: (context)=>Screen3()));


Pop退出:

Navigator.pop(context);

//或:

Navigator.of(context).pop();

//或:带参数返回,push接收:.then((value) {print('------回传参数:$value');})

Navigator.pop(context, 'YES');

Navigator.pop(context, {

   'name': '回传参数'

                });


一直退出直到某一个页面:

//当前在Screen4页面,点击回到Screen1,连带着Screen2,Screen3也一起退出

Navigator.of(context).popUntil(ModalRoute.withName('/screen1'));

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容