news 2026/4/18 0:23:05

如何使用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/4/17 12:55:25

电商秒杀系统实战:Redisson分布式锁的最佳实践

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个电商秒杀场景下的Redisson分布式锁应用示例。要求:1. 模拟商品库存扣减场景 2. 实现不同粒度的锁控制(商品ID级别和用户ID级别) 3. 处理…

作者头像 李华
网站建设 2026/4/18 8:18:03

华为登顶全球腕戴市场,智能手表行业主数据管理解析

12月17日,国际权威市场研究机构IDC发布了最新一期《全球可穿戴设备市场季度跟踪报告》。数据显示,华为在2025年前三季度以显著优势稳居全球腕戴设备出货量榜首,不仅在中国市场出货量高达2080万台、同比增长27%,更在全球范围内持续…

作者头像 李华
网站建设 2026/4/18 5:39:42

Spring Boot 集成分析

1. 工程结构概览Spring AI 通过 Spring Boot Starter 和 Auto Configuration 机制,实现了零配置的 AI 应用开发。开发者只需要添加依赖和配置属性,就能使用各种 AI 能力。spring-ai-spring-boot-starters/ # Starter 模块├── spring-ai-starter-model…

作者头像 李华
网站建设 2026/4/18 7:42:00

4、命令行解析与扩展及变量相关知识详解

命令行解析与扩展及变量相关知识详解 1. 命令行解析与扩展 在命令行操作中,有多种解析和扩展机制,这些机制能极大地提高操作效率和灵活性。 1.1 引号内参数换行 引号内的参数可以包含换行符。例如: $ sa "Argument containing ⏎ > a newline" :Argument…

作者头像 李华
网站建设 2026/4/18 8:40:20

15分钟用Composition API打造TodoList原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速开发一个Todo应用原型,使用Vue3 Composition API实现:1. 添加/删除任务 2. 标记完成状态 3. 筛选不同状态任务 4. 本地存储数据 5. 响应式UI交互。要求使…

作者头像 李华
网站建设 2026/4/18 10:07:24

数字人的核心应用场景有哪些?2025全景解析

如果用一句话概括2025年的数字人,它已经不再是“虚拟形象”,而是正在被越来越多企业使用的“AI 助手与内容生产力工具”。无论是短视频平台、跨境电商直播间、文旅场馆还是政企服务大厅,都能看到数字人的身影。随着大模型、多模态渲染、实时语…

作者头像 李华