美文网首页
Flutter 界面传值

Flutter 界面传值

作者: 我不是小白是真白 | 来源:发表于2019-04-19 16:35 被阅读0次

从前往后传值

假设从 A 页面跳到 B 页面, 将信息从A 传到B,

通过Navigation.push

B中有个name字段,

 const TwoWidget({Key key, this.name}) : super(key: key);

声明的时候将信息 添加进去,
通过

 Navigator.push(context, new MaterialPageRoute(builder: (BuildContext context){
              TwoWidget widget = TwoWidget(name: "祝化林",);
              return widget;
            }));

将信息传到B界面

从后往前传值

静态路由从后往前传值

静态路由不能从前向后传值,只能从前往后,需要两步,首先注册,在routes中注册路由,
假设,从A 跳转到B,从B 返回A的时候进行传值,

 MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new MyHomePage(title: 'Flutter实例'),
      routes: <String, WidgetBuilder> {
        // 这里可以定义静态路由,不能传递参数
        '/router/second': (_) => new SecondPage(),
        '/router/home': (_) => new RouterHomePage(),
      },
    );

action 事件中调用路由, 传的值在 then 后面,是个 Future,这边通过一个弹框,将结果显示出来,

Navigator.pushNamed(context, 'twoWidget').then((name) {
              show(context, name);
            });

在B中pop回去的时候, pop 后面即为传的值.

Navigator.of(context).pop('***');

动态路由从后往前传值

场景同静态路由一样,
在从A跳转到B的时候,使用 then,接收B中传来的值,B中传值方法不变

Navigator.push(context, new MaterialPageRoute(builder: (BuildContext context){
              TwoWidget widget = TwoWidget();
              return widget;
            })).then((name){
              show(context, name);
            });

show 为显示一个弹框

show(BuildContext context,String name){
    showDialog(
      context: context,
      builder: (BuildContext context){
        return new SimpleDialog(
          title: Text(name),
          children: <Widget>[
            new SimpleDialogOption(
              child: new Text('确定'),
              onPressed: () {
                Navigator.of(context).pop();
              },
            ),
          ],
        );
      },
    );
  }

相关文章

  • Flutter 界面传值

    从前往后传值 假设从 A 页面跳到 B 页面, 将信息从A 传到B, 通过Navigation.push B中有个...

  • iOS项目与flutter项目,互相跳转传值

    iOS已有项目集成flutter,网上大把资料,这里主要记录互相跳转传值 OC跳转到flutter界面,如跳转到H...

  • Flutter_嵌套APP

    flutter 代码块 swift 传值 原生 to flutter 传值 flutte to 原生 写在后面...

  • iOS中界面传值的几种方式

    1.属性传值 属性传值适用于顺序传值,从前面的界面传值给后面的界面。 2.代理传值 用代理的方式实现界面间传值稍微...

  • IOS开发 多界面传值

    本节学习内容: 1.多界面传值的基本概念 2.多界面传值的方法 3.多界面传值的应用 【多界面传值 属性】 cha...

  • ios界面传值2016.5

    五种方法 1.属性传值,适合界面A到界面B的传值2.单例, 多个界面传值3.通知 , 界面A跳...

  • iOS开发-属性、block、代理、通知传值

    传值在开发中我们会经常用到,传值又分为正向传值和反向传值。从界面一跳转到界面二且将值从界面一传递给界面二使用,称之...

  • iOS 属性、代理、通知、Block传值

    实际开发中,几乎到处都会有用到传值,而传值分为正向传值以及逆(反)向传值,比如从界面一调到界面二,并将值从界面一传...

  • swift中的协议代理传值

    协议代理传值一般使用在下级界面往上级界面传值的情况,这里将上级界面设定为A界面,下级界面设定为B界面。传值的具体操...

  • UI总结-界面传值

    UI总结-界面传值(属性传值,协议传值,block传值,通知中指传值) 在编程过程中,界面传值是很重要的一部分,常...

网友评论

      本文标题:Flutter 界面传值

      本文链接:https://www.haomeiwen.com/subject/iaqzjqtx.html