HarmonyOS 鸿蒙Next CustomDialogController中autoCancel设置为true不生效
HarmonyOS 鸿蒙Next CustomDialogController中autoCancel设置为true不生效
设置为true后点击遮障层弹窗依旧被关闭
修改
dialogController: CustomDialogController | null = new CustomDialogController({
builder: CustomDialogExample({
cancel: ()=> { this.onCancel() },
confirm: ()=> { this.onAccept() }
}),
cancel: this.existApp,
autoCancel: false,
onWillDismiss:(dismissDialogAction: DismissDialogAction)=> {
console.info("reason=" + JSON.stringify(dismissDialogAction.reason))
console.log("dialog onWillDismiss")
if (dismissDialogAction.reason == DismissReason.PRESS_BACK) {
dismissDialogAction.dismiss()
}
if (dismissDialogAction.reason == DismissReason.TOUCH_OUTSIDE) {
dismissDialogAction.dismiss()
}
},
alignment: DialogAlignment.Center,
offset: { dx: 0, dy: -20 },
customStyle: false,
cornerRadius: 20,
width: 300,
height: 200,
borderWidth: 1,
borderStyle: BorderStyle.Dashed,//使用borderStyle属性,需要和borderWidth属性一起使用
borderColor: Color.Blue,//使用borderColor属性,需要和borderWidth属性一起使用
backgroundColor: Color.White,
shadow: ({ radius: 20, color: Color.Grey, offsetX: 50, offsetY: 0}),
})
经测试,可以实现
更多关于HarmonyOS 鸿蒙Next CustomDialogController中autoCancel设置为true不生效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙)系统中,Next CustomDialogController 的 autoCancel
属性通常用于控制对话框外的点击事件是否会自动取消对话框。如果你发现设置为 true
后该属性不生效,可能由以下几个原因引起:
-
事件拦截:检查对话框或其内部组件是否有拦截点击事件的情况,导致点击事件未能传递到对话框外部,从而无法触发自动取消逻辑。
-
属性设置时机:确保
autoCancel
属性是在对话框创建并显示之前正确设置的。如果在对话框已经显示后再设置该属性,可能不会生效。 -
系统或版本问题:某些鸿蒙系统的特定版本可能存在Bug,导致
autoCancel
属性无法正常工作。确认你使用的鸿蒙系统版本是否已知存在此类问题。 -
自定义实现:如果对话框是高度自定义的,可能需要手动处理点击外部区域时的取消逻辑,因为
autoCancel
可能不适用于所有自定义场景。
建议检查上述可能原因,并尝试调整代码或更新系统到最新版本。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。