RichText
Texte & icônes
Engine\Native\RichText est l'équivalent natif du Text.rich(TextSpan(...)) de Flutter : plusieurs styles (gras, couleur, taille, voire un lien tappable) coexistent dans UN SEUL paragraphe qui se replie comme une phrase normale, contrairement à Text qui n'a qu'un style pour toute la chaîne. Chaque TextSpan est tokenisé en mots ; le retour à la ligne se fait sur le flux entier de mots, pas aux limites des spans. La ligne de base de chaque ligne est calée sur le span le plus grand présent sur cette ligne.
Exemple
<?php
use Engine\Native\RichText;
use Engine\Native\TextSpan;
$paragraph = new RichText(
spans: [
new TextSpan(text: 'En continuant, vous acceptez nos '),
new TextSpan(text: 'conditions d’utilisation', bold: true, action: 'navigate:/cgu'),
new TextSpan(text: '.'),
],
fontSize: 14.0,
color: '#374151',
);Une phrase où seul le segment « conditions d'utilisation » est en gras et tappable, tout en restant intégré au flux normal du paragraphe.
Constructeur
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
| spans | array<int, TextSpan> | — | Les segments de texte stylés à enchaîner dans un même paragraphe. |
| fontSize | float | 16.0 | Taille de police par défaut, héritée par tout span qui ne fixe pas la sienne. |
| color | string | '#000000' | Couleur par défaut, héritée de la même façon. |
Chaque TextSpan accepte : text, color, bold, size, letterSpacing et action — tous null par défaut, auquel cas le style de base de RichText s'applique.
À savoir. Un
TextSpanavec unactionnon nul enregistre une zone de tap précise autour de ses mots ; le reste du paragraphe n'est pas cliquable — pas besoin d'envelopper toute la phrase dans unTappable.