flutter getx 点击关闭弹窗按钮不想触发onClose() 需要怎么做
时间: 2024-02-29 15:51:51 浏览: 245
如果你使用的是Get库中的Dialog或BottomSheet组件,那么可以在调用它们的时候,传入一个`barrierDismissible`参数,并将它的值设置为false。这样当用户点击弹窗外面的空白区域或按下返回键时,弹窗就不会自动关闭了。
示例代码如下:
```
Get.dialog(
YourDialogWidget(),
barrierDismissible: false, // 禁止点击外部关闭弹窗
);
```
如果你使用的是自定义的弹窗组件,那么可以在关闭按钮的回调函数中,手动调用`Navigator.pop(context)`方法来关闭弹窗,而不是使用`onClose()`方法。这样就可以避免触发`onClose()`方法了。
示例代码如下:
```
class YourCustomDialog extends StatelessWidget {
@override
Widget build(BuildContext context) {
return AlertDialog(
title: Text('提示'),
content: Text('确定要关闭弹窗吗?'),
actions: [
FlatButton(
child: Text('取消'),
onPressed: () {
Navigator.pop(context); // 手动关闭弹窗
},
),
FlatButton(
child: Text('确定'),
onPressed: () {
// do something
},
),
],
);
}
}
```
阅读全文