GestureDetector
Interaction
Engine\Native\GestureDetector est l'équivalent natif d'Engine\GestureDetector : un vrai android.view.GestureDetector câblé dans onTouchEvent de NativeCanvasView.kt (onDoubleTap()/onFling()), et non un écouteur JS de double-clic ou de delta tactile. Les trois actions voyagent dans le meta de la zone de hit sous des clés fixes (onDoubleClick/onSwipeLeft/onSwipeRight) que dispatchGestureAction() recherche spécifiquement. En interne, il enrobe simplement l'enfant dans un Tappable avec l'action factice noop — un simple tap unique dans la zone ne déclenche rien.
Exemple
<?php
use Engine\Native\GestureDetector;
use Engine\Native\Container;
$gallery = new GestureDetector(
child: new Container(width: 320.0, height: 200.0),
onDoubleClick: 'submit:zoom-image',
onSwipeLeft: 'submit:next-image',
onSwipeRight: 'submit:previous-image',
);Une zone d'aperçu image qui réagit au double-tap (zoom) et au swipe horizontal (image précédente/suivante), sans qu'un simple tap ne fasse quoi que ce soit.
Constructeur
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| child | Widget | — | Le nœud enfant sur lequel les gestes sont détectés. |
| onDoubleClick | ?string | null | Action déclenchée sur double-tap. |
| onSwipeLeft | ?string | null | Action déclenchée sur un balayage vers la gauche. |
| onSwipeRight | ?string | null | Action déclenchée sur un balayage vers la droite. |
À savoir.
onPinch/onRotatene sont pas portés côté natif — un vrai suivi multi-touch (deux pointeurs, delta d'échelle/rotation en direct) est un chantier significativement plus lourd que la détection du double-tap/swipe à un seul pointeur.