⚠️ La regla más importante
Por qué tu componente no aparece.
Esta es la causa del « he puesto mi imagen y no la veo ».
Una vista solo dibuja dos cosas:
- sus componentes reservados, que construye ella misma;
- los componentes marcados
extra="true".Un componente libre sin
extrano aparece nunca.
<view name="system">
<image name="mon-decor" extra="true"> <!-- ✅ se muestra -->
<path>${root}/data/arts/decor.png</path>
</image>
<image name="autre-decor"> <!-- ❌ invisible -->
<path>${root}/data/arts/decor.png</path>
</image>
</view>
La otra escritura, equivalente, es agruparlos:
<view name="system">
<extras>
<image name="mon-decor"> … </image>
<text name="ma-legende"> … </text>
</extras>
</view>
Solo SEIS tipos pueden colocarse libremente
La fábrica de componentes libres solo sabe construir estos:
✅ Utilizable como extra | ❌ Rechazado |
|---|---|
image · box · video · text · scrolltext · markdown | textlist · carousel · datetime · rating · sound · helpsystem · keyboard · container · ninepatch · todos los menu* |
Un tipo rechazado escribe en el registro Extra type unknown: Rating y no se dibuja nada.
➡️ rating, datetime, textlist y carousel solo se usan bajo su nombre reservado, en una vista que los prevé. No puedes añadir una segunda puntuación ni una segunda lista.
➡️ ninepatch no tiene nombre reservado en ninguna parte: rechazado como componente libre, y ninguna vista lo construye. Es por tanto inutilizable en la práctica, pese a estar presente en el motor.
➡️ container tampoco se coloca, pero no es inútil: el motor lo aplica por encima de otro componente. En la lista de juegos, md_description declarado como <text> ajusta a la vez el marco desplazable que lo rodea — pos, size y zIndex van al marco, el resto al texto. Nunca lo escribes tú mismo.
Otros tres límites
- un solo
<video>por vista — el segundo se ignora sin mensaje; - un extra recibe un
zIndexde 10 por defecto; - los extras se ordenan por
zIndexantes de mostrarse.
La excepción
helpsystem sigue funcionando incluso escrito en un bloque <extras>: la vista lo encuentra por su nombre. La advertencia del registro no tiene consecuencias.