返回頁面數據
-
效果
-
源代碼
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"),
)
)],
),
)
);
}
}