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

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.lryc.cn/news/507542.html

相关文章:

  • docker(wsl)命令 帮助文档
  • nginx 拦截指定ip访问指定 url
  • git仓库的基本概念和流程以及一些基本命令
  • Intel-ECI之Codesys PLC + Ethercat 远端IO + Codesys IDE编程
  • 互联网医院系统,互联网医院系统源码可供
  • Marin说PCB之POC电路layout设计仿真案例---06
  • windwos defender实现白名单效果(除了指定应用或端口其它一律禁止)禁止服务器上网
  • Fiddler勾选https后google浏览器网页访问不可用
  • 机器视觉检测相机基础知识 | 颜色 | 光源 | 镜头 | 分辨率 / 精度 / 公差
  • 解决pytorch安装中的三个错误
  • 用Python开发高级游戏:实现3D迷宫游戏
  • 基于 uniapp 开发 android 播放 webrtc 流
  • Unity引擎学习总结------动画控件
  • Pytorch | 从零构建GoogleNet对CIFAR10进行分类
  • 基于SIFT的目标识别算法
  • 计算机组成原理的学习笔记(4)--数据的表示与运算·其三 补码的乘法以及原码补码的除法
  • 压缩glb模型文件
  • vertx idea快速使用
  • 如何创建属于自己的大语言模型:从零开始的指南
  • debian linux 连网自动调整时间 (报错 Unit systemd-timesyncd.service could not be found.)
  • 监控易在汽车制造行业信息化运维中的应用案例
  • es使用knn向量检索中numCandidates和k应该如何配比更合适
  • 推挽输出和开漏输出
  • Cesium引入天地图、高德、百度地图
  • windows自带16进制转10进制
  • Redis应用—9.简单应用汇总
  • powershell基础(1)
  • 【NLP 18、新词发现和TF·IDF】
  • C# 从控制台应用程序入门
  • 怿星科技联合赛力斯举办workshop活动,进一步推动双方合作