Flutter 使用onWillPop时,“后退”按钮将被禁用,并在应用程序的第一次构建中发生
当用户从手机上单击后退按钮时,我使用Flutter 使用onWillPop时,“后退”按钮将被禁用,并在应用程序的第一次构建中发生,flutter,dart,navigation,navigator,Flutter,Dart,Navigation,Navigator,当用户从手机上单击后退按钮时,我使用onWillPop将用户导航到我的主屏幕,以下是部分代码: @override Widget build(BuildContext context) { return WillPopScope( onWillPop: () { Navigator.of(context).pushReplacement( MaterialPageRoute( builder: (BuildCon
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()方法。
此方法仅将页面堆栈上的当前页面替换为推送的MaterialPage()
如果需要后退按钮,请使用方法push()而不是pushReplacement()。您可以使用Navigator.of(context).pushReplacement()方法。
此方法仅将页面堆栈上的当前页面替换为推送的MaterialPage()
如果需要后退按钮,请使用方法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(
Future\u onWillPop()异步{
等待Navigator.of(context.pushReplacement)(
材料路线(
生成器:(BuildContext上下文){
返回HomeAssessmentScreen();
},
),
);
返回true;
}
小部件构建(构建上下文){
返回式示波器(
onWillPop:_onWillPop,
孩子:脚手架(
这应该可以:
可能您错过了异步/等待
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(
Future\u onWillPop()异步{
等待Navigator.of(context.pushReplacement)(
材料路线(
生成器:(BuildContext上下文){
返回HomeAssessmentScreen();
},
),
);
返回true;
}
小部件构建(构建上下文){
返回式示波器(
onWillPop:_onWillPop,
孩子:脚手架(
这应该行得通,我在上面的代码中没有发现任何应该禁用back button的问题back button是禁用的,因为您的堆栈中没有任何屏幕…当您按下屏幕时,您可以将其弹出,并且在弹出之前调用您的函数。Hi@jitsm555,Mohandsr…我不知道当时发生了什么,但当我从我的屏幕上一直单击back按钮时手机…之前它不会引导我进入屏幕…这只发生在我的应用程序的第一次构建中,在我关闭应用程序并重新打开应用程序后,我可以使用手机上的“后退”按钮这应该可以工作,我在上面的代码中没有发现任何问题,应该禁用“后退”按钮“后退”按钮是禁用的,因为堆栈中没有任何屏幕…当你按下一个屏幕,你可以弹出它,在弹出之前调用你的函数。嗨@jitsm555,mohandesR…我不知道当时发生了什么,但当我一直从手机上单击后退按钮时…它不会引导我进入屏幕…这只会发生在我的应用程序的第一个版本中,在我关闭应用程序并重新打开应用程序后,我可以使用back butt从我的手机上