有两种方式可以进行路由跳转
第一种方式
- 在main.dart里面配置routes
const String HOME_SEARCH = "/homeSearch";
const String BUSINESS_CARD = "/businessCard";
//这里写一个Map集合, Key写成常量
Map<String, WidgetBuilder> routeMap = <String, WidgetBuilder>{
BUSINESS_CARD : (BuildContext context) => BusinessCardPage(),
HOME_SEARCH : (BuildContext context) => HomeSearchPage()
};
runApp(MaterialApp(
home: LaunchPage(),
routes: routeMap, //配置routes参数
));
- 通过pushNamed 传递参数跳转
Navigator.pushNamed(context, BUSINESS_CARD, arguments: {'title':"张三",'url':'https://m.eqxiu.com/s/BSHD8W9k'});
- 跳转界面接收参数
@override
Widget build(BuildContext context) {
Map passValue = ModalRoute.of(context).settings.arguments;
final String url = passValue['url'];
final String title= passValue['title'];
}
第二种方式 跳转并退出当前界面
Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(builder: (context) {
return IndexPage();
}),
(route) => route == null
);
网友评论