Basic navigation by using 'Navigator.push' & 'Navigator.pop()', for example, we have two screen, screen1 and screen2, we want to navigate between two screens:

// Screen1.dart

import 'package:flutter/material.dart';
import 'screen2.dart'; class Screen1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.red,
title: Text('Screen 1'),
),
body: Center(
child: RaisedButton(
color: Colors.red,
child: Text('Go Forwards To Screen 2'),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) {
return Screen2();
}),
);

},
),
),
);
}
}

Screen2.dart:

import 'package:flutter/material.dart';

class Screen2 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.blue,
title: Text('Screen 2'),
),
body: Center(
child: RaisedButton(
color: Colors.blue,
child: Text('Go Back To Screen 1'),
onPressed: () {
Navigator.pop(context);
},
),
),
);
}
}

Using the named route:

In main.dart, we can list all the routes:

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
// home: Screen0(),
initialRoute: '/',
routes: {
'/': (context) => Screen0(),
'/first': (context) => Screen1(),
'/second': (context) =>
Screen2()
},

);
}
}

To be noticed: 'home' & 'initialRoute' cannot be used at the same time.

       child: Column(
children: <Widget>[
RaisedButton(
color: Colors.red,
child: Text('Go To Screen 1'),
onPressed: () {
Navigator.pushNamed(context, '/first');
},
),
RaisedButton(
color: Colors.blue,
child: Text('Go To Screen 2'),
onPressed: () {
Navigator.pushNamed(context, '/second');
},
),
],
),

最新文章

  1. MySql 管理操作常用命令
  2. 1205索引使用explain
  3. 序列中找子序列的dp
  4. win7 解决git clone 连接被拒绝&mdash;hosts文件过期
  5. 应用dom4j读取xml的例子
  6. Oracle DataGuard 物理Standby 搭建(下)
  7. Android SDK更新缓慢或无法更新的解决方法
  8. jsonsql
  9. Java_java多线程下载-断点下载-超详细
  10. Java基础-Eclipse环境搭建(02)
  11. Gradient Descent 梯度下降法-R实现
  12. CAP带你轻松玩转Asp.Net Core消息队列
  13. C#读写Excel实践笔记
  14. zookeeper原理与安装
  15. git 配置 BeyondCompare
  16. 解决spring-boot启动异常Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean
  17. 夯实基础之--new关键字、instanceOf原理
  18. MT【201】折线计数
  19. 移植RTL8188CUS USB-WIFI(移植失败)
  20. pyhon之函数参数

热门文章

  1. hive学习(1)
  2. ubuntu 使用新添加的用户登录只有$解决方法
  3. MySQL数据库-表操作-SQL语句(二)
  4. AS3.0绘图API
  5. tsql获取sqlserver某个库下所有表
  6. 环境配置 python 3.6+Anaconda+cuda9.0+cudNN7.0+Tensorflow
  7. NEST 根据id查询
  8. MQTT协议中的topic
  9. javascript 区域外事件捕捉setCapture
  10. hybris backoffice创建product遇到的synchronization问题和解答