⚠️ La règle la plus importante
Pourquoi votre composant n’apparaît pas.
C’est la cause du « j’ai posé mon image et je ne la vois pas ».
Une vue ne dessine que deux choses :
- ses composants réservés, qu’elle construit elle-même ;
- les composants marqués
extra="true".Un composant libre sans
extran’apparaît jamais.
<view name="system">
<image name="mon-decor" extra="true"> <!-- ✅ s’affiche -->
<path>${root}/data/arts/decor.png</path>
</image>
<image name="autre-decor"> <!-- ❌ invisible -->
<path>${root}/data/arts/decor.png</path>
</image>
</view>
L’autre écriture, équivalente, est de les regrouper :
<view name="system">
<extras>
<image name="mon-decor"> … </image>
<text name="ma-legende"> … </text>
</extras>
</view>
Seuls SIX types peuvent être posés librement
La fabrique des composants libres ne sait construire que ceux-ci :
✅ Utilisable en extra | ❌ Refusé |
|---|---|
image · box · video · text · scrolltext · markdown | textlist · carousel · datetime · rating · sound · helpsystem · keyboard · container · ninepatch · tous les menu* |
Un type refusé écrit dans le journal Extra type unknown: Rating et rien n’est dessiné.
➡️ rating, datetime, textlist et carousel ne s’utilisent que sous leur nom réservé, dans une vue qui les prévoit. Vous ne pouvez pas ajouter une deuxième note ou une deuxième liste.
➡️ ninepatch n’a de nom réservé nulle part : refusé en composant libre, et aucune vue ne le construit. Il est donc inutilisable en pratique, malgré sa présence dans le moteur.
➡️ container ne se pose pas non plus, mais il n’est pas inutile : le moteur l’applique par-dessus un autre composant. Dans la liste de jeux, md_description déclaré en <text> règle du même coup le cadre défilant qui l’entoure — pos, size et zIndex vont au cadre, le reste au texte. Vous ne l’écrivez jamais vous-même.
Trois autres limites
- une seule
<video>par vue — la deuxième est ignorée sans message ; - un extra reçoit un
zIndexde 10 par défaut ; - les extras sont triés par
zIndexavant affichage.
L’exception
helpsystem continue de fonctionner même écrit dans un bloc <extras> : la vue le retrouve par son nom. L’avertissement du journal est sans conséquence.