1.無名路由push,直接使用
void nextPage() async{ final result = await Navigator.push(context, MaterialPageRoute(builder: (BuildContext context) { return NextPage("pass params to next page");//構造函數傳遞參數 }));
//result頁面返回結果
}
Navigator.pop(context, "return value to last page");//頁面返回
2. 命名路由pushNamed,先注冊再使用
void main() => runApp(MyApp());//單行函數調用寫法
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "My App Title",
theme: ThemeData(primaryColor: Colors.green),
//home: RandomWord(),首頁設置方式一
initialRoute: "home_route",//首頁設置方式二
routes: {//路由注冊表
"next_page": (BuildContext context) {
return NextPage(ModalRoute.of(context).settings.arguments);
},
"home_route": (BuildContext context) => RandomWord(),
},
// onGenerateRoute: //頁面攔截處理
// onUnknownRoute: //頁面跳轉出錯
);
}
}
void nextPage() async{
final result = await Navigator.pushNamed(context, "next_page",arguments: "pass params to next page");
//result頁面返回結果
}
//next_page獲取上一個頁面傳遞過來的參數的方法:ModalRoute.of(context).settings.arguments