页面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方式
Future方式
记录下 现在测试 ----------------------------------- 测试成功
网友评论