Dart中的异步请求和等待和ES6中的方法很像,直接使用async...await就可以实现。

核心代码:

  1. _navigateToAddress(BuildContext context) async{ //async是启用异步方法
  2.  
  3. final result = await Navigator.push(//等待
  4. context,
  5. MaterialPageRoute(builder: (context)=> Address())
  6. );
  7.  
  8. Scaffold.of(context).showSnackBar(SnackBar(content:Text('$result')));
  9. }

示例:

  1. import 'package:flutter/material.dart';
  2.  
  3. void main(){
  4. runApp(MaterialApp(
  5. title:'页面跳转返回数据',
  6. home:FirstPage()
  7. ));
  8. }
  9.  
  10. class FirstPage extends StatelessWidget {
  11. @override
  12. Widget build(BuildContext context) {
  13. return Scaffold(
  14. appBar:AppBar(title:Text("商品列表")),
  15. body:Center(
  16. child: RouteButton(),
  17. )
  18. );
  19. }
  20. }
  21.  
  22. //跳转的Button
  23. class RouteButton extends StatelessWidget {
  24. @override
  25. Widget build(BuildContext context) {
  26. return RaisedButton(
  27. onPressed:(){
  28. _navigateToAddress(context);
  29. },
  30. child: Text('选择地址'),
  31. );
  32. }
  33.  
  34. _navigateToAddress(BuildContext context) async{ //async是启用异步方法
  35.  
  36. final result = await Navigator.push(//等待
  37. context,
  38. MaterialPageRoute(builder: (context)=> Address())
  39. );
  40.  
  41. Scaffold.of(context).showSnackBar(SnackBar(content:Text('$result')));
  42. }
  43. }
  44.  
  45. class Address extends StatelessWidget {
  46. @override
  47. Widget build(BuildContext context) {
  48. return Scaffold(
  49. appBar:AppBar(
  50. title:Text('地址列表')
  51. ),
  52. body:Center(
  53. child:Column(
  54. children: <Widget>[
  55. RaisedButton(
  56. child: Text('地址一'),
  57. onPressed: (){
  58. Navigator.pop(context,'地址一:北京');
  59. },
  60. ) ,
  61. RaisedButton(
  62. child: Text('地址二'),
  63. onPressed: (){
  64. Navigator.pop(context,'地址二:上海');
  65. },
  66. ) ,
  67. ],
  68. )
  69. ) ,
  70. );
  71. }
  72. }

Flutter页面跳转返回数据的更多相关文章

  1. Android first --- 页面跳转及数据传递

    页面跳转即数据传递 创建第二个界面Acivity *需要在清单文件中添加配置一个Actuvity标签 标签中如果带有这个子节点,则会在Android中添加一个快捷图标 <intent-filte ...

  2. iOS页面跳转及数据传递

    转: http://blog.csdn.net/wang9834664/article/details/8025571 iOS页面跳转: 第一种 [self.navigationController  ...

  3. Android应用开发基础之六:页面跳转和数据传递

    创建第二个Activity 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> <action ...

  4. Android初级教程理论知识(第五章页面跳转和数据传递)

    总体概述: Android四大组件 Activity BroadCastReceiver Service ContentProvider 创建第二个activity 新创建的activity,必须在清 ...

  5. flutter -------- 页面跳转和传值

    在安卓原生开发中,页面跳转可以用Intent类来具体实现: Intent intent =new Intent(MainActivity.this,second.class); startActivi ...

  6. 微信小程序 页面跳转传递数据

    点击view 跳转页面 <view class="album_image" data-album-obj="{{item}}" bindtap=" ...

  7. vue滚动行为控制——页面跳转返回上一个页面保留滚动位置

    需求分析: 一般这个功能在后台管理系统用的比较多,因为后台页面都是在当前页面打开,对于某些列表筛选页,如果列表数据比较多,页面就会滚动.当页面发生滚动,对列表数据进行查看或者编辑的时候,跳转到下一级页 ...

  8. android 学习随笔十四(页面跳转与数据传递)

    1.activity 创建第二个Activity 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> ...

  9. android 页面跳转,数据回传

    package com.example.firstpg.firstpg; import android.support.v7.app.ActionBarActivity; import android ...

随机推荐

  1. selenium常用的API(三)获取网页title、html源码

    获取网页title 获取页面title的方法可以直接用driver.title获取到,然后可以把获取到的结果用做断言. #encoding=utf-8 from selenium import web ...

  2. 微信小程序~App.js中登录

    (1)初始化项目中App.js登录代码 // 登录 wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, u ...

  3. P1772 [ZJOI2006]物流运输[DP+最短路]

    题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪. ...

  4. 题解 洛谷P2189 【小Z的传感器】

    这题就是考察什么时候建边,貌似和搜索没有半毛钱关系\(qwq\) 首先没有传感器的房间是可以随便走来走去的,因为我们不用考虑顺序.于是就考虑先把这些点的相互的边给建起来. 接下来分析一波,对于第\(i ...

  5. 《3+1团队》【Beta】Scrum meeting 2

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 3+1团队 团队博客地址 https://home.cnblogs.com/u/3-1group ...

  6. Analysis of algorithms: observation

    例子: 3-Sum 给定N个整数,这里面有多少个三元组,使其三个整数相加为0,如上面的例子为有4个三元组. 这个问题是许多问题如计算机几何,图形学等的基础. 用简单粗暴的方式来解决3-Sum问题 通过 ...

  7. java设计模式解析(11) Chain责任链模式

    设计模式系列文章 java设计模式解析(1) Observer观察者模式 java设计模式解析(2) Proxy代理模式 java设计模式解析(3) Factory工厂模式 java设计模式解析(4) ...

  8. [CodeForces - 906D] Power Tower——扩展欧拉定理

    题意 给你 $n$ 个 $w_i$ 和一个数 $p$,$q$个询问,每次询问一个区间 $[l,r] $,求 $w_l ^{w_{l+1}^{{\vdots}^{w_r}}} \ \% p$ 分析 由扩 ...

  9. JS AJAX和JSONP的基础功能封装以及使用示例;

    1.代码: function ajax(options){ options = options || {}; options.type = options.type || "get" ...

  10. java.security KeyPairGenerator

    KeyPairGenerator 类用于生成公钥和私钥对.密钥对生成器是使用 getInstance 工厂方法(返回一个给定类的实例的静态方法)构造的. 特定算法的密钥对生成器可以创建能够与此算法一起 ...