flutter 中 点击 showDialog 关闭按钮 不想执行Getx 的onClose() 方法
时间: 2024-02-29 08:52:00 浏览: 309
Flutter+getx+设置主题
在 Flutter 中,可以通过设置 `barrierDismissible` 属性来控制点击对话框外部和点击关闭按钮是否关闭对话框。如果将 `barrierDismissible` 属性设置为 `false`,那么用户就不能通过点击关闭按钮来关闭对话框,只能通过代码显式地关闭。
下面是一个示例:
```dart
showDialog(
context: context,
barrierDismissible: false, // 设置为 false,禁止点击对话框外部和点击关闭按钮关闭对话框
builder: (BuildContext context) {
return AlertDialog(
title: Text('提示'),
content: Text('确定要执行这个操作吗?'),
actions: <Widget>[
TextButton(
child: Text('取消'),
onPressed: () {
Navigator.of(context).pop();
},
),
TextButton(
child: Text('确定'),
onPressed: () {
// 执行一些操作
Navigator.of(context).pop();
},
),
],
);
},
);
```
在这个示例中,通过将 `barrierDismissible` 属性设置为 `false`,禁止了用户通过点击关闭按钮来关闭对话框。在执行完操作后,通过 `Navigator.of(context).pop()` 显式地关闭对话框。这样就避免了执行 `Getx` 的 `onClose()` 方法。
阅读全文