鸿蒙HarmonyOS(ArkTS组件) 点击事件

组件被点击时触发的事件。

说明

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

onClick12+

onClick(event: Callback<ClickEvent>, distanceThreshold: number): T

点击动作触发该回调。

相较于原有onClick接口,新增distanceThreshold参数作为点击事件移动阈值,当手指的移动距离超出所设置的点击手势移动阈值时,点击手势识别失败。

对于点击时手指移动距离没有限制的场景,建议采用原有接口。若要求点击时手指在一定区域范围内,建议使用该接口。

卡片能力: 从API version 12开始,该接口支持在ArkTS卡片中使用。

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

说明

从API version 12开始,在使用卡片能力时,存在以下限制:

  1. 手指按下超过800ms后,不能触发点击事件。
  2. 手指按下之后移动位移超过20px,不能触发点击事件。

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

参数:

参数名类型必填说明
eventClickEvent获得ClickEvent对象。
distanceThresholdnumber

点击事件移动阈值。当设置的值小于等于0时,会被转化为默认值。

默认值:2^31-1

说明:

当手指的移动距离超出开发者预设的移动阈值时,点击识别失败。如果初始化为默认阈值时,手指移动超过组件热区范围,点击识别失败。

onClick

onClick(event: (event: ClickEvent) => void): T

点击动作触发该回调。

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

说明

从API version 9开始,在使用卡片能力时,存在以下限制:

  1. 手指按下超过800ms后,不能触发点击事件。
  2. 手指按下之后移动位移超过20px,不能触发点击事件。

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

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

参数:

参数名类型必填说明
eventClickEvent获得ClickEvent对象。

返回值:

类型说明
T返回当前组件。

ClickEvent对象说明

继承于BaseEvent。

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

名称类型描述
xnumber

点击位置相对于被点击元素左边缘的X坐标。

单位:vp

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

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

ynumber

点击位置相对于被点击元素原始区域左上角的Y坐标。

单位:vp

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

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

target8+EventTarget

触发事件的元素对象显示区域。

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

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

windowX10+number

点击位置相对于应用窗口左上角的X坐标。

单位:vp

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

windowY10+number

点击位置相对于应用窗口左上角的Y坐标。

单位:vp

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

displayX10+number

点击位置相对于应用屏幕左上角的X坐标。

单位:vp

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

displayY10+number

点击位置相对于应用屏幕左上角的Y坐标。

单位:vp

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

screenX(deprecated)number

点击位置相对于应用窗口左上角的X坐标。

从API Version 10开始不再维护,建议使用windowX代替。

screenY(deprecated)number

点击位置相对于应用窗口左上角的Y坐标。

从API Version 10开始不再维护,建议使用windowY代替。

preventDefault12+() => void

阻止默认事件。

说明: 该接口仅支持部分组件使用,当前支持组件:RichEditor。

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

EventTarget8+对象说明

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

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

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

名称参数类型描述
areaArea目标元素的区域信息。

示例

该示例通过按钮设置了点击事件,点击按钮可获取点击事件的相关参数。

  1. // xxx.ets
    @Entry
    @Component
    struct ClickExample {
      @State text: string = ''
    
      build() {
        Column() {
          Row({ space: 20 }) {
            Button('Click').width(100).height(40)
              .onClick((event?: ClickEvent) => {
                if(event){
                  this.text = 'Click Point:' + '\n  windowX:' + event.windowX + '\n  windowY:' + event.windowY
                  + '\n  x:' + event.x + '\n  y:' + event.y + '\ntarget:' + '\n  component globalPos:('
                  + event.target.area.globalPosition.x + ',' + event.target.area.globalPosition.y + ')\n  width:'
                  + event.target.area.width + '\n  height:' + event.target.area.height + '\ntimestamp' + event.timestamp;
                }
              }, 20)
            Button('Click').width(200).height(50)
              .onClick((event?: ClickEvent) => {
                if(event){
                  this.text = 'Click Point:' + '\n  windowX:' + event.windowX + '\n  windowY:' + event.windowY
                  + '\n  x:' + event.x + '\n  y:' + event.y + '\ntarget:' + '\n  component globalPos:('
                  + event.target.area.globalPosition.x + ',' + event.target.area.globalPosition.y + ')\n  width:'
                  + event.target.area.width + '\n  height:' + event.target.area.height + '\ntimestamp' + event.timestamp;
                }
              }, 20)
          }.margin(20)
    
          Text(this.text).margin(15)
        }.width('100%')
      }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值