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 触摸事件类型演示
ICP备案:
公安联网备案: