并行识别组合手势对应的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++; }) ) ) } }
复制
说明:当由单击手势和双击手势组成一个并行识别组合手势后,在区域内进行点击时,单击手势和双击手势将同时进行识别。当只有单次点击时,单击手势识别成功,双击手势识别失败。当有两次点击时,若两次点击相距时间在规定时间内(默认规定时间为300毫秒),触发两次单击事件和一次双击事件。当有两次点击时,若两次点击相距时间超出规定时间,触发两次单击事件不触发双击事件。