Stack
Mise en page
Engine\Native\Stack superpose ses enfants dans leur ordre de peinture : le dernier enfant de la liste est peint au-dessus des autres. Sa propre taille (largeur/hauteur) est calculée à partir du plus grand des enfants « ordinaires » — un enfant enveloppé dans Positioned ne participe pas à ce calcul. Les enfants ordinaires restent alignés en haut à gauche ; les enfants Positioned sont décalés depuis les bords qu'ils précisent une fois que la taille finale du stack est connue.
Exemple
<?php
use Engine\Native\Stack;
use Engine\Native\Positioned;
use Engine\Native\Container;
use Engine\Color;
$badge = new Stack([
new Container(width: 120.0, height: 120.0, background: Color::gray(200)),
new Positioned(
new Container(width: 24.0, height: 24.0, background: Color::red(600), radius: 12.0),
top: 4.0,
right: 4.0,
),
]);Un carré gris sert de fond, et un petit badge rond rouge est ancré dans le coin supérieur droit du stack via Positioned.
Constructeur
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| children | array<int, Widget> | — | Enfants superposés, peints dans l'ordre du tableau (le dernier est au-dessus). |
À savoir. Un enfant
Positionedn'est significatif que directement à l'intérieur d'unStack: c'est ce dernier qui appelle sa méthodepaintIn()une fois sa propre taille connue, avec les bords non précisés qui retombent à 0.