第七节 Flutter 一般页面导航和返回(Navgation)

很简单的一个路由跳转Demo, 每天多一点

Navigator.push 和 Navigator.pop
Navigator.push:是跳转到下一个页面,它要接受两个参数一个是上下文context,另一个是要跳转的函数。

Navigator.pop:是返回到上一个页面,使用时传递一个context(上下文)参数,使用时要注意的是,你必须是有上级页面的,也就是说上级页面使用了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('跳转'),
          onPressed: (){
            Navigator.push(context, MaterialPageRoute(  //设置需要跳转的页面
              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 上下文就可以
          },
        )),
      ),
    );
  }
}


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • RaisedButton按钮组件:它有两个最基本的属性:child:可以放入容器,图标,文字。让你构建多彩的按钮。...
    忆往昔Code阅读 6,416评论 0 0
  • 这章来聊聊flutter的路由管理,也可以理解为页面导航,用来处理页面之间的跳转、参数传递、动画展示等功能。 路由...
    风少侠阅读 10,767评论 1 12
  • 简单的页面跳转与返回 需求:从第一个页面上点击按钮跳转到第二个页面,然后再从第二个页面上点击按钮返回第一个页面。如...
    Love零O阅读 7,007评论 1 2
  • flutter页面间的跳转有两种方式,一种动态构建路由的方式,一种提前命名路由的方式。 构建路由方式 push方法...
    习惯了_就好阅读 27,868评论 0 14
  • 我活的很痛苦。这种痛苦是分裂式的,像我身体里还停驻了另一个人的呼吸,有时我能感受到他想撕开我胸膛,从我脑子里掏出沉...
    在下李子川阅读 3,938评论 2 1

友情链接更多精彩内容