• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# LongPressGesture
2
3**LongPressGesture** is used to trigger a long press gesture, which requires one or more fingers with a minimum 500 ms hold-down time.
4
5>  **NOTE**
6>
7>  This gesture is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.
8
9
10## APIs
11
12LongPressGesture(value?: { fingers?: number, repeat?: boolean, duration?: number })
13
14Triggers a long press gesture. In components that support drag actions by default, such as **\<Text>**, **\<TextInput>**, **\<TextArea>**, **\<Hyperlink>**, **\<Image>**, and **\<RichEditor>**, the long press gesture may conflict with the drag action. If this occurs, they are handled as follows:
15
16If the minimum duration of the long press gesture is less than 500 ms, the long press gesture receives a higher response priority than the drag action.
17
18If the minimum duration of the long press gesture is greater than or equal to 500 ms, the drag action receives a higher response priority than the long press gesture.
19
20**Parameters**
21
22| Name| Type| Mandatory| Description|
23| -------- | -------- | -------- | -------- |
24| fingers | number | No| Minimum number of fingers to trigger a long press gesture. The value ranges from 1 to 10.<br>Default value: **1**<br> **NOTE**<br>If a finger moves more than 15 px after being pressed, the gesture recognition fails.|
25| repeat | boolean | No| Whether to continuously trigger the event callback.<br>Default value: **false**|
26| duration | number | No| Minimum hold-down time, in ms.<br>Default value: **500**<br>**NOTE**<br>If the value is less than or equal to 0, the default value **500** will be used.|
27
28
29## Events
30
31| Name| Description|
32| -------- | -------- |
33| onAction(event:(event?: [GestureEvent](ts-gesture-settings.md#gestureevent)) =&gt; void) | Invoked when a long press gesture is recognized.|
34| onActionEnd(event:(event?: [GestureEvent](ts-gesture-settings.md#gestureevent)) =&gt; void) | Invoked when the last finger is lifted after the long press gesture is recognized.|
35| onActionCancel(event: () =&gt; void) | Invoked when a tap cancellation event is received after the long press gesture is recognized.<br>**NOTE**<br>This event is triggered when the window loses focus.|
36
37
38## Example
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        // Touch and hold the text with one finger to trigger the gesture event.
51        .gesture(
52        LongPressGesture({ repeat: true })
53          // When repeat is set to true, the event callback is triggered continuously when the gesture is detected. The triggering interval is specified by duration (500 ms by default).
54          .onAction((event?: GestureEvent) => {
55            if (event && event.repeat) {
56              this.count++
57            }
58          })
59            // Triggered when the long press gesture ends.
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![en-us_image_0000001257058425](figures/en-us_image_0000001257058425.gif)
75