鸿蒙通用事件(事件分发、事件拦截等)

    onTouch(触摸事件)

    • •

      手指触摸动作触发该回调。鸿蒙的onTouch事件是从里到外冒泡传递,和Android从外到里分发机制完全相反。

    • •

      TouchEvent.stopPropagation:阻止冒泡事件。

    • •

      场景:可以实现内部拦截法,进行事件拦截外部事件的onTouch事件处理,外部事件的onClick事件扔可以响应,如果需要拦截外部所有事件,使用onTouchIntercept。

    • •

      番外:外部拦截法通过设置外部组件的hitTestBehavior。hitTestBehavior优先级大于一切,因为触摸测试阶段会从外到内收集可触摸组件,如果外层设置hitTestMode拦截内层组件之后,内层组件不会被收集。

    onClick(点击事件)

    拖拽事件

    • •

      默认支持拖出能力的组件(可从组件上拖出数据):Search、TextInput、TextArea、RichEditor、Text、Image、Hyperlink,开发者可通过设置组件draggable属性来控制对默认拖拽能力。

    • •

      默认支持拖入能力的组件(目标组件可响应拖入数据):Search、TextInput、TextArea、RichEditor,开发者可通过设置组件的allowDrop属性为null来禁止对默认拖入能力的支持。

    • •

      onDragStart:优先执行此方法,开始拖拽,可以获取拖拽数据。

    • •

      onDragEnter:拖拽进入组件范围内,触发回调,当监听了onDrop事件时,此事件才有效。

    • •

      onDragMove:拖拽在组件范围内移动时,触发回调,当监听了onDrop事件,此事件才有效。

    • •

      onDragLeave:拖拽离开组件范围内时,触发回调,当监听了onDrop事件,此事件才有效。

    • •

      onDrop:绑定此事件的组件可作为释放目标。当在本组件范围内停止拖放行为时,触发回调,可用来接收拖入目标的信息。

    • •

      onDragEnd:拖拽结束,触发回调。

    焦点事件

    • •

      onFocus:当前组件获取焦点时触发的回调。

    • •

      onBlur:当前组件失去焦点时触发的回调。

    onTouchIntercept(自定义事件拦截)

    • •

      为组件提供自定义的事件拦截能力,可通过返回HitTestMode属性来设置拦截能力。

    • •

      场景配合ouTouch进行内部拦截。

    onChildTouchTest(触摸测试阶段,自定义事件分发)

    • •

      当前组件设置回调,可自定义触摸测试并控制触摸测试中子节点行为。

    • •

      通过TouchTestStrategy分发策略返回具体是否分发到子节点。
      --javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

      复制代码
      .onChildTouchTest((touchInfo) => {
            for (let info of touchInfo) {
              if (info.id == 'MyList') {
                return { id: info.id, strategy: TouchTestStrategy.FORWARD_COMPETITION }
              }
            }
            return { strategy: TouchTestStrategy.DEFAULT }
          })

    挂载卸载事件

    • •

      onAttach:组件挂在到组件树时触发,回调在组件渲染前触发,推荐使用onAppear。

    • •

      onDetach:组件从组件数卸载时触发,推荐使用onDisAppear。

    • •

      onAppear:组件挂在后触发回调,回调时机有可能在渲染后。

    • •

      onDisAppear:组件从组件树卸载时触发此回调。

    onAreaChange(组件区域变化事件)

    • •

      组件区域变化时触发该回调。仅会响应由布局变化所导致的组件大小、位置发生变化时的回调。

    onSizeChange(组件尺寸变化事件)

    • •

      组件区域变化时触发该回调。仅会响应由布局变化所导致的组件尺寸发生变化时的回调。

    onVisibleAreaChange(组件可见区域变化事件)

    • •

      组件可见区域变化时触发该回调。

相关推荐
贾伟康10 小时前
HarmonyOS API 26 DevEco Code 需求到 ArkTS 骨架的提示词分层
harmonyos·arkts·ai coding·deveco code·工程提效
贾伟康16 小时前
HarmonyOS API 26 HMAF Skill 可解释任务计划与失败回退
harmonyos·arkts·智能体·skill·hmaf
贾伟康16 小时前
HarmonyOS API 26 HMAF 2.0 意图解析的可解释动作图
harmonyos·arkts·智能体·a2a·hmaf
KevinChaos18 小时前
阳台小花园开发手记 03|HarmonyOS 7.0 互动卡片:叶片伸出边框仍与花盆对齐
华为·harmonyos
熬夜磕代码丶19 小时前
RN鸿蒙空间音频实战
华为·音视频·harmonyos
行者-全栈开发19 小时前
【鸿蒙心迹】通知与推送集成——emitter 本地通知与推送服务全链路(HarmonyOS 7.x)
华为·harmonyos
Nerd(BUG版)20 小时前
鸿蒙API18~26新增V2组件全解析
microsoft·华为·harmonyos
贾伟康20 小时前
HarmonyOS API 26 Navigation 菜单项刷新态:stale 数据、重试与一致性
harmonyos·arkts·arkui·navigation·多设备
Felven20 小时前
华为鲲鹏920s芯片serdestool工具使用说明
linux·运维·服务器·华为·鲲鹏920·serdestool
c2892480843s1 天前
【鸿蒙心迹】网络请求封装实战:RCP 选型、拦截器与弱网预算
移动开发·网络请求·harmonyos·鸿蒙·rcp