1# LongPressGesture 2 3用于触发长按手势事件,触发长按手势的最少手指数为1,最短长按时间为500毫秒。 4 5> **说明:** 6> 7> 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 8 9 10## 接口 11 12LongPressGesture(value?: { fingers?: number, repeat?: boolean, duration?: number }) 13 14当组件默认支持可拖拽时,如Text、TextInput、TextArea、HyperLink、Image和RichEditor等组件。长按手势与拖拽会出现冲突,事件优先级如下: 15 16长按触发时间 < 500ms,长按事件优先拖拽事件响应。 17 18长按触发时间 >= 500ms,拖拽事件优先长按事件响应。 19 20**参数:** 21 22| 参数名称 | 参数类型 | 必填 | 参数描述 | 23| -------- | -------- | -------- | -------- | 24| fingers | number | 否 | 触发长按的最少手指数,最小为1指, 最大取值为10指。<br/>默认值:1 <br/> **说明:** <br/>手指按下后若发生超过15px的移动,则判定当前长按手势识别失败。| 25| repeat | boolean | 否 | 是否连续触发事件回调。<br/>默认值:false | 26| duration | number | 否 | 触发长按的最短时间,单位为毫秒(ms)。<br/>默认值:500 <br/>**说明:** <br/>设置小于等于0时,按照默认值500处理。| 27 28 29## 事件 30 31| 名称 | 功能描述 | 32| -------- | -------- | 33| onAction(event:(event?: [GestureEvent](ts-gesture-settings.md#gestureevent对象说明)) => void) | LongPress手势识别成功回调。 | 34| onActionEnd(event:(event?: [GestureEvent](ts-gesture-settings.md#gestureevent对象说明)) => void) | LongPress手势识别成功,最后一根手指抬起后触发回调。 | 35| onActionCancel(event: () => void) | LongPress手势识别成功,接收到触摸取消事件触发回调。<br/>**说明:** <br/>在窗口失焦的时候会触发。 | 36 37 38## 示例 39 40```ts 41// xxx.ets 42@Entry 43@Component 44struct LongPressGestureExample { 45 @State count: number = 0 46 47 build() { 48 Column() { 49 Text('LongPress onAction:' + this.count).fontSize(28) 50 // 单指长按文本触发该手势事件 51 .gesture( 52 LongPressGesture({ repeat: true }) 53 // 由于repeat设置为true,长按动作存在时会连续触发,触发间隔为duration(默认值500ms) 54 .onAction((event?: GestureEvent) => { 55 if (event && event.repeat) { 56 this.count++ 57 } 58 }) 59 // 长按动作一结束触发 60 .onActionEnd(() => { 61 this.count = 0 62 }) 63 ) 64 } 65 .height(200) 66 .width(300) 67 .padding(20) 68 .border({ width: 3 }) 69 .margin(30) 70 } 71} 72``` 73 74 75