美文网首页Flutter 入坑记FlutterFlutter
flutter 页面回传的两种方式

flutter 页面回传的两种方式

作者: 雪纳瑞的哈士奇 | 来源:发表于2019-07-03 17:11 被阅读0次

页面1:

方式1:

 /**
   *第一种异步方式 async await
   * 启动并等待返回结果
   */
  _navigatorAndDisplaySelection1(BuildContext context) async {
    print("----c------");
    var result = await Navigator.push(context,
        new MaterialPageRoute(builder: (context) => new SelectionScreen()));
    print("----d------");
    Scaffold
        .of(context)
        .showSnackBar(new SnackBar(content: new Text("$result")));
  }
}

方式2:

/**
 *  第二种异步方式 Future API
 * 启动后不等待返回结果 但是返回后有回调函数 相当于注册了一个接收者
 */
_navigatorAndDisplaySelection(BuildContext context) {
  print("----c------");
  Navigator
      .push(context,
          new MaterialPageRoute(builder: (context) => new SelectionScreen()))
      .then((result) {
    print("----E------");
    Scaffold
        .of(context)
        .showSnackBar(new SnackBar(content: new Text("$result")));
  }).catchError((error) {
    print("$error");
  });
  print("----d------");
}

页面2:

 Widget _getPadding(BuildContext context, String text) {
    return new Padding(
      padding: const EdgeInsets.all(8.0),
      child: new RaisedButton(
        onPressed: () {
          Navigator.pop(context, text);
        },
        child: new Text(text),
      ),
    );
  }
}

async/await方式


async/await方式

Future方式


Future方式

记录下 现在测试 ----------------------------------- 测试成功

相关文章

网友评论

    本文标题:flutter 页面回传的两种方式

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