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