HarmonyOS 鸿蒙Next 左右滑禁止关闭弹框,如何实现
HarmonyOS 鸿蒙Next 左右滑禁止关闭弹框,如何实现 现在打开弹框,之后使用左滑退出操作,会关闭弹框,通过onPressBack拦截不生效,怎么实现不退出弹框呢
弹窗有个属性,通过加上下面代码即可左右划不关闭弹窗。(点赞我)
onWillDismiss: (dismissDialogAction: DismissDialogAction) => {
if (dismissDialogAction.reason !== DismissReason.PRESS_BACK) {
dismissDialogAction.dismiss()
}
}
更多关于HarmonyOS 鸿蒙Next 左右滑禁止关闭弹框,如何实现的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
api12中新增了onWillDismiss方法:
-
当用户执行点击遮障层关闭、左滑/右滑、三键back、键盘ESC关闭交互操作时,如果注册该回调函数,则不会立刻关闭弹窗。在回调函数中可以通过reason得到阻拦关闭弹窗的操作类型,从而根据原因选择是否能关闭弹窗。当前组件返回的reason中,暂不支持CLOSE_BUTTON的枚举值。
-
在onWillDismiss回调中,不能再做onWillDismiss拦截。
可参考以下文档:
具体可以参考:
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() -- 打开就是执行关闭弹窗操作,注释掉就是不执行
}
}
在HarmonyOS(鸿蒙)系统中,若要实现左右滑动禁止关闭弹框的功能,可以通过自定义弹框组件并处理滑动事件来实现。以下是一个简要的实现思路:
-
自定义弹框组件:创建一个自定义的Dialog或弹窗组件,用于显示需要禁止左右滑动关闭的内容。
-
拦截滑动事件:在自定义弹框组件中重写触摸事件处理方法(如
onTouchEvent
),检测并拦截左右滑动的手势。可以通过判断滑动方向,如果不符合关闭条件(即左右滑动),则不执行关闭逻辑。 -
设置弹框属性:确保弹框的属性设置允许自定义触摸事件处理,而不是使用系统默认的滑动关闭行为。
-
展示弹框:在需要显示弹框的地方,实例化并展示这个自定义弹框组件。
具体实现时,可能需要深入了解HarmonyOS的UI框架和事件处理机制。由于鸿蒙系统的API和组件可能与Android或iOS有所不同,因此建议查阅鸿蒙系统的官方文档或示例代码,了解如何正确创建和自定义组件,以及如何处理触摸事件。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html