Freie Komponenten: extra="true" und <extras>
Warum eine hinzugefügte Komponente nicht erscheint — und die zwei Arten, sie zu deklarieren.
Zwei Familien von Komponenten
Innerhalb einer Ansicht unterscheidet Recalbox:
- die Elemente, die es selbst baut — das Karussell, die Spieleliste, die Hilfeleiste, das Cover des Spiels… Sie haben einen reservierten Namen, und das Theme stellt sie nur ein;
- die Komponenten, die du hinzufügst — ein Text, ein Bild, ein Farbblock, ein Video. Das sind die freien Komponenten.
Eine freie Komponente muss als solche deklariert werden
Eine freie Komponente direkt in der Ansicht wird nicht gezeichnet: Die Maschine baut nur die mit extra markierten Elemente. Zwei mögliche Schreibweisen, die genau dasselbe tun:
<image name="monLogo" extra="true">…</image>
<extras>
<image name="monLogo">…</image>
<text name="maMention">…</text>
</extras>
<extras> ist ein Container: Jedes seiner Kinder erhält extra="true", auf einen Schlag. Kürzer und lesbarer, sobald es mehrere Komponenten gibt — das schreibt auch das Studio.
Was man sich merken muss
<extras>ist keine Komponente: Es wird nicht gezeichnet, nicht positioniert.- Es verschachtelt sich nicht in sich selbst: Ein
<extras>in einem<extras>hat keine zusätzliche Wirkung. - Es funktioniert in der Ansicht Systeme, der Spieleliste und dem Bildschirmschoner. ⚠️ Nicht im Menü: Die Engine sucht dort keine freie Komponente. Ein für die Menü-Ansicht geschriebenes
<extras>wird fehlerfrei gelesen… und zeichnet nie etwas. - Elemente mit reserviertem Namen bleiben außerhalb: Sie existieren bereits, man stellt sie nur ein.
Im Studio musst du nichts tun: Die Komponenten, die du hinzufügst, werden automatisch in
<extras>geschrieben, die reservierten Elemente außerhalb.