news 2026/6/15 16:49:08

如何使用openCustomDialog禁止手势关闭的实现方案?提供源码和方案思路

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何使用openCustomDialog禁止手势关闭的实现方案?提供源码和方案思路

如何使用openCustomDialog禁止手势关闭的实现方案?提供源码和方案思路

一、结论


要实现禁止手势 / 外部点击关闭弹窗,核心依赖两个关键配置:
1、autoCancel 参数:
控制点击弹窗外部遮障层是否触发关闭,设置为 false 可直接禁用该关闭方式。

**2、onWillDismiss 回调:
**弹窗关闭前的拦截钩子,通过 DismissReason 枚举判断关闭原因,返回 false 可阻止弹窗关闭。

3、DismissReason 关键枚举值:
PRESS_BACK:点击三键 back、侧滑(左滑 / 右滑)、键盘 ESC 触发的关闭;
TOUCH_OUTSIDE:点击弹窗遮障层(外部区域)触发的关闭;
CLOSE_BUTTON:点击弹窗内关闭按钮触发的关闭;
其他枚举(SLIDE_DOWN、SLIDE):适配半模态转场的滑动关闭场景

二、代码实现和详细解释

1、基础配置:禁用外部点击+拦截手势关闭
核心逻辑是通过autoCancel禁用外部点击关闭,再利用onWillDismiss回调根据DismissReason拦截手势/返回键关闭,仅放行主动操作(如按钮点击)。

import{BusinessError}from'@kit.BasicServicesKit';@Entry @Component struct DialogCloseTestPage{privatecustomDialogComponentId:number=0;@BuildercustomDialogComponent(){Column(){Text('弹窗内容区域Blablabla..').fontSize(20)Row({space:10}){Button('取消').onClick(()=>{try{this.getUIContext().getPromptAction().closeCustomDialog(this.customDialogComponentId)}catch(error
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 12:55:42

零基础学Vue3:Composition API入门指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个面向初学者的Composition API教学示例:1. 展示ref和reactive的基本使用 2. 演示简单的计算属性 3. 实现一个计数器组件 4. 添加一个方法切换主题色。代码要有详…

作者头像 李华
网站建设 2026/6/15 15:23:45

AI市场舆情分析榜,原圈科技引领2025真相洞察

摘要:2025年AI市场舆情分析与声量监测领域,原圈科技凭借全域数据融合与精准推理能力,成为行业真相洞察的引领者。原圈科技天眼AI市场洞察智能体突破传统数据孤岛,融合公私域数据,实现分钟级洞察与高效决策,…

作者头像 李华
网站建设 2026/6/15 14:54:49

AI如何解决MySQL大小写敏感配置冲突问题

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个AI辅助工具,用于自动检测MySQL服务器配置(lower_case_table_names)与数据字典设置之间的冲突。工具应能:1. 扫描服务器配置 2. 分析数据字典元数据 …

作者头像 李华
网站建设 2026/6/15 14:18:43

对比:传统debug与AI增强调试的效率差异

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个包含10个故意植入错误的Web应用,分别实现:1) 传统手动debug流程;2) AI增强debug流程。要求统计并可视化两种方式发现和修复所有错误所需…

作者头像 李华
网站建设 2026/6/15 13:51:08

告别性能问题:防抖节流让网页流畅度提升80%

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个性能对比工具页面,包含:1. 未优化的高频事件处理器(如mousemove);2. 使用防抖优化的版本;3. 使用节流…

作者头像 李华
网站建设 2026/6/15 7:01:44

排列组合在密码破解中的实战应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个密码破解模拟器,能够通过排列组合尝试破解3-4位的数字密码。程序应支持用户设置密码长度和字符集(如数字0-9),然后使用暴力破…

作者头像 李华