Skip to content

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
<?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ètreTypeDéfautDescription
childWidget—Le nœud enfant sur lequel les gestes sont détectés.
onDoubleClick?stringnullAction déclenchée sur double-tap.
onSwipeLeft?stringnullAction déclenchée sur un balayage vers la gauche.
onSwipeRight?stringnullAction déclenchée sur un balayage vers la droite.

À savoir. onPinch/onRotate ne 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.

Voir aussi ​

PhpNitro est un produit FINANFA TECH — Publié sous licence MIT.