news 2026/7/8 10:14:35

如何使用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/7/8 6:33:44

Gemini 3 + Nano Banana Pro 正在终结“平民美学”的幻觉

在人类文明的历史长河中,美学权力的每一次变迁都伴随着资源的重新分配。从教会对艺术的垄断,到工业时代对设计的普及,我们曾天真地以为,随着 AI 技术的爆发,人类将迎来一个“美学大同”的乌托邦。 然而,20…

作者头像 李华
网站建设 2026/7/8 6:34:09

3分钟用软连接搭建开发环境原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个快速环境配置脚本,使用Linux软连接搭建开发环境原型。功能包括:1. 一键创建常用工具软连接 2. 设置项目目录结构 3. 配置开发环境快捷方式 4. 初始化…

作者头像 李华
网站建设 2026/7/8 7:37:22

1小时搞定:用快马快速验证防抖节流方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速构建一个防抖节流方案验证平台,包含:1. 可配置参数的防抖/节流函数生成器;2. 多种测试场景模拟(输入、滚动、点击等)…

作者头像 李华
网站建设 2026/7/8 7:39:39

BEMD分解效果示例](https://example.com/bemd_demo.png

二维经验模式分解(BEMD)算法在图像上的应用Matlab实现代码质量极高,方便学习和修改数据使用。(假装这里有张图,实际写代码的时候自己生成吧)图像处理领域总有些怪东西让人又爱又恨,二维经验模态分解(BEMD)就是其中之一…

作者头像 李华
网站建设 2026/7/7 18:49:49

CatBoost实战:AI如何优化你的机器学习模型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个使用CatBoost进行二分类任务的Python项目。项目应包含数据预处理(处理分类特征)、模型训练、评估和可视化结果的功能。使用InsCode平台内置的AI助手…

作者头像 李华