返回页面数据-Flutter

返回页面数据

  • 效果

  • 源代码

import 'package:flutter/material.dart';
void main() {
  runApp(MaterialApp(
    home: First(),
  ));
}
class First extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("异步请求和等待"),
      ),
      body: Center(
        child: MyButton()
      ),
    );
  }
}
//单独声明按钮,否则SnackBar无效果
class MyButton extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return RaisedButton(
      child: Text("Go"),
      onPressed: (){
        _fun(context);
      },
    );
  }
}
_fun(BuildContext context) async {//异步处理
  //await与async相伴
  final result = await Navigator.push(
    context,
    // Create the SelectionScreen in the next step.
    MaterialPageRoute(builder: (context) => Second()),
  );
  //移除上一个SnackBar
  Scaffold.of(context).removeCurrentSnackBar();
  //生成一个SnackBar并把接收的信息展示
  Scaffold.of(context).showSnackBar(SnackBar(content: Text("$result"),));
}
class Second extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("返回下列数据"),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Center(child: RaisedButton(
              child: Text("阿腾木的小世界"),
              onPressed: (){
                Navigator.pop(context,'阿腾木的小世界');
              },
            )),
            Center(child: RaisedButton(
              child: Text("ccatom.com"),
              onPressed: ()=>Navigator.pop(context,"ccatom.com"),
            )
            )],
        ),
      )

    );
  }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章