• <ul id="cgeq2"></ul>
  • 歡迎您光臨深圳塔燈網絡科技有限公司!
    電話圖標 余先生:13699882642

    網站百科

    為您解碼網站建設的點點滴滴

    flutter頁面間跳轉和銷毀

    發表日期:2018-11 文章編輯:小燈 瀏覽次數:10946

    flutter頁面間的跳轉有兩種方式,一種動態構建路由的方式,一種提前命名路由的方式。

    構建路由方式

    push方法:直接跳轉到下個頁面,可以傳遞參數

    Navigator.of(context).push(

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

    //TextWdigetPage要跳轉的頁面

    //title要傳遞的參數

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

    ? ? }))

    ),

    或者

    Navigator.push(context,

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

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

    ? ? })

    )

    pushAndRemoveUntil方式:跳轉到下個頁面,并且銷毀當前頁面

    //第一個小菜理解為上下文環境,

    // 第二個參數為靜態注冊的對應的頁面名稱,

    // 第三個參數為跳轉后的操作,route == null 為銷毀當前頁面

    Navigator.pushAndRemoveUntil(context,

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

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

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

    )

    提前命名路由

    不能傳遞參數,只能在mian.dart里面寫死要跳轉的路由協議

    @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];

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

    ? ? ? ? ? ? );

    ? ? ? ? ? }),

    ? ? ),

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

    ? ? routes: {

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

    ? ? ? new ListView_Builder_Page(),

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

    ? ? ? new ListView_Separated_Page(),

    ? ? },

    ? );

    }

    調用時可以用以下方式:

    Navigator.pushNamed(context, "listview_builder_page")

    或者

    Navigator.pushNamedAndRemoveUntil(

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

    ),

    頁面的銷毀:

    //構建路由

    //一個參數,為上下文環境,銷毀當前頁面

    Navigator.pop(context);

    //一個參數,第一個為上下文環境,第二個為要攜帶的參數,銷毀當前頁面

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

    //命名路由

    Navigator.popAndPushNamed(context, 'listview_builder_page');

    接收路由返回的參數:

    //構建路由

    Navigator.push(context,

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

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

    ? ? })

    ).then((Object result) {

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

    })

    Navigator.pushAndRemoveUntil(context,

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

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

    ? ? }), (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


    本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.juherenli.com/17571.html
    相關APP開發
     八年  行業經驗

    多一份參考,總有益處

    聯系深圳網站公司塔燈網絡,免費獲得網站建設方案及報價

    咨詢相關問題或預約面談,可以通過以下方式與我們聯系

    業務熱線:余經理:13699882642

    Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

    91精品国产高清91久久久久久| 97麻豆精品国产自产在线观看| 国产精品嫩草影院AV| 无码精品国产一区二区三区免费| 国产精品美女网站在线观看| 日韩精品射精管理在线观看| 久久精品国产亚洲av水果派| 亚洲伊人久久精品影院| 国产成人精品亚洲精品| 国产精品美女久久久网站| 国产精品香蕉在线| 91精品久久国产青草| 九九99精品久久久久久| 久久国产成人亚洲精品影院| 国产日韩精品一区二区在线观看| 国产综合色香蕉精品五月婷| 亚洲精品第一国产综合精品| 久久免费观看国产精品| 国产在线精品观看免费观看| 国产成人精品福利网站在线观看| 国产精品福利影院| 日本精品卡一卡2卡三卡| 亚洲欧洲精品成人久久曰| 国产精品福利在线观看| 久久99热只有频精品8| 99re这里有免费视频精品| 久久亚洲精品国产精品黑人| 精品免费tv久久久久久久| 亚洲色精品88色婷婷七月丁香| 老司机精品免费视频| 国产精品亚洲视频| 国产精品va久久久久久久| 国产区精品高清在线观看| 国产成人久久精品麻豆一区| 亚洲精品偷拍视频免费观看| 四虎永久在线精品国产馆V视影院| 国产成人精品视频一区| 国产亚洲福利精品一区二区| 国产精品亚洲专一区二区三区| 精品亚洲福利一区二区| 国内精品久久久久影院蜜芽|