Drawer
Structure d'écran
Équivalent natif d'Engine\Drawer : un scrim plein écran plus un panneau ancré à gauche, destiné au paramètre drawer de Scaffold (qui le peint via Fixed, relatif à l'écran, au-dessus de tout le reste y compris l'AppBar/BottomNavigation). Il n'y a pas d'animation d'ouverture/fermeture côté client sur ce pipeline (chaque paint est one-shot) : c'est l'appelant qui décide si le tiroir existe dans l'arbre selon un indicateur "ouvert ?" connu côté serveur — même logique "$_GET pilote ce qui est affiché" que les autres widgets natifs à état.
Exemple
<?php
use Engine\Native\Drawer;
$drawer = new Drawer(
screenWidth: 360.0,
viewportHeight: 720.0,
items: [
['label' => 'Profil', 'icon' => 'person', 'action' => 'navigate:profile'],
['label' => 'Paramètres', 'icon' => 'settings', 'action' => 'navigate:settings'],
],
title: 'Menu',
);Un tiroir de menu avec deux entrées ; taper le scrim envoie toggle:drawer_open pour le refermer, taper une entrée navigue vers l'écran correspondant.
Constructeur
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| screenWidth | float | — | Largeur de l'écran ; le panneau prend min(288, screenWidth * 0.85). |
| viewportHeight | float | — | Hauteur du viewport, appliquée au scrim et au panneau. |
| items | array<int, array{label: string, icon: string, action: string}> | — | Entrées de menu, rendues via ListTile. |
| title | string | 'Menu' | Titre affiché en haut du panneau. |
À savoir. Le scrim est peint avec une couleur ARGB brute (
#66000000) viaCustomPaint, carEngine\Colorn'a pas de canal alpha ; taper le scrim déclenche toujourstoggle:drawer_openavecnextvide, indépendamment desitemspassés.