- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个AlertDialog,当转到新屏幕时会立即出现。它具有BACK和GO按钮。仅在用户按GO时关闭AlertDialog时,我需要保留在此屏幕中。如果用户按BACK按钮或BACK Android Button,则需要转到上一个屏幕,而不要保留在当前屏幕中。
当我关闭AlertDialog时,如果可以,则使用Navigator.pop(context,false),如果使用BACK,则使用boolean返回类型,如果使用BACK,则使用boo。返回返回上一个屏幕。
@override
void initState() {
super.initState();
SchedulerBinding.instance.addPostFrameCallback(
(_) => _showDialog().then((isScreenToPop) {
//ERROR: Unhandled Exception: Failed assertion: boolean expression must not be null
if (isScreenToPop) {
Navigator.pop(context);
} else {
setState(() {});
}
}),
);
}
Future<bool> _showADialog() {
return showDialog(
context: context,
barrierDismissible: false,
builder: (_) {
return WillPopScope(
onWillPop: () async {
//THIS RETURN NULL AND NOT Future<true>
return Future.value(true);
},
child: StatefulBuilder(
builder: (context, setState) {
return AlertDialog(
actions: <Widget>[
FlatButton(
child: Text('BACK'),
onPressed: () {
Navigator.pop<bool>(context, true);
},
),
FlatButton(
child: Text('OK'),
onPressed: () {
Navigator.pop<bool>(context, false);
},
),
],
);
},
),
);
},
);
}
if (isScreenToPop == null || isScreenToPop) {
Navigator.pop(context);
} else {
setState(() {});
}
最佳答案
只返回true
而不是Future.value(true)
。当您使用async
时,返回值将自 Action 为Future
返回。
另外,如果您需要多次使用pop
,请查看其他pop
函数,例如popUntil
。
关于android - Flutter-SchedulerBinding,showDialoag,AlertDialog和WillPopScope的问题组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62438720/
在我的主页小部件上,当用户点击系统后退按钮时,它会通过 WillPopScope 显示一个确认对话框小部件。 我想测试这个对话框,但我不知道如何按下测试文件上的后退按钮。 最佳答案 我遇到了同样的问题
我有带有嵌套导航器的 Flutter 应用程序,我想使用 WillPopScope 覆盖“onBackPressed”在我的嵌套屏幕中。 假设我有 MainScreen , PrimaryScreen
我遵循了这个clean navigation in flutter来实现实际的导航,因为我不得不用 MaterialApp( home: Home(), routes:{...} ) 不会
如果我使用 WillPopScope 用新路由覆盖 BackButton 行为,它工作正常。但是在 iOS 上,自动的“SwipeBack”手势不再起作用。如何在 iOS 上设置 SwipeBack
在我的应用程序中,我有一个 WillPopScope 小部件包装根脚手架,以防止用户意外退出应用程序。此外,我在 Scaffold 内有一个带有搜索按钮的应用栏,单击该按钮时将在应用栏中显示搜索输入(
我创建了两个页面,一个是登录页面和主页,但我想从主页关闭应用程序,我正在使用 Willpopscope但它对我不起作用我已经尝试了所有方法,但 onwillpop方法不调用请帮帮我谢谢。 class
WillPopScope的回调没有在我预期的时候被触发。我如何使用 WillPopScope里面Navigator所以一条路线可以处理它自己的背压行为。 我正在学习使用 flutter ,我遇到了 N
在我的 flutter 应用程序中,我想控制 IOS 的弹出范围,但它不起作用。我没有像建议的一些示例那样使用 PageRoute 和 CupertinoWillPopScope包无法正常工作,它会抛
我想退出我的应用程序。我已经实现了一个 WillPopScope,但看起来根本没有调用 onWillPop 函数。我尝试了很多想法,例如将 WillPopScope 与 Scaffold 交换,更改函
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and t
作为 flutter source code书面。设置onWillPop方法后,滑动效果关闭。 static bool _isPopGestureEnabled(PageRoute route) {
我有一个带有 BottomNavigationBar 和一个显示选项卡内容的 IndexedStack 的应用程序。每个选项卡都有自己的 Router 和自己的 RouterDelegate 来模仿
在我的应用程序中,我想要自定义导航(仅更改屏幕的一部分并保留我在其中所做操作的历史记录)。为此,我使用了 Navigator,它可以很好地进行简单导航。但是,我想处理 Android 的后退按钮。Fl
我用的是 WillPopScope 尝试阻止路由弹出: WillPopScope( onWillPop: () async { print('This is never called');
在 Navigator.pop(context) 之后使用 return Future.value(false); 是正确的方法。 如果我使用Navigator.pop(context, false)
我是一名优秀的程序员,十分优秀!