Skip to content

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
<?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ètreTypeDéfautDescription
screenWidthfloat—Largeur de l'écran ; le panneau prend min(288, screenWidth * 0.85).
viewportHeightfloat—Hauteur du viewport, appliquée au scrim et au panneau.
itemsarray<int, array{label: string, icon: string, action: string}>—Entrées de menu, rendues via ListTile.
titlestring'Menu'Titre affiché en haut du panneau.

À savoir. Le scrim est peint avec une couleur ARGB brute (#66000000) via CustomPaint, car Engine\Color n'a pas de canal alpha ; taper le scrim déclenche toujours toggle:drawer_open avec next vide, indépendamment des items passés.

Voir aussi ​

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