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)
- }
- }

长按手势用于触发长按手势事件,触发长按手势的最少手指数量为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)
- }
- }
