> 文档中心 > HarmonyOS/OpenHarmony应用开发-ArkTS触摸事件onTouch

HarmonyOS/OpenHarmony应用开发-ArkTS触摸事件onTouch

一、示例效果图片

 

 

 

二、事件

当手指在组件上按下、滑动、抬起时触发。(api7开始支持)

名称

是否冒泡

功能描述

onTouch(event: (event?: TouchEvent) => void)

触摸动作触发该方法调用,event参数见TouchEvent介绍。

三、说明

TouchEvent对象说明:

名称

类型

描述

type

TouchType

触摸事件的类型。

touches

Array

全部手指信息。

changedTouches

Array

当前发生变化的手指信息。

stopPropagation

() => void

阻塞事件冒泡。

timestamp8+

number

事件时间戳。

target8+

EventTarget

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

source8+

SourceType

事件输入设备。

TouchObject对象说明:

名称

类型

描述

type

TouchType

触摸事件的类型。

id

number

手指唯一标识符。

screenX

number

触摸点相对于设备屏幕左边沿的X坐标。

screenY

number

触摸点相对于设备屏幕上边沿的Y坐标。

x

number

触摸点相对于被触摸元素左边沿的X坐标。

y

number

触摸点相对于被触摸元素上边沿的Y坐标。

四、示例代码

 

Touch.ets

@Componentexport default struct Touch {  @State text: string = '';  @State eventType: string = '';  build() {    Column() {      Button('Touch').height(40).width(100) .onTouch((event: TouchEvent) => {   if (event.type === TouchType.Down) {     this.eventType = 'Down';   }   if (event.type === TouchType.Up) {     this.eventType = 'no touch';   }   if (event.type === TouchType.Move) {     this.eventType = 'Move';   }   this.text = 'TouchType:' + this.eventType + '\nx: '   + event.touches[0].x + '\n' + 'y: ' + event.touches[0].y + '\nComponent globalPos:('   + event.target.area.globalPosition.x + ',' + event.target.area.globalPosition.y + ')\nwidth:'   + event.target.area.width + '\nheight:' + event.target.area.height; })      Button('Touch').height(50).width(200).margin(20) .onTouch((event: TouchEvent) => {   if (event.type === TouchType.Down) {     this.eventType = 'Down';   }   if (event.type === TouchType.Up) {     this.eventType = 'no touch';   }   if (event.type === TouchType.Move) {     this.eventType = 'Move';   }   this.text = 'TouchType:' + this.eventType + '\nx: '   + event.touches[0].x + '\n' + 'y: ' + event.touches[0].y + '\nComponent globalPos:('   + event.target.area.globalPosition.x + ',' + event.target.area.globalPosition.y + ')\nwidth:'   + event.target.area.width + '\nheight:' + event.target.area.height; })      Text(this.text).fontSize(24)    }.width('100%').height('100%').padding(30)  }}

index.ets

import touch from '../eventMuster/Touch'@Entry@Componentstruct Index {  build() {    Column() {      touch()    }    .width('100%')    .height('100%')  }}

五、完整代码下载地址

HarmonyOSAPP开发相关组件: 深圳市蛟龙腾飞网络科技有限公司 - Gitee.com