您好,欢迎关注我的专栏,本专栏是关于 Flutter 的专栏,从简单的 Flutter 介绍开始,一步步带你了解进入 Flutter 的世界。你最好有一定的移动开发经验,如果没有也不要担心,在我的专栏底部给我留言,我会尽我的能力给你解答。
上一篇专栏,我带大家用Flutter实现了一个完整的可自定义配置的 PageView 指示器。这篇专栏,我会教大家在Flutter中如何实现界面跳转。
在Android中,我们会使用Intent来进行界面间的跳转,用startActivityForResult来处理界面跳转完成后的回调;在iOS中,我们使用Pages进行页面跳转。
页面跳转
在Flutter中页面跳转方式有两种:
方法一:
直接跳转
Navigator.push(context, new MaterialPageRoute(builder: (context) => new SecondScreen()),);
方法二:
通过路由跳转
void main() {
runApp(MaterialApp(
home: MyAppHome(), // becomes the route named '/'
routes: {
'/a': (BuildContext context) => MyPage(title: 'page A'),
'/b': (BuildContext context) => MyPage(title: 'page B'),
'/c': (BuildContext context) => MyPage(title: 'page C'),
},
));
}
Navigator.of(context).pushNamed('/b');
根据Flutter的文档,routes的灵感来源于reactjs,routes可以翻译为路由,可以看到这种routes的思路在目前的设计中彼此借鉴,routes的思路不仅在前端流行,比如在vue、reactjs、Angular中用到,而且在后端应用中也非常成熟。
关闭页面
使用Navigator.pop()方法可以直接
Navigator.pop(context);
也可以直接带参数回调。
Navigator.of(context).pop({"lat":43.821757,"long":-79.226392});
利用第三方库实现页面传值
Fluro是一个基于Flutter的路由传参库,它可以通过url传递参数。
```