In mobilen Anwendungen unterscheidet sich der Workflow der Komponente Image ein wenig von dem in Webanwendungen. Dieser Artikel beschreibt im Detail, wie man die Image Komponente in einer mobilen Anwendung. In sich wiederholenden Elementen, wie z.B. Elementen der List und Grid Komponenten, ist das Laden der Image aus dem Datenmodell nicht eindeutig und erfordert ein bestimmtes Verfahren zum Laden mit Hilfe des BP.

Image Verwendung von Komponenten in sich wiederholenden Elementen (List/Grid)

Sehen wir uns ein Beispiel an, bei dem wir eine Flugtabelle haben und jedes Flugobjekt seine eigene Abdeckung hat, die durch das ImageFile Feld [file].

0_dataModel

Stellen Sie sich vor, dass die Flugliste durch die List Komponente dargestellt. Jedes Element der List Komponente - ist eine Card Komponente, die Image und einige andere Komponenten, um relevante Fluginformationen anzuzeigen. Im UI-Designer sieht es folgendermaßen aus:

uiux

Erstens, Data Source muss für die übergeordnete Komponente (hierList Komponente in diesem Fall).

01_select_from_model

Um die Daten aus der Datenbank in die Image Komponente hochzuladen, müssen wir einen neuen Geschäftsprozess für die Image Komponente.

02_openBP

Der erforderliche GP beginnt mit der Erstellung eines Bildelements in der Anwendung, nämlich des onCreate Auslöser. Zunächst ist es notwendig, das Objekt des Datenmodells zu erhalten, das dem gegebenen Bild entspricht. Dazu können Sie die Daten verwenden, die bereits vom übergeordneten Element empfangen werden (List in diesem Fall). Um die Daten von einem Listzu erhalten, wird der List Get Data Block verwendet.

03_bp_1

Die Logik des BP, den wir bauen, ist wie folgt: Wenn eines der Data Array-Elemente (flight Modellobjekt) einen Bezeichner (ID) gleich Record IDhat, dann haben wir das benötigte Flugtabellenelement gefunden. Dann wird die Bilddatei ID aus dem Flugmodellobjekt entnommen und in die Bildkomponente mit dem erforderlichen Widget ID.

Um über alle Elemente des Data Arrays zu iterieren, wird der For each loop BP-Block verwendet, und im Hauptteil der Schleife wird jedes Element des Data Arrays mit Hilfe des Expand Flight Block erweitert. Wenn Flight ID = Record IDist, dann wird die ImageFile Dateibezeichner genommen und das Dateiobjekt wird mit Hilfe des Server request GET /_files/:id/download/ Block geladen. Beispiel für den entsprechenden BP wie folgt.

03_bp_2

Im nächsten Schritt wird die Bilddatei mit Hilfe des Expand file Block expandiert, um das Bytes-Array als Eingabe für den Image Update Properties Blocks Data Eigenschaft zu übergeben. Es ist auch notwendig, die Widget ID eines bestimmten Bildelements im Blatt anzugeben, indem man ihm den Wert aus dem onCreate-Block am Anfang des BP übergibt. Das Ergebnis des letzten Teils des BPs ist im folgenden Beispiel dargestellt:

03_bp_3

Am Ende wird der Break Loop Block verwendet, um nicht vergeblich über die restlichen Elemente des Arrays zu iterieren.

break loop

Laden eines Bildes aus dem Dateisystem des Smartphones des Benutzers

Betrachten wir ein Beispiel für das Laden eines Benutzerprofil-Avatars. Die Webschnittstelle besteht aus einem Bild und einer Schaltfläche, die den BP startet, und sieht wie folgt aus:

11_ui

Dann erlaubt der entsprechende BP dem Benutzer die Auswahl der Dateien von seinem Gerät mit Hilfe des Select Files Blocks. Und wenn die Dateien erfolgreich ausgewählt wurden, wird das Element mit index = 0 genommen. Der entsprechende BP sieht so aus:

12_bp_1

Das resultierende Dateielement des Files Arrays muss zur weiteren Verwendung auf den Webanwendungsserver hochgeladen werden (Server request POST /_files/). Wenn die Anfrage erfolgreich ist, wird das Dateiobjekt am Ausgang des Server request POST /_files/ Blocks an den Eingang des Expand file Blocks übergeben, um ein Bytes Arrayzu erhalten, das an den Eingang des Image Update Properties Blocks in der Data Eigenschaft übergeben wird.

13_bp_2

Was this article helpful?

AppMaster.io 101 Crash-Kurs

10 Module
2 Wochen

Sie wissen nicht, wo Sie anfangen sollen? Legen Sie los mit unserem Crashkurs für Anfänger und erkunden Sie AppMaster von A bis Z.

Kurs starten
Development it’s so easy with AppMaster!

Benötigen Sie weitere Hilfe?

Lösen Sie jedes Problem mit Hilfe unserer Experten. Sparen Sie Zeit und konzentrieren Sie sich auf die Erstellung Ihrer Anwendungen.

headphones

Kontaktieren Sie Support

Schildern Sie uns Ihr Problem und wir finden eine Lösung für Sie.

message

Community-Chat

Besprechen Sie Fragen mit anderen Benutzern in unserem Chat.

Community beitreten