第七節(jié) Flutter 一般頁面導航和返回(Navgation)

很簡單的一個路由跳轉(zhuǎn)Demo, 每天多一點

Navigator.push 和 Navigator.pop
Navigator.push:是跳轉(zhuǎn)到下一個頁面,它要接受兩個參數(shù)一個是上下文context,另一個是要跳轉(zhuǎn)的函數(shù)。

Navigator.pop:是返回到上一個頁面,使用時傳遞一個context(上下文)參數(shù),使用時要注意的是,你必須是有上級頁面的,也就是說上級頁面使用了Navigator.push。

代碼如下:

import 'package:flutter/material.dart';
import 'SecoundPage.dart';

class MemberPage extends StatelessWidget {
  const MemberPage({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    var stack = new Stack(
      alignment: const FractionalOffset(0.5, 0.1),
      children: <Widget>[
        CircleAvatar(
          backgroundImage: NetworkImage(
              'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2277425626,2685399&fm=26&gp=0.jpg'),
          radius: 100.0,
        ),
        Container(
          child: Text('Jonson'),
          color: Colors.redAccent,
        ),
        Positioned(
          top: 10.0,
          left: 10.0,
          child: Text(
            'JonsonLeft',
            style: TextStyle(color: Colors.orangeAccent),
          ),
        ),
        Positioned(
          bottom: 10.0,
          right: 10.0,
          child:
              Text('JonsonRight', style: TextStyle(color: Colors.orangeAccent)),
        ),
        RaisedButton(
          child: Text('跳轉(zhuǎn)'),
          onPressed: (){
            Navigator.push(context, MaterialPageRoute(  //設(shè)置需要跳轉(zhuǎn)的頁面
              builder: (context) => SecoundPage() //頁面綁定  記得導入這個類
            ));
          },
        )
      ],
    );
    return MaterialApp(
      title: 'row',
      home: Scaffold(
          appBar: AppBar(
            title: Text('ROW'),
          ),
          body: Center(
            child: stack,
          )),
    );
  }
}

第二頁返回的代碼:

import 'package:flutter/material.dart';

class SecoundPage extends StatefulWidget {
  SecoundPage({Key key}) : super(key: key);

  _SecoundPageState createState() => _SecoundPageState();
}

class _SecoundPageState extends State<SecoundPage> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '第二頁',
      home: Scaffold(
        appBar: AppBar(title: Text('第二頁'),),
        body: Center(
            child: RaisedButton(
          child: Text('返回'),
          onPressed: (){
            Navigator.pop(context); //直接pos 上下文就可以
          },
        )),
      ),
    );
  }
}


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • RaisedButton按鈕組件:它有兩個最基本的屬性:child:可以放入容器,圖標,文字。讓你構(gòu)建多彩的按鈕。...
    憶往昔Code閱讀 2,204評論 0 0
  • 這章來聊聊flutter的路由管理,也可以理解為頁面導航,用來處理頁面之間的跳轉(zhuǎn)、參數(shù)傳遞、動畫展示等功能。 路由...
    風少俠閱讀 5,536評論 1 12
  • 簡單的頁面跳轉(zhuǎn)與返回 需求:從第一個頁面上點擊按鈕跳轉(zhuǎn)到第二個頁面,然后再從第二個頁面上點擊按鈕返回第一個頁面。如...
    Love零O閱讀 2,474評論 1 2
  • flutter頁面間的跳轉(zhuǎn)有兩種方式,一種動態(tài)構(gòu)建路由的方式,一種提前命名路由的方式。 構(gòu)建路由方式 push方法...
    習慣了_就好閱讀 27,895評論 0 14
  • 我活的很痛苦。這種痛苦是分裂式的,像我身體里還停駐了另一個人的呼吸,有時我能感受到他想撕開我胸膛,從我腦子里掏出沉...
    在下李子川閱讀 742評論 2 1

友情鏈接更多精彩內(nèi)容