返回頁面數據-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"),
            )
            )],
        ),
      )

    );
  }
}

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