Skip to content

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
<?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ètreTypeDéfautDescription
childrenarray<int, Widget>—Enfants superposés, peints dans l'ordre du tableau (le dernier est au-dessus).

À savoir. Un enfant Positioned n'est significatif que directement à l'intérieur d'un Stack : c'est ce dernier qui appelle sa méthode paintIn() une fois sa propre taille connue, avec les bords non précisés qui retombent à 0.

Voir aussi ​

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