KEPLIN Docs

Layouts und Design je Gerät

Wiederverwendbare Vorlagen hinter den Bildschirmen, und ein eigenes Design für Web, Tablet und Handy — ohne Vererbung, mit klaren Regeln.

Zwei Dinge auf dieser Seite ähneln sich und sind nicht dasselbe:

  • Ein Layout ist ein Design, das von mehreren Bildschirmen geteilt wird — die Kopfzeile, der Rahmen, die Fußzeile, die sich wiederholen. Einmal gebaut, überall verwendet.
  • Ein Gerät ist ein Design desselben Bildschirms für eine andere Größe — das Web, das Tablet, das Handy. Jedes ist unabhängig.

Das eine handelt vom Wiederverwenden zwischen Bildschirmen; das andere davon, denselben Bildschirm auf Bildschirmen verschiedener Größen auszuliefern.

Layouts

Ein Layout ist ein Dokument wie ein Bildschirm — es hat Widgets und kann Datastores haben — aber ohne Route, ohne Parameter und ohne Zugriffsregeln. Man navigiert nicht zu einem Layout: Es ist der Hintergrund dessen, der es verwendet.

Ein Layout erstellen

  1. In der Seitenleiste, Tab UI, Abschnitt Bildschirme.
  2. Klicken Sie auf den Button Neues Layout, in der Kopfzeile des Abschnitts (oder, im Menü eines Ordners, um es dort drinnen zu erstellen).
  3. Schreiben Sie den Name des Layouts — das Feld schlägt vor z. B. Basis mit Kopfzeile.
  4. Erstellen.

Der Dialog Neues Layout — das Layout entsteht im Baum der Bildschirme und öffnet sofort zum Entwerfen.
Der Dialog Neues Layout — das Layout entsteht im Baum der Bildschirme und öffnet sofort zum Entwerfen.

Das Layout liegt im selben Baum wie die Bildschirme (die Notiz sagt es: Das Layout liegt im Baum der Bildschirme — ziehen Sie es, wohin Sie möchten.), mit eigenem Symbol, und öffnet sofort in einem Tab.

Ein Layout entwerfen

Der Editor ist derselbe wie bei den Bildschirmen — Palette, Canvas, Inspektor, dieselben Gesten und dieselben Tastenkürzel (siehe Der Canvas). Die Unterschiede liegen im Zweck:

Im Layout Warum
Das Badge der Kopfzeile zeigt /layout. Ein Layout hat keine Route.
Es gibt keine Routen-Parameter, keine Darstellung und keine Ereignisse des Bildschirms. Nichts davon gehört zum Layout.
Statt Vorlage des Bildschirms hat der Inspektor Basis-Vorlage, mit der Zeile Basis. Ein Layout kann auf einem anderen aufsetzen.

Nota

Die Widgets eines Layouts haben keine Ereignisse. Das Layout ist Struktur und Aussehen; das Verhalten gehört jedem Bildschirm — und dort wird es geschrieben, auch für die Widgets, die aus dem Layout kommen.

Einen Bildschirm auf ein Layout setzen

  1. Öffnen Sie den Bildschirm und klicken Sie auf eine leere Zone des Canvas (der Inspektor zeigt nun den Bildschirm).
  2. Öffnen Sie die Kategorie Vorlage des Bildschirms.
  3. Wählen Sie in der Zeile Layout das Layout. Um es zu entfernen, wählen Sie — kein Layout —.

Vorlage des Bildschirms: das Layout wird hier gewählt, und — kein Layout — nimmt es wieder heraus.
Vorlage des Bildschirms: das Layout wird hier gewählt, und — kein Layout — nimmt es wieder heraus.

Der Hinweis der Kategorie fasst den Vertrag zusammen: Vorlage hinter dem Inhalt: Die Widgets des Layouts erscheinen gesperrt; Eigenschaften und Ereignisse werden pro Bildschirm konfiguriert.

Was sich im Bildschirm ändert

Die Widgets des Layouts erscheinen nun im Canvas des Bildschirms, hinter dessen Inhalt, und mit einem Schloss in der Ecke. Was man mit ihnen tun kann und was nicht, ist eine feste Regel:

Im Bildschirm, an einem Widget des Layouts
Verschieben, in der Größe ändern, löschen, duplizieren Nein. Die Position wird im Layout selbst bearbeitet.
Eigenschaften ändern (Texte, Farben, Optionen) Ja — und die Änderung gilt nur für diesen Bildschirm.
Sichtbar / Aktiv Ja, pro Bildschirm.
Ereignisse Ja — das Verhalten gehört immer dem Bildschirm.
Zugriff und Werte im Satz Nein. Sie werden im Layout definiert.

Der Inspektor sagt Ihnen, in welcher Lage Sie sind: Widget des Layouts: Die Position wird im Layout bearbeitet; Eigenschaften, Sichtbarkeit und Ereignisse gehören zu DIESEM Bildschirm.

Keine „Inhaltszonen"

Es gibt weder Slots noch reservierte Bereiche: Der Inhalt des Bildschirms wird immer über das Layout gezeichnet. Wer das Layout entwirft, lässt den Platz frei, in den die Bildschirme schreiben werden — eine Kopfzeile oben, eine Leiste unten, und die Mitte leer.

Dica

Entwerfen Sie das Layout mit leerem Kern und großzügigem Rand. Ein Layout, das die Mitte besetzt, zwingt alle Bildschirme für immer, ihm auszuweichen.

Kollisionen und Ketten

Zwei Regeln, die die Plattform prüft und deren Bruch sie verweigert:

  • Eindeutige Ids und Namen. Ein Bildschirm und sein Layout dürfen weder dieselbe Widget-Id noch denselben Datastore-Namen haben — Kollision mit dem Layout: Die Widget-ID „…“ existiert in beiden. Es gibt keine automatischen Präfixe: Der Name, den Sie gewählt haben, ist der Name, der bleibt.
  • Höchstens 3 Ebenen, und keine Schleifen. Ein Layout kann auf einem anderen aufsetzen (Basis-Vorlage), aber die Kette endet bei drei — Die Kette der Layouts überschreitet 3 Ebenen. — und ein Zyklus wird abgelehnt.

Wenn das Layout sich ändert

Der Bildschirm speichert nur, welches Layout es ist, und die Änderungen, die er an dessen Widgets gemacht hat. Das Design wird nicht kopiert — deshalb ändert eine Änderung am Layout alle Bildschirme, die es verwenden, sofort, in der veröffentlichten App.

Zwei praktische Konsequenzen:

  • Im Konstruktor aktualisiert sich ein Bildschirm-Tab, der schon offen war, nicht von selbst, wenn Sie das Layout speichern: Schließen und öffnen Sie den Bildschirm erneut, um ihn mit der neuen Version zu sehen.
  • Ein Layout zu löschen, das in Gebrauch ist, wird nicht verhindert. Die Bildschirme, die es verwendet haben, öffnen fortan ohne es, mit dem Hinweis Das zugehörige Layout existiert nicht mehr. — sie brechen nicht, bleiben aber ohne den Rahmen.

Design je Gerät

Ein Bildschirm hat drei mögliche Designs, eines pro Gerät:

Gerät Referenzbreite
Web (1280px) Computer.
Tablet (768px) Tablet, und schmale Fenster.
Mobil (390px) Handy.

Umgeschaltet wird mit den drei Buttons links in der Leiste des Designers.

Die drei Geräte in der Leiste des Designers: Web (1280px), Tablet (768px) und Mobil (390px).
Die drei Geräte in der Leiste des Designers: Web (1280px), Tablet (768px) und Mobil (390px).

Das Raster ist bei allen dreien dasselbe — 48 Spalten — und was sich ändert, ist die Breite jeder Spalte. Ein Widget mit 24 Spalten belegt auf jedem Gerät die halbe Seite; die Höhe dagegen wird immer in Pixeln gezählt.

Es gibt keine Vererbung

Das ist die Regel, die alles Übrige erklärt: Jedes Gerät hat seinen eigenen Widget-Baum, vollständig und unabhängig. Es gibt kein „im Web verbergen und auf dem Handy zeigen" zwischen Bäumen — was im Baum eines Geräts nicht steht, existiert auf diesem Gerät nicht.

Das Web existiert immer. Tablet und Handy können noch ohne Design sein — in dem Fall liefert die App das Web-Design aus, auf die echte Breite zusammengedrückt. Das ist ein Rückfall beim Ausliefern, keine Vererbung: Beim Bearbeiten bleiben es getrennte Designs.

Das Design eines Geräts beginnen

Wählen Sie Tablet (768px) oder Mobil (390px) auf einem Bildschirm, der sie noch nicht hat, und der Designer zeigt die Karte Dieses Gerät hat noch kein Design, mit der Erklärung — Jedes Gerät hat sein eigenes Design. Solange dieses nicht existiert, liefert die Runtime das Web-Design aus. — und zwei Wegen:

Ein Gerät ohne Design: entweder wird das Web-Design als Ausgangspunkt kopiert, oder man beginnt leer.
Ein Gerät ohne Design: entweder wird das Web-Design als Ausgangspunkt kopiert, oder man beginnt leer.

Button Was er tut
Von Web kopieren Dupliziert das Web-Design als Ausgangspunkt. Die Ids der Widgets bleiben erhalten (die Datenbindungen und der Code finden sie weiterhin) und die Breiten passen sich an, weil sie in Spalten sind.
Leer beginnen Ein weißes Blatt, um von Grund auf zu entwerfen.

Die Kopie geschieht einmal. Von da an führen die Designs getrennte Leben: Am Web zu arbeiten ändert nichts am Handy.

Atenção

Solange das Gerät ein Design hat, zeigt die Leiste Design dieses Geräts löschen. Die Bestätigung ist deutlich — Das Design dieses Geräts verschwindet und die Runtime liefert wieder das Web-Design aus. Das lässt sich nicht rückgängig machen. — und so ist es: Für diese Operation gibt es kein Rückgängig.

Widgets auf diesem Gerät ausblenden

Innerhalb eines Geräts hat der Tab Struktur des Inspektors ein Auge an jedem Widget: Auf diesem Gerät ausblenden / Auf diesem Gerät anzeigen. Ein ausgeblendetes Widget bleibt im Baum und bleibt über die Struktur bearbeitbar — es erscheint nur nicht auf dem Bildschirm.

Der Tab Struktur: das Auge jedes Widgets blendet es auf DIESEM Gerät aus, ohne die anderen anzurühren.
Der Tab Struktur: das Auge jedes Widgets blendet es auf DIESEM Gerät aus, ohne die anderen anzurühren.

Ist das Ausgeblendete der Container, gehen die Kinder mit ihm — und ihr Auge erklärt es: Durch einen übergeordneten Container ausgeblendet.

Die Höhe der Seite

Die Höhe gilt pro Gerät: Ein Handy kann für denselben Bildschirm eine viel höhere Seite haben als das Web. Ziehen Sie den unteren Rand des Canvas (Höhe der Seite — zum Anpassen ziehen), um sie zu ändern.

Wenn die Seite höher ist als das Gerät, zeichnet der Canvas eine gestrichelte Linie mit der Beschriftung Unterkante des Viewports — dort endet, was man ohne Scrollen sieht. Alles unterhalb dieser Linie erscheint nur dem, der die Seite scrollt.

Was die App ausliefert

In der veröffentlichten App wird das Gerät über die Breite des Fensters gewählt: unter 640 px ist es Handy, unter 1024 px Tablet, darüber Web. Das Fenster zu verkleinern oder zu vergrößern wechselt das ausgelieferte Design, auf der Stelle.

Ohne Design für das erkannte Gerät wird das Web ausgeliefert. In der nativen Mobil-App wird dieser Rückfall angekündigt — Dieser Bildschirm hat kein Design für das Handy — das Web-Design wird gezeigt.

Der Button Vorschau öffnet den Bildschirm in der echten App; um zu sehen, wie er in einer anderen Größe aussieht, ändern Sie die Größe des Browserfensters.

Ereignisse, Ids und Geräte

Da jedes Gerät ein Baum ist, kann dieselbe Widget-Id in allen dreien existieren — mit Absicht: Sie ist „dasselbe logische Widget in anderer Größe". Aber jedes hat seine eigenen Eigenschaften und seinen Code: das onClick des Buttons im Web zu ändern ändert nicht das des Handys.

Denken Sie beim Schreiben von Code (siehe Ereignisse und das SDK) daran, dass keplin.widgets.get("...") nur Widgets des gerade laufenden Geräts findet. Ein Widget, das nur im Web existiert, gibt auf dem Handy einen Fehler.

Layouts und Geräte, zusammen

Die beiden Dinge kombinieren sich nach derselben Regel: Das Layout wird pro Gerät zusammengesetzt. Ein nur im Web entworfenes Layout erscheint auch in den Tablet- und Handy-Bäumen der Bildschirme, die es verwenden, und liefert dabei sein eigenes Web-Design aus — und ein Layout mit eigenem Handy-Design liefert dieses aus.

Nota

Die Navigationsleiste der App kommt nicht aus dem Layout: Sie wird im Editor der Navigation entworfen, und die App zeichnet sie um den Bildschirm herum. Ein Layout kann eine eigene Leiste haben — aber die ist Inhalt des Bildschirms und kann nicht von allein navigieren.

Wie man sich entscheidet

Situation Der Weg
Dieselbe Kopfzeile auf 20 Bildschirmen. Ein Layout.
Ein komplexer Bildschirm, der auf dem Handy etwas anderes sein muss. Ein eigenes Handy-Design.
Ein Button, der auf dem Handy keinen Sinn ergibt. Das Auge der Struktur auf dem Gerät Handy.
Ein anderes Menü auf dem Handy. Der Editor der Navigation, auf dem Gerät Handy.
Eine App, die nur am Computer verwendet werden wird. Entwerfen Sie nur das Web und denken Sie nicht weiter darüber nach.

Warum nicht…?

  • Warum kann ich dieses Widget nicht anfassen? Es hat ein Schloss: Es kommt aus dem Layout. Öffnen Sie das Layout und arbeiten Sie dort — im Bildschirm ändern Sie nur Eigenschaften, Sichtbarkeit und Ereignisse.
  • Warum lässt es mich das Layout nicht wählen? Es gibt eine Kollision: Der Bildschirm und das Layout haben dieselbe Widget-Id oder denselben Datastore-Namen. Benennen Sie eines von beiden um.
  • Warum zeigt der Bildschirm die Änderungen nicht, die ich am Layout gemacht habe? Der Tab des Bildschirms war offen. Schließen und wieder öffnen.
  • Warum zeigt das Handy das Web-Design ganz zusammengequetscht? Dieser Bildschirm hat kein Handy-Design. Wählen Sie Mobil (390px) und verwenden Sie Von Web kopieren oder Leer beginnen.
  • Warum habe ich am Web gearbeitet und das Handy hat sich nicht geändert? Weil es unabhängige Designs sind. Die Kopie geschieht nur in dem Moment, in dem Sie das Gerät anlegen.
  • Warum ist der Rahmen aller Bildschirme verschwunden? Das Layout wurde gelöscht. Die Bildschirme warnen Das zugehörige Layout existiert nicht mehr. — erstellen Sie es erneut und wählen Sie es wieder unter Vorlage des Bildschirms.