当用户在手机上单击“后退”按钮时,我使用onWillPop
将用户导航到我的主屏幕,以下是代码的一部分:
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () {
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (BuildContext context) {
return HomeAssesmentScreen();
},
),
);
return Future.value(true);
},
child: Scaffold(
然而,问题是我不能点击后退按钮。后退按钮被禁用,我无法将用户导航到另一个屏幕。有没有办法重新激活后退按钮?
发布于 2020-10-02 15:31:32
您可以使用Navigator.of(context).pushReplacement()方法。这个方法只是用推送的MaterialPageRoute()替换页面堆栈上的当前页面。
如果需要后退按钮,请使用方法push()而不是pushReplacement()。
发布于 2020-10-02 18:47:46
这应该是可行的:可能你错过了异步/等待
Future<bool> _onWillPop() async {
await Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (BuildContext context) {
return HomeAssesmentScreen();
},
),
);
return true;
}
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: _onWillPop,
child: Scaffold(
https://stackoverflow.com/questions/64166408
复制相似问题