//普通路由
import 'package:flutter/material.dart';
import 'detail.dart';
class HomeController extends StatefulWidget {
@override
_HomeControllerState createState() => _HomeControllerState();
}
class _HomeControllerState extends State<HomeController> {
@override
Widget build(BuildContext context) {
return ListView(
children: <Widget>[
RaisedButton(
child: Text("我的跳轉(zhuǎn)"),
onPressed: (){
Navigator.of(context).push(
MaterialPageRoute(
builder: (context){
//傳值
return Detail("1234");
}
)
);
},
)
],
);
}
}
RaisedButton(
child: Text("返回"),
onPressed: (){
Navigator.of(context).pop();
},
)
//命名路由 統(tǒng)一管理路由
return MaterialApp(
// home: HTopMain(),
theme: ThemeData(primarySwatch: Colors.red),
initialRoute:"/", //跳轉(zhuǎn)的首頁路由
routes: {
'/':(context){
return HTopMain();
},
'detail':(context){
return Detail("str");
},
'login':(context){
return Login();
},
"tip2": (context){
return Detail(ModalRoute.of(context).settings.arguments);
},
},
Widget build(BuildContext context) {
//獲取路由參數(shù)
var args=ModalRoute.of(context).settings.arguments;
//...省略無關(guān)代碼
////
//路由生成鉤子
假設(shè)我們要開發(fā)一個(gè)電商APP娱俺,當(dāng)用戶沒有登錄時(shí)可以看店鋪裹驰、商品等信息派撕,但交易記錄婉弹、購物車、用戶個(gè)人信息等頁面需要登錄后才能看终吼。為了實(shí)現(xiàn)上述功能镀赌,我們需要在打開每一個(gè)路由頁前判斷用戶登錄狀態(tài)!如果每次打開路由前我們都需要去判斷一下將會(huì)非常麻煩际跪,那有什么更好的辦法嗎商佛?答案是有喉钢!