路由
做Android/iOS原生開發(fā)的時(shí)候,要打開一個(gè)新的頁面,你得知道你的目標(biāo)頁面對(duì)象,然后初始化一個(gè)Intent或者ViewController,再通過startActivity或者pushViewController來推出一個(gè)新的頁面,不能跟web一樣,直接丟一個(gè)鏈接地址就跳轉(zhuǎn)到新的頁面。當(dāng)然,可以自己去加一個(gè)中間層來實(shí)現(xiàn)這些功能。
Flutter里面是原生支持路由的。Flutter的framework提供了路由跳轉(zhuǎn)的實(shí)現(xiàn)。我們可以直接使用這些功能。
Flutter路由介紹
Flutter里面有路由支持所有的路由場景,push、pop頁面,頁面間的參數(shù)傳遞等等。flutter里面的路由可以分成兩種,一種是直接注冊(cè),不能傳遞參數(shù)。另一種要自己構(gòu)造實(shí)例,可以傳遞參數(shù)。我們暫時(shí)把它們規(guī)為靜態(tài)路由和動(dòng)態(tài)路由。
單頁面路由跳轉(zhuǎn)時(shí)注意不要有兩個(gè)materialapp,因?yàn)閷?dǎo)航是依賴于這個(gè)的,有兩個(gè),就會(huì)有兩個(gè)導(dǎo)航
一、兩種路由傳參方法: DetailScreen跳轉(zhuǎn)的路由組件
1.直接向路由子組件構(gòu)造函數(shù)傳參
Navigator.push( context, MaterialPageRoute( builder: (context) => DetailScreen(todo: todos[index]), ), ); 1.通過RouteSettings傳遞參數(shù) Navigator.push( context, MaterialPageRoute( builder: (context) => DetailScreen(), settings: RouteSettings( arguments: todos[index], ), ), );