首页 > 编程笔记 > 通用技能 阅读:13

ArkTS onTouch()触摸事件的用法(附带实例)

当手指或手写笔在组件上触碰时,会触发不同动作所对应的事件响应,包括按下、滑动、抬起事件,事件的语法格式如下:
onTouch(event: (event?: TouchEvent) => void)

其中,event 有个 type 属性,可以清晰获取到目前触摸事件的具体类型:
触摸事件可以同时多指触发,通过 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 触摸事件类型演示

相关文章