Skip to content

Reorderable ​

Listes & défilement

Équivalent natif du ReorderableListView de Flutter : une pile verticale d'items que l'utilisateur peut appui-long puis glisser pour réordonner. Comme Dismissible, tout le glisser-déposer (détection de l'appui long, suivi en direct, permutation des emplacements, animation de repos) est géré côté client par NativeCanvasView.kt ; PHP ne reçoit $action qu'au lâcher du doigt, avec le nouvel ordre des clés en suffixe ("{action}:key3,key1,key2").

Exemple ​

php
<?php

use Engine\Native\Reorderable;
use Engine\Native\Text;
use Engine\Native\Tokens;

$items = [
    'task-1' => new Text('Rédiger le rapport', Tokens::TEXT_BODY, Tokens::ink()->toHex()),
    'task-2' => new Text('Relire le budget', Tokens::TEXT_BODY, Tokens::ink()->toHex()),
    'task-3' => new Text('Envoyer la facture', Tokens::TEXT_BODY, Tokens::ink()->toHex()),
];

$list = new Reorderable(
    group: 'tasks',
    items: $items,
    action: 'reorder:tasks',
);

Trois tâches réordonnables ; un glisser terminé déclenche reorder:tasks:task-2,task-1,task-3 (par exemple) que l'écran doit interpréter pour réécrire l'ordre persistant.

Constructeur ​

ParamètreTypeDéfautDescription
groupstring—Identifiant du groupe de réorganisation, transmis à Canvas::reorderItem().
itemsarray<string, Widget>—Items dans leur ordre initial, indexés par clé stable.
actionstring—Action renvoyée une fois le glisser terminé, suffixée du nouvel ordre des clés.

À savoir. Tous les items partagent la même largeur (celle du conteneur) ; seule la hauteur peut varier d'un item à l'autre. Réordonner un groupe disposé horizontalement n'est pas supporté.

Voir aussi ​

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