【发布时间】:2020-02-04 14:20:01
【问题描述】:
我有一个警报对话框,我想在外部单击时将其关闭,我知道这是颤振中警报对话框的默认行为,但我不知道在外部单击时阻止它关闭的问题是什么.
我尝试将 barrierDismissable 设置为 true,但它仍然不起作用。
This is my dialog :
termsAndConditionsDialog(BuildContext context) {
AlertDialog alert = AlertDialog(
title: Text("Terms and Conditions", style: TextStyle(fontSize: 18, color: AppColors.accentColor),),
content: Text(
generalSettings.policyForCustomer,
style: TextStyle(fontSize: 16),
),
);
// show the dialog
showDialog(
barrierDismissible: true,
context: context,
builder: (BuildContext context) {
return alert;
},
);
}
and this is how I call it from button's onPressed :
termsAndConditionsDialog(context);
【问题讨论】:
-
您的代码是正确的,我尝试过,当我点击外部时对话框会消失。可以分享完整代码吗?
-
我认为问题是我在 MyApp 中有一个手势检测器,用于加载小部件,当我删除它时,一切正常,有没有办法可以保留手势检测器并且还可以关闭对话框?
builder: (BuildContext context, Widget child) { return GestureDetector( onTap: ()=>FocusScope.of(context).requestFocus(FocusNode()), child: LoadingProvider( child: Directionality(textDirection:TextDirection.rtl, child: child), )); },
标签: flutter dialog android-alertdialog flutter-layout flutter-alertdialog