Positioned
Mise en page
Engine\Native\Positioned n'a de sens que comme enfant direct d'un Stack : c'est le stack parent qui appelle sa méthode paintIn() une fois sa propre taille (largeur/hauteur) connue, en décalant l'enfant depuis les bords précisés (top/right/bottom/left). Les bords non fournis retombent à 0, exactement comme l'équivalent HTML Engine\Positioned. En dehors d'un stack, layout()/paint() se contentent de déléguer à l'enfant sans offset.
Exemple
php
<?php
use Engine\Native\Stack;
use Engine\Native\Positioned;
use Engine\Native\Container;
use Engine\Color;
$stack = new Stack([
new Container(width: 160.0, height: 100.0, background: Color::gray(100)),
new Positioned(
new Container(width: 20.0, height: 20.0, background: Color::green(500)),
bottom: 8.0,
left: 8.0,
),
]);Un petit indicateur vert est ancré à 8px du bord bas-gauche du rectangle de fond, à l'intérieur du Stack.
Constructeur
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| child | Widget | — | Enfant positionné. |
| top | ?float | null | Distance depuis le bord haut du stack. |
| right | ?float | null | Distance depuis le bord droit du stack. |
| bottom | ?float | null | Distance depuis le bord bas du stack. |
| left | ?float | null | Distance depuis le bord gauche du stack. |
À savoir. Si ni
topnibottomne sont fournis (idem pour left/right), l'axe correspondant retombe à 0 — l'enfant colle donc au bord haut et/ou gauche par défaut, jamais centré automatiquement.