1 路由管理
路由的概念由来已久,包括网络路由、后端路由,到现在广为流行的前端路由。
无论路由的概念如何应用,它的核心是一个路由映射表
比如:名字 detail 映射到 DetailPage 页面等
有了这个映射表之后,我们就可以方便的根据名字来完成路由的转发(在前端表现出来的就是页面跳转)
在Flutter中,路由管理主要有两个类:Route和Navigator
(1) Route
Route:一个页面要想被路由统一管理,必须包装为一个Route
(2) Navigator
Navigator:管理所有的Route的Widget,通过一个Stack来进行管理的
我们开发中使用的MaterialApp、CupertinoApp、WidgetsApp它们默认是有插入Navigator的
2 两页面间跳转
class MainPage extends StatelessWidget {
const MainPage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Center(
child: ElevatedButton(
child: Text("打开详情页面"),
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(builder: (ctx) {
return DetailedPage();
}));
}));
}
}
class DetailedPage extends StatelessWidget {
const DetailedPage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Center(
child: ElevatedButton(
child: Text("回到主页"),
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(builder: (ctx) {
return MainPage();
}));
},
),
);
}
}