flutter 中使用 Navigator.pop(context); 关闭showDialog 怎么还是触发了onClose()
时间: 2024-03-02 10:49:20 浏览: 21
如果您使用 `Navigator.pop(context)` 关闭 `showDialog` 仍然触发了 `onClose()`,则可能是因为您在 `GetMaterialApp` 中设置了 `defaultTransition` 或 `defaultPopGesture`,这会导致在关闭页面时触发 `onClose()` 方法。
为了避免这种情况,您可以尝试在关闭 `showDialog` 前,暂时禁用 `defaultTransition` 和 `defaultPopGesture`。具体代码如下:
```
Get.defaultPopGestureEnabled = false;
Get.defaultDialogTransition = DialogTransition.fade;
Navigator.pop(context);
Get.defaultPopGestureEnabled = true;
Get.defaultDialogTransition = DialogTransition.cupertino;
```
在这个例子中,我们将 `defaultPopGestureEnabled` 设置为 `false`,以禁用默认的返回手势。然后,我们将 `defaultDialogTransition` 设置为 `DialogTransition.fade`,这样在关闭 `showDialog` 时不会产生动画效果。最后,我们再将 `defaultPopGestureEnabled` 设置为 `true`,以启用默认的返回手势。同时,将 `defaultDialogTransition` 设置为 `DialogTransition.cupertino`,以恢复默认的过渡动画。
这样,在关闭 `showDialog` 时,就不会触发 `onClose()` 方法了。