当使用onWillPop时,"后退"按钮将被禁用,这种情况发生在应用程序的第一个版本中



当用户从手机上单击后退按钮时,我使用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(

然而,问题是我不能点击返回按钮。后退按钮被禁用,我无法将用户导航到另一个屏幕。有没有办法重新激活后退按钮?

使用Navigator.of(context(.pushReplacement((方法。这种方法只是用推送的MaterialPageRoute((替换页面堆栈上的当前页面。

如果需要返回按钮,请使用方法push((而不是pushReplacement((。

这应该可以工作:可能您错过了异步/等待

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(

相关内容

  • 没有找到相关文章

最新更新