在第二页中,您可以使用WillPopScope将脚手架包围起来,将onWillPop设置为false以防止系统弹出页面,然后将自己的返回按钮添加到应用栏的前导小部件中,并在其中执行弹出操作。
@override
Widget build(BuildContext context) {
return new WillPopScope(
onWillPop: () async => false,
child: new Scaffold(
appBar: new AppBar(
title: new Text("data"),
leading: new IconButton(
icon: new Icon(Icons.ac_unit),
onPressed: () => Navigator.of(context).pop(),
),
),
),
);
}
从此帖子的答案中提取的代码
编辑:添加页面2以控制导航
除了以上的代码,您还将在页面2中添加以下代码。 更改
Navigator.of(context).pop()
至
Navigator.of(context).pop('upload_files')
然后在你的页面1中,当你导航时,你将等待导航并使用从页面2弹出的结果来运行你的逻辑
var navigationResult = await Navigator.push(
context,
new MaterialPageRoute(
builder: (context) => Page2()));
if(navigationResult == 'upload_files') {
uploadFiles();
}