HarmonyOS/OpenHarmony(Stage模型)应用开发单一手势(一)

鸿蒙时代
发布于 2023-8-31 10:09
浏览
0收藏

一、点击手势(TapGesture)
TapGesture(value?:{count?:number; fingers?:number})
点击手势支持单次点击和多次点击,拥有两个可选参数:
count:非必填参数,声明该点击手势识别的连续点击次数。默认值为1,若设置小于1的非法值会被转化为默认值。如果配置多次点击,上一次抬起和下一次按下的超时时间为300毫秒。
fingers:非必填参数,用于声明触发点击的手指数量,最小值为1,最大值为10,默认值为1。当配置多指时,若第一根手指按下300毫秒内未有足够的手指数按下则手势识别失败。当实际点击手指数超过配置值时,手势识别失败。
以在Text组件上绑定双击手势(count值为2的点击手势)为例:

// xxx.ets
@Entry
@Component
struct Index {
  @State value: string = "";
  
  build() {
    Column() {
      Text('Click twice').fontSize(28)
        .gesture(
          // 绑定count为2的TapGesture
          TapGesture({ count: 2 })
            .onAction((event: GestureEvent) => {
              this.value = JSON.stringify(event.fingerList[0]);
            }))
      Text(this.value)
    }
    .height(200)
    .width(250)
    .padding(20)
    .border({ width: 3 })
    .margin(30)
  }
}

HarmonyOS/OpenHarmony(Stage模型)应用开发单一手势(一)-鸿蒙开发者社区
二、长按手势(LongPressGesture)
.LongPressGesture(value?:{fingers?:number; repeat?:boolean; duration?:number})
长按手势用于触发长按手势事件,触发长按手势的最少手指数量为1,最短长按事件为500毫秒,拥有三个可选参数:
fingers:非必选参数,用于声明触发长按手势所需要的最少手指数量,最小值为1,最大值为10,默认值为1。
repeat:非必选参数,用于声明是否连续触发事件回调,默认值为false。
duration:非必选参数,用于声明触发长按所需的最短时间,单位为毫秒,默认值为500。
以在Text组件上绑定可以重复触发的长按手势为例:

// xxx.ets
@Entry
@Component
struct Index {
  @State count: number = 0;

  build() {
    Column() {
      Text('LongPress OnAction:' + this.count).fontSize(28)
        .gesture(
          // 绑定可以重复触发的LongPressGesture
          LongPressGesture({ repeat: true })
            .onAction((event: GestureEvent) => {
              if (event.repeat) {
                this.count++;
              }
            })
            .onActionEnd(() => {
              this.count = 0;
            })
        )
    }
    .height(200)
    .width(250)
    .padding(20)
    .border({ width: 3 })
    .margin(30)
  }
}

HarmonyOS/OpenHarmony(Stage模型)应用开发单一手势(一)-鸿蒙开发者社区

标签
已于2023-8-31 10:12:54修改
收藏
回复
举报
回复
    相关推荐