HarmonyOS/OpenHarmony(Stage模型)应用开发组合手势(二)并行识别

并行识别组合手势对应的GestureMode为Parallel。并行识别组合手势中注册的手势将同时进行识别,直到所有手势识别结束。并行识别手势组合中的手势进行识别时互不影响。

以在一个Column组件上绑定点击手势和双击手势组成的并行识别手势为例,由于单击手势和双击手势是并行识别,因此两个手势可以同时进行识别,二者互不干涉。

// xxx.ets

@Entry

@Component

struct Index {

  @State count1: number = 0;

  @State count2: number = 0;

  build() {

    Column() {

      Text('parallel gesture\n' + 'tapGesture count is 1:' + this.count1 + '\ntapGesture count is 2:' + this.count2 + '\n')

        .fontSize(28)

    }

    .height(200)

    .width(250)

    // 以下组合手势为并行并别,单击手势识别成功后,若在规定时间内再次点击,双击手势也会识别成功

    .gesture(

      GestureGroup(GestureMode.Parallel,

        TapGesture({ count: 1 })

          .onAction(() => {

            this.count1++;

          }),

        TapGesture({ count: 2 })

          .onAction(() => {

            this.count2++;

          })

      )

    )

  }

}

HarmonyOS/OpenHarmony(Stage模型)应用开发组合手势(二)并行识别_第1张图片

说明当由单击手势和双击手势组成一个并行识别组合手势后,在区域内进行点击时,单击手势和双击手势将同时进行识别。当只有单次点击时,单击手势识别成功,双击手势识别失败。当有两次点击时,若两次点击相距时间在规定时间内(默认规定时间为300毫秒),触发两次单击事件和一次双击事件。当有两次点击时,若两次点击相距时间超出规定时间,触发两次单击事件不触发双击事件。

你可能感兴趣的:(HarmonyOS)