Flutter AlertDialog中的错误
我关注show AlertDialog,但有两个错误:Flutter AlertDialog中的错误,flutter,flutter-layout,Flutter,Flutter Layout,我关注show AlertDialog,但有两个错误: 当点击远离对话框(不点击任何按钮而关闭屏障)时,获取运行时错误: 二,。子项:新建AlertDialog('子项已弃用,不应使用' 代码: Future\u exitApp(构建上下文){ 返回显示对话框( 上下文:上下文, 子:新建警报对话框( 标题:新文本('是否要退出此应用程序?'), 内容:新文本('我们讨厌看到你离开…'), 行动:[ 新扁平按钮( onPressed:()=>Navigator.of(context.pop)(f
Future\u exitApp(构建上下文){
返回显示对话框(
上下文:上下文,
子:新建警报对话框(
标题:新文本('是否要退出此应用程序?'),
内容:新文本('我们讨厌看到你离开…'),
行动:[
新扁平按钮(
onPressed:()=>Navigator.of(context.pop)(false),
子项:新文本(“否”),
),
新扁平按钮(
onPressed:()=>Navigator.of(context.pop)(true),
子项:新文本(“是”),
),
],
),
) ??
虚假的;
}
堆栈跟踪:
#0 ModalRoute.willPop (package:flutter/src/widgets/routes.dart)
<asynchronous suspension>
#1 NavigatorState.maybePop (package:flutter/src/widgets/navigator.dart:1783:57)
<asynchronous suspension>
#2 Navigator.maybePop (package:flutter/src/widgets/navigator.dart:1133:34)
#3 BackButton.build.<anonymous closure> (package:flutter/src/material/back_button.dart:91:19)
#4 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:507:14)
#5 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:562:30)
#6 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
#7 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:242:9)
#8 TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:204:7)
#9 GestureArenaManager.sweep (package:flutter/src/g<…>
#0 ModalRoute.willPop(包:flatter/src/widgets/routes.dart)
#1 NavigatorState.maybePop(包:flatter/src/widgets/navigator.dart:1783:57)
#2 Navigator.maybePop(包:flatter/src/widgets/Navigator.dart:1133:34)
#3 BackButton.build.(包:颤振/src/material/back_按钮。省道:91:19)
#4 InkResponseState.handleTap(包装:颤振/src/材料/InkWell.省道:507:14)
#5 _inkResponseEstate.build.(包装:颤振/src/material/ink_井。省道:562:30)
#6 GestureRecognizer.invokeCallback(包:flatter/src/signatures/recognizer.dart:102:24)
#7 TapGestureRecognitor.\u检查(软件包:颤振/src/手势/tap.省道:242:9)
#8 TapGestureRecognizer.AcceptSignature(包:颤振/src/手势/tap.dart:204:7)
#9 GestureArenaManager.sweep(包装:颤振/src/g
谢谢!使您的方法
异步
并使用等待
关键字:
Future<bool> _exitApp(BuildContext context) async {
return await showDialog( ...
“布尔表达式不能为null”没有足够的信息。堆栈跟踪显示了此异常的原因。@GünterZöchbauer Added
child
已被弃用-建议改用builder
。但没关系-我已经尝试了您的代码-一切正常。可能问题不在\u exitApp
方法中?@Andreyturkovsky感谢您的回复!请尝试点击远离对话框(对话框以外的任何地方)。这会导致dart错误谢谢!原因是什么?如果您检查showDialog的代码,它将返回未来,因此您必须将方法标记为async,并使用wait等待,直到收到对话框的响应。如果您不等待,您将返回null。
#0 ModalRoute.willPop (package:flutter/src/widgets/routes.dart)
<asynchronous suspension>
#1 NavigatorState.maybePop (package:flutter/src/widgets/navigator.dart:1783:57)
<asynchronous suspension>
#2 Navigator.maybePop (package:flutter/src/widgets/navigator.dart:1133:34)
#3 BackButton.build.<anonymous closure> (package:flutter/src/material/back_button.dart:91:19)
#4 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:507:14)
#5 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:562:30)
#6 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
#7 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:242:9)
#8 TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:204:7)
#9 GestureArenaManager.sweep (package:flutter/src/g<…>
Future<bool> _exitApp(BuildContext context) async {
return await showDialog( ...
showDialog(barrierDismissible: false, ...