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中命中测试的基础流程和点击事件的处理机制。
➡️

继续阅读