Ein Recalbox-Theme erstellen

45 Seiten · 8 Abschnitte
FRENESDE Alles anzeigen Mein Theme erstellen

⚠️ 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:

  1. ihre reservierten Komponenten, die sie selbst aufbaut;
  2. die mit extra="true" markierten Komponenten.

Eine freie Komponente ohne extra erscheint nie.

extra="true" → gezeichnet deine Komponente ohne extra → unsichtbar nichts die Engine zeichnet nur ihre reservierten Komponenten + die mit extra markierten
<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 · markdowntextlist · 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

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.