当前位置: 首页 > article >正文

HarmonyOS(72)事件拦截处理详解

事件拦截

  • 1、参考资料
  • 2、HitTestMode
  • 3、onTouchIntercept、onTouch、onClick事件执行顺序
    • 3.1、系统默认事件传递顺序
    • 3.2、子组件拦截事件

1、参考资料

  1. HarmonyOS(71) 自定义事件分发之TouchTestStrategy使用说明
  2. HarmonyOS(70) ArkUI 事件分发拦截,事件冲突解决方案
  3. HitTestMode
  4. android事件拦截处理机制详解
  5. HarmonyOS 自定义拦截事件官方文档

2、HitTestMode

在分析事件拦截之前,需要了解下UI组件的hitTestBehavior属性,该属性可以设置不同的触摸测试响应模式,影响组件的触摸测试收集结果,最终影响后续的触屏事件分发。hitTestBehavior属性的参数就是HitTestMode,它有四个类型:

  • Default: 默认触摸测试效果,自身和子节点都响应触摸测试,但会阻塞兄弟节点的触摸测试。不会影响祖先节点的触摸测试。
  • Block:自身响应触摸测试,阻塞子节点和兄弟节点的触摸测试。会阻塞祖先节点的触摸测试。
  • Transparent:自身和子节点都响应触摸测试,不会阻塞兄弟节点的触摸测试。不会影响祖先节点的触摸测试。
  • None: 自身不响应触摸测试,不会阻塞子节点和兄弟节点的触摸测试。不会影响祖先节点的触摸测试。

HitTestMode的具体效果可以移步 HarmonyOS(70) ArkUI 事件分发拦截,事件冲突解决方案一文了解更多。

3、onTouchIntercept、onTouch、onClick事件执行顺序

onTouchIntercept为组件提供自定义的事件拦截能力,开发者可根据事件在控件上按下时发生的位置,输入源等事件信息决定控件上的HitTestMode属性,来实现事件拦截的效果。
本文通过如下代码来测试HarmonyOS的事件处理机制,布局就是一个粉红色背景的Column里放置一个蓝色背景的Text,,且分别为ColumnText设置onTouchInterceptonTouchonClick

build() {
   
    Column() {
   
      Text("hello world")   
        .onClick(() => {
   
    

http://www.kler.cn/a/449962.html

相关文章:

  • 注意力机制详解
  • WebRTC服务质量(08)- 重传机制(05) RTX机制
  • Gin-vue-admin(1):环境配置和安装
  • 人工智能:人机交互和用户体验:相关学点、两者关系、未来趋势
  • LGMRec:结合局部与全局图学习的多模态推荐系统
  • 算法,递归和迭代
  • Certifying LLM Safety against Adversarial Prompting
  • 网络管理 详细讲解
  • 网络安全(一)主动攻击之DNS基础和ettercap实现DNS流量劫持
  • BOE(京东方)“向新2025”年终媒体智享会落地成都 持续创新引领产业步入高价值增长新纪元
  • MongoDB教程001:基本常用命令(数据库操作和集合操作)
  • 跨模态知识迁移:基于预训练语言模型的时序数据建模
  • WebRTC服务质量(08)- 重传机制(05) RTX机制
  • js按首字母分组和排序
  • 【华为OD-E卷-箱子之字形摆放 100分(python、java、c++、js、c)】
  • c# 后台任务自动执行
  • springboot476基于vue篮球联盟管理系统(论文+源码)_kaic
  • 【NLP高频面题 - Transformer篇】Transformer的位置编码是如何计算的?
  • 验证码机制
  • C/C++基础知识复习(43)
  • 库卡机器人维修A5轴力矩过大报警故障
  • vue预览和下载 pdf、ppt、word、excel文档,文件类型为链接或者base64格式或者文件流,
  • skyler实战渗透笔记(十)—IMF
  • python学opencv|读取图像(十七)认识alpha通道
  • 计算机基础复习12.23
  • TSN(时间敏感网络)介绍