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

    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(组件可见区域变化事件)

    • •

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

相关推荐
李游Leo1 小时前
HarmonyOS 7 + ArkTS-HUKS:精准碰一碰载荷的签名校验与重放窗口【鸿蒙心迹】
华为·harmonyos
花花_11 小时前
HarmonyOS 7 状态手记 01|页面状态别乱放
华为·harmonyos
李游Leo2 小时前
HarmonyOS 7 AVSession + Float Window:闪控窗播放控制权的会话移交与重复指令去重【鸿蒙心迹】
华为·harmonyos
李游Leo2 小时前
HarmonyOS 7 + ArkTS-UDMF:精准碰一碰载荷的协议版本协商与字段降级【鸿蒙心迹】
华为·harmonyos
李游Leo4 小时前
HarmonyOS 7 + Core Vision Kit-TaskPool:文搜图相似度阈值分桶与硬负样本回流【鸿蒙心迹】
华为·harmonyos
李游Leo4 小时前
HarmonyOS 7 EasyGo + ArkUI Navigation:平行视界导航模式的列表选中态、右栏路由栈与全局返回收口【鸿蒙心迹】
华为·harmonyos
李游Leo4 小时前
HarmonyOS 7 + ArkUI Accessibility:闪控窗紧凑态的语义树裁剪与读屏焦点收敛【鸿蒙心迹】
华为·harmonyos
李游Leo5 小时前
HarmonyOS 7 ArkUI Navigation + WindowStage:折叠屏窗口宽度驱动的单双栏切换与草稿状态保持【鸿蒙心迹】
华为·harmonyos
翼辉cto5 小时前
otlinx-datetime 官方 KMP 日期时间库的 OpenHarmony 鸿蒙化适配实战
华为·harmonyos
m0_738185825 小时前
Flutter 鸿蒙化实战:flutter_iot_wifi 适配 OpenHarmony,IoT 设备 WiFi 配网
物联网·flutter·华为·harmonyos·鸿蒙