⚠️ Die wichtigste Regel
Warum deine Komponente nicht erscheint.
Das ist die Ursache von „ich habe mein Bild platziert und sehe es nicht“.
Eine Ansicht zeichnet nur zwei Dinge:
- ihre reservierten Komponenten, die sie selbst aufbaut;
- die mit
extra="true"markierten Komponenten.Eine freie Komponente ohne
extraerscheint nie.
<view name="system">
<image name="mon-decor" extra="true"> <!-- ✅ wird angezeigt -->
<path>${root}/data/arts/decor.png</path>
</image>
<image name="autre-decor"> <!-- ❌ unsichtbar -->
<path>${root}/data/arts/decor.png</path>
</image>
</view>
Die andere, gleichwertige Schreibweise ist, sie zu gruppieren:
<view name="system">
<extras>
<image name="mon-decor"> … </image>
<text name="ma-legende"> … </text>
</extras>
</view>
Nur SECHS Typen können frei platziert werden
Die Fabrik der freien Komponenten kann nur diese bauen:
✅ Als extra verwendbar | ❌ Abgelehnt |
|---|---|
image · box · video · text · scrolltext · markdown | textlist · carousel · datetime · rating · sound · helpsystem · keyboard · container · ninepatch · alle menu* |
Ein abgelehnter Typ schreibt Extra type unknown: Rating ins Protokoll und nichts wird gezeichnet.
➡️ rating, datetime, textlist und carousel werden nur unter ihrem reservierten Namen verwendet, in einer Ansicht, die sie vorsieht. Du kannst keine zweite Bewertung oder eine zweite Liste hinzufügen.
➡️ ninepatch hat nirgends einen reservierten Namen: als freie Komponente abgelehnt, und keine Ansicht baut ihn. Er ist daher in der Praxis unbrauchbar, obwohl er in der Engine vorhanden ist.
➡️ container wird ebenfalls nicht platziert, aber er ist nicht nutzlos: die Engine wendet ihn über einer anderen Komponente an. In der Spieleliste stellt md_description, als <text> deklariert, zugleich den scrollenden Rahmen darum ein — pos, size und zIndex gehen an den Rahmen, der Rest an den Text. Du schreibst ihn nie selbst.
Drei weitere Grenzen
- nur ein
<video>pro Ansicht — das zweite wird ohne Meldung ignoriert; - ein Extra bekommt standardmäßig einen
zIndexvon 10; - die Extras werden vor der Anzeige nach
zIndexsortiert.
Die Ausnahme
helpsystem funktioniert weiter, selbst in einem <extras>-Block geschrieben: die Ansicht findet es über seinen Namen wieder. Die Warnung im Protokoll ist folgenlos.