W aplikacjach mobilnych workflow komponentu Image jest nieco inny niż workflow w aplikacjach webowych. Ten artykuł opisuje szczegółowo, jak używać Image w aplikacji mobilnej. W powtarzających się elementach, takich jak elementy typu List oraz Grid ładowanie komponentów Image z modelu danych nie jest jednoznaczne i wymaga pewnej procedury ładowania za pomocą BP.

Image wykorzystanie komponentów w elementach powtarzających się (List/Grid)

Zobaczmy przykład, w którym mamy tabelę flights i każdy obiekt lotu ma swoją osłonę reprezentowaną przez ImageFile pole [file].

0_dataModel

Wyobraźmy sobie, że lista lotów jest reprezentowana za pomocą List element. Każdy element List komponentu - jest Card komponentem zawierającym Image oraz kilka innych komponentów do wyświetlania odpowiednich informacji o lotach. W projektancie UI wygląda to w następujący sposób:

uiux

Przede wszystkim, Data Source musi być określony dla komponentu nadrzędnego (List w tym przypadku).

01_select_from_model

Aby przesłać dane z bazy danych do Image komponentu, musimy stworzyć nowy proces biznesowy dla tego Image komponentu.

02_openBP

Wymagany BP rozpoczyna się od utworzenia elementu obrazu w aplikacji, tj. onCreate trigger. W pierwszej kolejności należy otrzymać obiekt modelu danych odpowiadający danemu obrazkowi. W tym celu można wykorzystać dane, które są już odbierane przez element nadrzędny (List w tym przypadku). Aby otrzymać dane z a List, blok List Get Data jest używany blok.

03_bp_1

Logika budowanego przez nas BP jest następująca: jeżeli jeden z Data elementów tablicy (flight obiekt modelu) ma identyfikator (ID) równy Record ID, to znaleźliśmy potrzebny nam element tablicy lotów. Następnie plik obrazu ID jest pobierany z obiektu modelu lotu i ładowany do komponentu Image z wymaganym Widget ID.

Aby iterować po wszystkich elementach tablicy Data tablicy, używany jest blok For each loop BP, a w ciele pętli każdy element tablicy jest rozszerzany za pomocą funkcji Data jest rozwijany za pomocą bloku Expand Flight . Jeśli Flight ID = Record ID, to pobierany jest ImageFile to zostaje pobrany identyfikator pliku i obiekt pliku zostaje wczytany przy pomocy bloku Server request GET /_files/:id/download/ blok. Przykład odpowiedniego BP jak poniżej.

03_bp_2

W kolejnym kroku plik graficzny jest rozszerzany za pomocą Expand file aby przekazać tablicę bajtów jako wejście do Image Update Properties bloku Data właściwość. Należy również określić m.in. Widget ID konkretnego elementu obrazu w arkuszu, przekazując mu wartość z bloku onCreate na początku BP. Wynik działania ostatniej części BP przedstawia poniższy przykład:

03_bp_3

Na końcu Break Loop użyty został blok, aby nie iterować nad pozostałymi elementami tablicy na próżno.

break loop

Ładowanie obrazu z systemu plików smartfona użytkownika

Rozważmy przykład ładowania awatara z profilu użytkownika. Interfejs internetowy składa się z obrazka i przycisku uruchamiającego BP i wygląda tak:

11_ui

Następnie właściwy BP pozwala użytkownikowi wybrać pliki ze swojego urządzenia za pomocą. Select Files blok. I jeżeli pliki zostały wybrane pomyślnie, to element z index = 0 jest pobierany. Odpowiedni BP wygląda tak:

12_bp_1

Wynikowy element pliku z Files musi zostać przesłany do serwera aplikacji internetowej w celu dalszego wykorzystania (Server request POST /_files/). Jeżeli żądanie się powiedzie, obiekt pliku na wyjściu bloku Server request POST /_files/ jest przekazywany do wejścia bloku Expand file w celu uzyskania obiektu a Bytes Arrayktóry jest przekazywany na wejście bloku Image Update Properties w bloku Data właściwość.

13_bp_2

Was this article helpful?

AppMaster.io 101 Kurs zderzeniowy

10 moduły
2 Tygodnie

Nie wiesz, od czego zacząć? Rozpocznij z naszym szybkim kursem dla początkujących i poznaj AppMaster od A do Z.

Rozpocznij kurs
Development it’s so easy with AppMaster!

Potrzebujesz więcej pomocy?

Rozwiąż każdy problem z pomocą naszych ekspertów. Oszczędzaj czas i skup się na tworzeniu aplikacji.

headphones

Skontaktuj się z pomocą techniczną

Opowiedz nam o swoim problemie, a my znajdziemy dla Ciebie rozwiązanie.

message

Czat społeczności

Omów pytania z innymi użytkownikami na naszym czacie.

Dołącz do społeczności