LongPress Gesture
LongPress
gesture requires APL 1.4 or later. Provide an alternate experience for devices running older versions of APL.The LongPress
gesture provides support for a long press and hold on a touchable component. The user triggers a LongPress
by tapping and holding on a component.
Properties
Property | Type | Default | Description |
---|---|---|---|
type | "LongPress" | REQUIRED | Must be "LongPress" |
onLongPressStart | Array of commands | [] | Commands to run when a long-press is first detected. |
onLongPressEnd | Array of commands | [] | Commands to run when a long-press finishes. |
onLongPressStart
Commands to run when a long-press event occurs. The onLongPressStart
commands run after the user holds the pointer down for a sufficient length of time. The onLongPressStart
commands run until the user releases the pointer.
The event generated has the form:
"event": {
"source": {
"type": "COMPONENT_TYPE", // The type of the component
"handler": "LongPressStart",
... // Component source properties
},
"component": {
"x": Number, // X-position of the up event in the component (dp)
"y": Number, // Y-position of the up event in the component (dp)
"width": Number, // Width of the component in dp
"height": Number, // Height of the component in dp
},
"inBounds": Boolean // True if the pointer is within the component's transformed bounds
}
The inBounds
calculation for the pointer position doesn't consider any overlapping components.
Refer to Event source for a description of event.source
properties.
The onLongPressStart
handler runs in fast mode in the component data-binding context.
onLongPressEnd
Commands to run when a long-press has been released. The onLongPressEnd
commands run after the user releases the pointer.
The event generated has the form:
"event": {
"source": {
"type": "COMPONENT_TYPE", // The type of the component
"handler": "LongPressEnd",
... // Component source properties
},
"component": {
"x": Number, // X-position of the up event in the component (dp)
"y": Number, // Y-position of the up event in the component (dp)
"width": Number, // Width of the component in dp
"height": Number, // Height of the component in dp
},
"inBounds": Boolean // True if the pointer is within the component's transformed bounds
}
The inBounds
calculation for the pointer position doesn't consider any overlapping components.
Refer to Event source for a description of event.source
properties.
The onLongPressEnd
handler runs in normal mode in the component data-binding context.
Event sequence for the LongPress gesture
A long-press event triggers the following event handlers:
onDown
onMove
(if applicable)onCancel
(long press identified)onLongPressStart
onLongPressEnd
(when the user release the component)
The operating system and accessibility settings determine the amount of time the user must hold the component for the gesture to be considered a long-press.
Example LongPress gesture
The following example demonstrates the LongPress
gesture. Each touchable component handler runs a command that displays the ID of the component and the name of the handler that ran. When you do a short press and release, the onPress
handler runs. When you press and hold the component for a longer time, the onLongPressStart
handler runs, followed by onLongPressEnd
when you release the press.
Related topics
Last updated: Feb 29, 2024