Skip to content

Tappable ​

Interaction

Engine\Native\Tappable est la brique de base de toute interaction tactile dans l'arbre de rendu natif : le moteur de layout n'a pas de DOM vivant sur lequel attacher un onclick, donc une zone tappable doit être enregistrée explicitement au moment du paint(), dans le même espace de pixels absolus que les commandes de dessin. NativeCanvasView.kt teste les coordonnées brutes du toucher contre ces rectangles ; un hit renvoie la chaîne $action à PHP par HTTP, le même schéma d'aller-retour que phpxNav.submitAction() côté HTML, sans DOM à re-rendre — c'est toute la liste de commandes de dessin qui revient à la place.

Exemple ​

php
<?php

use Engine\Native\Tappable;
use Engine\Native\Container;
use Engine\Native\Icon;

$favoriteZone = new Tappable(
    child: new Container(new Icon('favorite', 22.0), width: 44.0, height: 44.0),
    action: 'submit:toggle-favorite',
    meta: ['label' => 'Ajouter aux favoris'],
);

Une icône cœur de 44×44 points devient tappable ; meta.label fournit une description accessible puisqu'il n'y a aucun texte visible à proximité pour la déduire.

Constructeur ​

ParamètreTypeDéfautDescription
childWidget—Le nœud enfant rendu à l'intérieur de la zone tappable.
actionstring—Chaîne d'action renvoyée à PHP quand la zone est touchée.
meta?array<string, mixed>nullDonnées supplémentaires (options d'un select, message d'un dialogue, ou 'label' pour l'accessibilité).

À savoir. rebuildAccessibilityNodes() déduit automatiquement une description TalkBack à partir des commandes de texte voisines pour la plupart des widgets, mais une zone tappable purement iconographique (un Tappable brut autour d'une icône) n'a rien à en déduire sans un meta['label'] explicite.

Voir aussi ​

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