鸿蒙HarmonyOS 【ArkTS组件】 自定义事件拦截

📑往期推文全新看点(附带最新·鸿蒙全栈学习笔记)


 为组件提供自定义的事件拦截能力,开发者可根据事件在控件上按下时发生的位置,输入源等事件信息决定控件上的HitTestMode属性。

说明

从API Version 12开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

onTouchIntercept

onTouchIntercept(callback: Callback<TouchEvent, HitTestMode>)

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名参数类型必填参数描述
callbackCallback<TouchEvent, HitTestMode>给组件绑定自定义事件拦截回调,并使能在做触摸测试时回调此函数。

示例

该示例通过onTouchIntercept修改组件的HitTestMode属性。

  1. // xxx.ets
    @Entry
    @Component
    struct Index {
      isPolygon(event: TouchEvent) {
        return true;
      }
    
      build(){
        Row(){
          Column(){
            Text("hello world")
              .backgroundColor(Color.Blue)
              .fontSize(50)
              .fontWeight(FontWeight.Bold)
              .onClick(()=>{
                console.log("Text click");
              })
          }
          .width(400)
          .height(300)
          .backgroundColor(Color.Pink)
          .onClick(()=>{
            console.log("Column click");
          })
          // 调用onTouchIntercept修改该组件的HitTestMode属性
          .onTouchIntercept((event : TouchEvent) => {
            console.log("OnTouchIntercept + " + JSON.stringify(event));
            if (this.isPolygon(event)) {
              return HitTestMode.None
            }
            return HitTestMode.Default
          })
        }
        .width('100%')
      }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值