当我单击应用程序栏的后退按钮时,它会转到上一页。但是,当点击设备后退按钮时,应用会关闭。请告诉我会发生什么。
@override
Widget build(BuildContext context) {
return ScopedModelDescendant(
builder: (BuildContext context, Widget child, MainModel model) {
return WillPopScope(
onWillPop: ()async{
return true;
},
child: Scaffold(
appBar: AppBar(
title: Text('Add User Info'),
),
body: Container(
padding: EdgeInsets.all(10.0),
child: _buildOrderForm(model),
),
),
);
},
);
}
答案 0 :(得分:0)
您已经在使用WillPopScope
了!但是,我发现您尚未正确实施的一件事是:
onWillPop: ()async{
return true;
},
您需要返回Future
中的false
才能禁用弹出的路由。在此处查看更多信息:
https://api.flutter.dev/flutter/widgets/WillPopScope/onWillPop.html
如果回调函数返回的Future解析为false,则包含 路线不会弹出。
这应该有效:
onWillPop: () => Future<bool>.value(false),
答案 1 :(得分:0)
小部件WillPopScope
的方法必须用作根用户
@override
Widget build(BuildContext context) {
return new WillPopScope(
onWillPop: _onBackPressed,
child: new Scaffold(
appBar: new AppBar(
title: new Text(
"On Back pressed",
style: new TextStyle(color: Colors.white),
),
),
body: new Center(
child: new Text("Home Page"),
),
),
);
}
在上面的代码段中,我们编写了一个_onBackPressed
方法。当您从移动硬件按钮上按回时,它将调用。