ArkTS onTouch()触摸事件的用法(附带实例)
当手指或手写笔在组件上触碰时,会触发不同动作所对应的事件响应,包括按下、滑动、抬起事件,事件的语法格式如下:
其中,event 有个 type 属性,可以清晰获取到目前触摸事件的具体类型:
触摸事件可以同时多指触发,通过 event 参数可获取触发的手指位置、手指唯一标志、当前发生变化的手指和输入的设备源等信息。
示例代码如下:

图 1 触摸事件类型演示
onTouch(event: (event?: TouchEvent) => void)
其中,event 有个 type 属性,可以清晰获取到目前触摸事件的具体类型:
- 当 event.type 为 TouchType.Down 时,表示手指按下。
- 当 event.type 为 TouchType.Up 时,表示手指抬起。
- 当 event.type 为 TouchType.Move 时,表示手指按住移动。
- 当 event.type 为 TouchType.Cancel 时,表示取消当前手指操作。
触摸事件可以同时多指触发,通过 event 参数可获取触发的手指位置、手指唯一标志、当前发生变化的手指和输入的设备源等信息。
示例代码如下:
@Entry @Component struct Demo { // 记录触摸类型显示信息 @State text: string = ''; // 记录触摸类型 @State eventType: string = ''; build() { Column() { // 创建按钮,设置按钮的触摸事件 Button('触摸事件类型') .onTouch((event?: TouchEvent) => { if (event) { // 判断对应的触摸类型 if (event.type === TouchType.Down) { this.eventType = '按下'; } if (event.type === TouchType.Up) { this.eventType = '抬起'; } if (event.type === TouchType.Move) { this.eventType = '按住移动'; } // 设置显示的文本信息 this.text = '触摸类型为:' + this.eventType + '\n触摸点到触摸组件的距离:\n' + 'x: ' + event.touches[0].x + '\n' + 'y: ' + event.touches[0].y; } }) .height(50) .width('50%') .margin(10); Text(this.text); } .width('100%'); } }显示效果如下图所示:

图 1 触摸事件类型演示