HarmonyOS 鸿蒙Next通过AlertDialog.show()展示的弹窗如何手动关闭?

发布于 1周前 作者 h691938207 来自 鸿蒙OS

HarmonyOS 鸿蒙Next通过AlertDialog.show()展示的弹窗如何手动关闭?

目前看到AlertDialog没有支持Controller参数,不通过用户点击如何关闭这种弹窗

7 回复
真服了,这鸿蒙开发照着Android的AlertDialog开发都能把dismiss给漏下!!!
定义一个方法
cancel() {
setTimeout(() => {
this.controller.close()
}, anmDuration)
};
AlertDialog.show({
cancel: () => { setTimeout(() => { }, 2000) }
})



eventhub发个消息通知关闭

发个啥消息能通知到他关闭

你要接收这条消息处理关闭逻辑

啥?我问的是调用那个系统方法能把AlertDialog.show()出来的弹窗关闭掉,与消息有啥关系。现在没有API能把这个弹窗关闭,只能用户手动关闭。例如有些时候我需要自动的把这个弹窗关闭掉,现在无法做到,只能自定义弹窗。

在HarmonyOS中,如果你使用AlertDialog并通过show()方法显示弹窗,通常关闭弹窗的方式依赖于弹窗内部定义的按钮行为。如果你需要手动关闭弹窗(例如,在某些特定条件下),你可以通过调用AlertDialog实例的cancel()dismiss()方法来实现。这两个方法都可以用来关闭弹窗,但cancel()方法会触发DialogInterface.OnCancelListener(如果设置了的话),而dismiss()则不会。

示例代码:

AlertDialog dialog = ...; // 假设这是你创建的AlertDialog实例
dialog.show(); // 显示弹窗
// 当需要关闭时
dialog.cancel(); // 或 dialog.dismiss();

如果问题依旧没法解决请加我微信,我的微信是itying888
回到顶部