Flutter之基本路由,命名路由跳轉(zhuǎn)酸役,返回上一頁住诸,替換路由和返回根路由——Flutter基礎(chǔ)系列

需求:

今天為大家介紹一下Flutter是如何進(jìn)行頁面跳轉(zhuǎn)驾胆,路由管理的。

一只壳、基本路由

1俏拱、基本路由使用

假設(shè)我們需要從A頁面跳轉(zhuǎn)到basic頁面暑塑,則我們需要在A頁面引入

import '../basic.dart';

然后在A頁面通過以下方法跳轉(zhuǎn):

 RaisedButton(
             child: Text("跳轉(zhuǎn)到基本路由頁面"),
             onPressed: (){
               Navigator.of(context).push(
                   MaterialPageRoute(
                     builder:(BuildContext context){ 
                       return basic(); 
                     }
                   )
               );
             },
             color: Colors.blue
           ),

2吼句、基本路由傳值

還是一樣在A頁面引入

import '../basic.dart';

然后在A頁面通過以下方法跳轉(zhuǎn):

 RaisedButton(
                child: Text("跳轉(zhuǎn)到基本路由頁面并傳值"),
                onPressed: (){
                  Navigator.of(context).push(
                      MaterialPageRoute(
                          builder:(BuildContext context){
                            return basic(content:"傳遞過去的值為666");
                          }
                      )
                  );
                },
                color: Colors.blue
            ),

二、命名路由

1事格、命名路由抽離到一個(gè)文件中

新建一個(gè)Routes.dart的文件

import 'package:flutter/material.dart';
import '../pages/routeJmp/transmit.dart';

//配置路由
final routes={
  '/transmit':(context,{arguments})=> transmit(content:arguments),
};

//固定寫法
var onGenerateRoute=(RouteSettings settings) {
  // 統(tǒng)一處理
  final String name = settings.name;
  final Function pageContentBuilder = routes[name];
  if (pageContentBuilder != null) {
    if (settings.arguments != null) {
      final Route route = MaterialPageRoute(
          builder: (context) =>
              pageContentBuilder(context, arguments: settings.arguments));
      return route;
    }else{
      final Route route = MaterialPageRoute(
          builder: (context) =>
              pageContentBuilder(context));
      return route;
    }
  }
};

2惕艳、跳轉(zhuǎn)參數(shù)

 RaisedButton(
                child: Text("跳轉(zhuǎn)到命名路由頁面"),
                onPressed: (){
                  //路由跳轉(zhuǎn)
                  Navigator.pushNamed(context, '/transmit');
                },
                color: Colors.blue
            ),
            RaisedButton(
                child: Text("跳轉(zhuǎn)到命名路由頁面并傳值"),
                onPressed: (){
                  //路由跳轉(zhuǎn)
                  Navigator.pushNamed(context, '/transmit',arguments:",傳值結(jié)果為666");
                },
                color: Colors.blue
            ),

3驹愚、接收參數(shù)

import 'package:flutter/material.dart';


class transmit extends StatefulWidget {
  String content;
  transmit({this.content});
  @override
  _transmitState createState() => _transmitState();
}

class _transmitState extends State<transmit> {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: AppBar(
        title: Text("這是命名路由頁面${widget.content!=null?widget.content:""}",style: TextStyle(fontSize:15),),
      ),
      body: ListView(
        children: [

        ],
      ),
    );
  }
}

4远搪、命名路由返回上一頁的用法

Navigator.of(context).pop();

調(diào)用該方法可以返回上一頁

4、命名路由如何替換路由

Navigator.of(context).pushReplacementNamed('/transmitTwo');

調(diào)用該方法可以關(guān)閉當(dāng)前頁面逢捺,并跳轉(zhuǎn)到你需要的頁面

5谁鳍、返回根路由

Navigator.of(context).pushAndRemoveUntil(new MaterialPageRoute(builder: (context) => new Home()), (route) => route == null );

關(guān)閉當(dāng)前所有頁面,返回到根頁面或者打開指定頁面劫瞳,Home()是我這個(gè)項(xiàng)目的根頁面倘潜。

基礎(chǔ)篇


Flutter之實(shí)現(xiàn)生成二維碼,掃描二維碼——Flutter基礎(chǔ)系列

Flutter之基本路由志于,命名路由跳轉(zhuǎn)涮因,返回上一頁,替換路由和返回根路由——Flutter基礎(chǔ)系列

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伺绽,一起剝皮案震驚了整個(gè)濱河市养泡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奈应,老刑警劉巖澜掩,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異杖挣,居然都是意外死亡输硝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門程梦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來点把,“玉大人,你說我怎么就攤上這事屿附±商樱” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵挺份,是天一觀的道長(zhǎng)褒翰。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么优训? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任朵你,我火速辦了婚禮,結(jié)果婚禮上揣非,老公的妹妹穿的比我還像新娘抡医。我一直安慰自己,他們只是感情好早敬,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布忌傻。 她就那樣靜靜地躺著,像睡著了一般搞监。 火紅的嫁衣襯著肌膚如雪水孩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天琐驴,我揣著相機(jī)與錄音俘种,去河邊找鬼。 笑死绝淡,一個(gè)胖子當(dāng)著我的面吹牛宙刘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播够委,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼荐类,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了茁帽?” 一聲冷哼從身側(cè)響起玉罐,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎潘拨,沒想到半個(gè)月后吊输,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铁追,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年季蚂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琅束。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扭屁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涩禀,到底是詐尸還是另有隱情料滥,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布艾船,位于F島的核電站葵腹,受9級(jí)特大地震影響高每,放射性物質(zhì)發(fā)生泄漏吗坚。R本人自食惡果不足惜汁蝶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一卧波、第九天 我趴在偏房一處隱蔽的房頂上張望当纱。 院中可真熱鬧,春花似錦钮蛛、人聲如沸锋八。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洪囤。三九已至徒坡,卻和暖如春撕氧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背喇完。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國打工伦泥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锦溪。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓不脯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親刻诊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子防楷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348