• Flutter页面跳转返回数据


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

    核心代码:

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

    示例:

    import 'package:flutter/material.dart';
    
    void main(){
      runApp(MaterialApp(
          title:'页面跳转返回数据',
          home:FirstPage()
      ));
    }
    
    class FirstPage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
            appBar:AppBar(title:Text("商品列表")),
            body:Center(
              child: RouteButton(),
            )
        );
      }
    }
    
    //跳转的Button
    class RouteButton extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return RaisedButton(
          onPressed:(){
            _navigateToAddress(context);
          },
          child: Text('选择地址'),
        );
      }
    
      _navigateToAddress(BuildContext context) async{ //async是启用异步方法
    
        final result = await Navigator.push(//等待
            context,
            MaterialPageRoute(builder: (context)=> Address())
        );
    
        Scaffold.of(context).showSnackBar(SnackBar(content:Text('$result')));
      }
    }
    
    class Address extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar:AppBar(
              title:Text('地址列表')
          ),
          body:Center(
              child:Column(
                children: <Widget>[
                  RaisedButton(
                    child: Text('地址一'),
                    onPressed: (){
                      Navigator.pop(context,'地址一:北京');
                    },
                  ) ,
                  RaisedButton(
                    child: Text('地址二'),
                    onPressed: (){
                      Navigator.pop(context,'地址二:上海');
                    },
                  ) ,
                ],
              )
          ) ,
        );
      }
    }
  • 相关阅读:
    基础练习 分解质因数
    基础练习 矩阵乘法
    基础练习 矩形面积交
    基础练习 完美的代价
    设计模式完结(7)--桥接模式----处理多维度变化
    设计模式完结(6)--适配器模式----不兼容结构的协调
    设计模式完结(5)-建造者模式
    设计模式完结(4)-原型模式
    设计模式完结(3)单例模式
    设计模式读完总结(2)工厂模式
  • 原文地址:https://www.cnblogs.com/loaderman/p/11250889.html
Copyright © 2020-2023  润新知