ArkUI Engine – 命中测试与点击事件回调注册
💡
原文中文,约16600字,阅读约需40分钟。
📝
内容提要
本文介绍了ArkUI中的命中测试流程,包括TouchTest方法和事件分发过程。TouchTest方法判断RenderNode是否能响应点击事件,然后根据Z轴排序调用子RenderNode的TouchTest方法。点击事件由window进行分发,每个RenderNode判断自身是否能响应点击事件,并将点击事件分发给子RenderNode。点击事件的处理通过ClickRecognizer类实现,可以注册点击事件回调。最后,文章提到了ArkUI中的点击事件绑定和触发过程。
🎯
关键要点
- 本文介绍了ArkUI中的命中测试流程,包括TouchTest方法和事件分发过程。
- TouchTest方法判断RenderNode是否能响应点击事件,并调用子RenderNode的TouchTest方法。
- 点击事件由window进行分发,每个RenderNode判断自身是否能响应点击事件。
- 点击事件的处理通过ClickRecognizer类实现,可以注册点击事件回调。
- RenderNode的TouchTest方法判断自身是否能响应点击事件,并分发事件给子RenderNode。
- HitTestMode定义了RenderNode如何响应点击事件,包括四种模式:HTMDEFAULT、HTMBLOCK、HTMTRANSPARENT和HTMNONE。
- OnTouchTestHit方法用于将RenderNode的点击事件加入到TouchTestResult中。
- ClickRecognizer类封装了点击事件的回调和处理流程。
- ArkUI的点击事件流程包括绑定过程与触发过程,通过FocusNode类贯穿全体。
- 绑定过程涉及将点击事件注册到组件上,确保组件可获取焦点。
- 触发过程通过PipelineContext进行事件分发,最终调用FocusNode的点击事件回调。
- 本文总结了ArkUI中命中测试的基础流程和点击事件的处理机制。
➡️