国产亚洲欧美人成在线,免费视频爱爱太爽了无码,日本免费一区二区三区高清视频 ,国产真实伦对白精彩视频

歡迎您光臨深圳塔燈網(wǎng)絡科技有限公司!
電話圖標 余先生:13699882642

網(wǎng)站百科

為您解碼網(wǎng)站建設的點點滴滴

flutter頁面間跳轉(zhuǎn)和銷毀

發(fā)表日期:2018-11 文章編輯:小燈 瀏覽次數(shù):11010

flutter頁面間的跳轉(zhuǎn)有兩種方式,一種動態(tài)構(gòu)建路由的方式,一種提前命名路由的方式。

構(gòu)建路由方式

push方法:直接跳轉(zhuǎn)到下個頁面,可以傳遞參數(shù)

Navigator.of(context).push(

? ? new MaterialPageRoute(builder: (BuildContext context) {

//TextWdigetPage要跳轉(zhuǎn)的頁面

//title要傳遞的參數(shù)

? ? ? return TextWdigetPage(title: "傳遞的參數(shù)");

? ? }))

),

或者

Navigator.push(context,

? ? new MaterialPageRoute(builder: (BuildContext context) {

? ? ? return TextWdigetPage(title: "傳遞的參數(shù)");

? ? })

)

pushAndRemoveUntil方式:跳轉(zhuǎn)到下個頁面,并且銷毀當前頁面

//第一個小菜理解為上下文環(huán)境,

// 第二個參數(shù)為靜態(tài)注冊的對應的頁面名稱,

// 第三個參數(shù)為跳轉(zhuǎn)后的操作,route == null 為銷毀當前頁面

Navigator.pushAndRemoveUntil(context,

? ? new MaterialPageRoute(builder: (BuildContext context) {

? ? ? return TextWdigetPage(title: "傳遞的參數(shù)");

? ? }), (route) => route == null

)

提前命名路由

不能傳遞參數(shù),只能在mian.dart里面寫死要跳轉(zhuǎn)的路由協(xié)議

@override

Widget build(BuildContext context) {

? return MaterialApp(

? ? title: "flutter學習",

? ? home: Scaffold(

? ? ? appBar: AppBar(title: Text("flutter學習"),),

? ? ? body: ListView.builder(

? ? ? ? ? itemCount: list.length,

? ? ? ? ? itemBuilder: (context, position) {

? ? ? ? ? ? return HomeListItem(position, list[position], (index) =>

? ? ? ? ? ? ? ? Navigator.push(context,

? ? ? ? ? ? ? ? ? ? new MaterialPageRoute(builder: (BuildContext context) {

? ? ? ? ? ? ? ? ? ? ? return pageList[index];

? ? ? ? ? ? ? ? ? ? }))

? ? ? ? ? ? );

? ? ? ? ? }),

? ? ),

? ? //不能傳遞參數(shù),必須在main里面注冊

? ? routes: {

? ? ? "listview_builder_page": (BuildContext context) =>

? ? ? new ListView_Builder_Page(),

? ? ? "listview_separated_page": (BuildContext context) =>

? ? ? new ListView_Separated_Page(),

? ? },

? );

}

調(diào)用時可以用以下方式:

Navigator.pushNamed(context, "listview_builder_page")

或者

Navigator.pushNamedAndRemoveUntil(

? ? context, "listview_builder_page", (router) => router == null)

),

頁面的銷毀:

//構(gòu)建路由

//一個參數(shù),為上下文環(huán)境,銷毀當前頁面

Navigator.pop(context);

//一個參數(shù),第一個為上下文環(huán)境,第二個為要攜帶的參數(shù),銷毀當前頁面

Navigator.pop(context, "攜帶參數(shù)");

//命名路由

Navigator.popAndPushNamed(context, 'listview_builder_page');

接收路由返回的參數(shù):

//構(gòu)建路由

Navigator.push(context,

? ? new MaterialPageRoute(builder: (BuildContext context) {

? ? ? return TextWdigetPage(title: "傳遞的參數(shù)");

? ? })

).then((Object result) {

? ??? print("返回值:${result.toString()}");

})

Navigator.pushAndRemoveUntil(context,

? ? new MaterialPageRoute(builder: (BuildContext context) {

? ? ? return TextWdigetPage(title: "傳遞的參數(shù)");

? ? }), (route) => route == null

).then((Object result) {

???? print("返回值:${result.toString()}");

})

命名路由

Navigator.pushNamed(context, "listview_builder_page").then((Object result) {

?????? print("返回值:${result.toString()}");

})



練習demo,鏈接https://gitee.com/xgljh/Flutter


本頁內(nèi)容由塔燈網(wǎng)絡科技有限公司通過網(wǎng)絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網(wǎng)頁中由涉嫌抄襲的內(nèi)容,請及時與我們聯(lián)系,并提供相關證據(jù),工作人員會在5工作日內(nèi)聯(lián)系您,一經(jīng)查實,本站立刻刪除侵權內(nèi)容。本文鏈接:http://jstctz.cn/17571.html
相關APP開發(fā)