Tworzenie układów dynamicznych w aplikacjach kanwy

Przed przystąpieniem do tworzenia aplikacji kanwy w Power Apps należy określić, czy aplikacja ma być dobierana na telefon czy na tablet. Ten wybór decyduje o rozmiarze i kształcie kanwy, w której będzie konstruowana aplikacja.

Po dokonaniu wyboru możesz wybrać jeszcze kilka, wybierając Ustawienia > Wyświetl. Użytkownik może wybrać orientację poziomą lub pionową, a także rozmiar ekranu (tylko tablet). Można również blokować lub odblokowywać współczynnik proporcji i rotację urządzenia (albo nie).

Opcje te wpływają na każdy inny wybór wprowadzany podczas projektowania układu ekranu. Jeśli aplikacja działa na urządzeniu o innym rozmiarze lub w sieci Web, cały układ będzie skalowany w celu dopasowania go do ekranu, w którym działa aplikacja. Jeśli aplikacja zaprojektowana dla telefonu jest uruchamiana na przykład w dużym oknie przeglądarki, nplikacja skaluje się, tak aby skompensować ten rozmiar i wygląda na powiększoną. Ta aplikacja nie może skorzystać z dodatkowych pikseli, pokazując więcej kontrolek lub więcej zawartości.

W przypadku utworzenia układu dynamicznego kontrolki mogą odpowiadać innym urządzeniom lub rozmiarom okien, aby różne doświadczenia były bardziej naturalne. Aby osiągnąć układ dynamiczny, należy dostosować niektóre ustawienia i zapisać wyrażenia w aplikacji.

Włączanie skalowania w celu dopasowania

Każdy ekran można skonfigurować w taki sposób, aby jego układ był dostosowywany do rzeczywistego obszaru, w którym działa aplikacja.

Aktywacja tej funkcji powoduje, że w programie jest domyślnie włączona opcja Skalowanie w celu dopasowania. Wyłączenie tego ustawienia powoduje również wyłączenie Zablokuj współczynnik proporcji, ponieważ nie jest już projektowana dla konkretnego kształtu ekranu. (Możesz określić, czy Twoja aplikacja obsługuje rotację urządzeń).

Ustawienia skalowania w celu dopasowania.

Aby Twoja aplikacja była dynamiczna, należy wykonać dodatkowe czynności, ale zmiana jest pierwszą czynnością, która umożliwia najwyższą możliwą szybkość reakcji.

Opis wymiarów aplikacji i ekranu

Aby układy aplikacji odpowiadały na zmiany w wymiarach ekranu, należy napisać formułę z właściwościami Szerokości i Wysokości ekranu. Aby wyświetlić te właściwości, otwórz aplikację w programie Power Apps Studio, a następnie wybierz ekran. Domyślne formuły tych właściwości są wyświetlane na karcie Zaawansowane w prawym okienku.

Szerokość = Max(App.Width, App.DesignWidth)

Wysokość = Max(App.Height, App.DesignHeight)

Te formuły odwołują się do właściwości Szerokość, Wysokość, DesignWidth i DesignHeight aplikacji. Właściwości Szerokość i Wysokość aplikacji odpowiadają wymiarom urządzenia lub okna przeglądarki, w którym działa aplikacja. Jeśli użytkownik zmieni rozmiar okna przeglądarki (lub obraca urządzenie, jeśli opcja Zablokuj orientację została wyłączona), wartości tych właściwości zmienią się w sposób dynamiczny. W przypadku zmiany właściwości Szerokość i Wysokość ekranu zostaną one wyszacowane wraz z tymi wartościami.

Właściwości DesignWidth i DesignHeight pochodzą od wymiarów, które zostały określone w panelu Wyświetlanie w oknie Ustawienia. Jeśli na przykład zostanie wybrany układ telefoniczny z orientacją pionową, DesignWidth wynosi 640, a DesignHeight wynosi 1136.

Tak jak w formułach właściwości Szerokoś i Wysokość ekranu, można postrzegać DesignWidth i DesignHeight jako minimalne wymiary, dla których będzie projektowana aplikacja. Jeśli rzeczywista powierzchnia dostępna dla aplikacji jest jeszcze mniejsza niż liczba minimalnych wymiarów, formuły właściwości Szerokości i Wysokości ekranu nie będą miały żadnych wartości mniejszych niż minimalne. W takim przypadku użytkownik musi ją przewinąć w celu wyświetlenia całej zawartości ekranu.

Po ustanowieniu DesignWidth i DesignHeight aplikacji użytkownik nie będzie miał (w większości przypadków) zmieniać domyślnych formuł dla właściwości Szerokości i Wysokości poszczególnych ekranów. W dalszej części tego temat omówiono przypadki, w których może być potrzebne dostosowanie tych formuł.

Korzystanie z formuł do układania w układ dynamiczny

W celu utworzenia projektu reakcji każdą kontrolkę można znaleźć i wyskalować, używając formuł zamiast wartości współrzędnych bezwzględnych (stałych). Te formuły umożliwiają wyrażenia zmiany położenia i rozmiaru każdej kontrolki pod względem ogólnego rozmiaru ekranu lub w stosunku do innych kontrolek na ekranie.

Ważne

Po zapisaniu formuł dla właściwości X, Y, Szerokość i Wysokość w kontrolkach zostaną zastąpione wartościami stałymi, jeśli kontrolka zostanie następnie przeciągnięta w edytorze kanwy. Kiedy zaczniesz używać formuł, aby osiągnąć układ dynamiczny, unikaj przeciągania kontrolek.

W najprostszym przypadku w jednej kontrolce jest wypełniany cały ekran. Aby utworzyć ten efekt, należy ustawić właściwości kontrolki na następujące wartości:

Właściwość Wartość
X 0
Y 0
Szerokość Parent.Width
Wysokość Parent.Height

W tych formułach jest używany operator Nadrzędny. Aby kontrolka była umieszczona bezpośrednio na ekranie, Nadrzędny odnosi się do ekranu. W przypadku tych wartości właściwości kontrolka jest wyświetlana w lewym górnym rogu ekranu (0, 0) i ma taką samą Szerokość i Wysokość jak ekran.

W dalszej części niniejszego tematu zatosujesz te reguły (i operator Nadrzędny) do pozycjonowania elementów sterujących w innych kontenerach, takich jak galerie, kontrolki grup i składniki.

Zamiast tego formant może wypełnić tylko połowę górnej części ekranu. Aby utworzyć ten efekt, ustaw właściwość Wysokość na Parent.Height / 2 i pozostaw pozostałe formuły bez zmian.

Aby druga kontrolka wypełniła dolną połowę tego samego ekranu, można zastosować co najmniej dwa sposoby tworzenia formuł. W celu uproszczenia warto skorzystać z następujących rozwiązań:

Kontrolka Właściwość Wzór
Upper X 0
Upper Y 0
Upper Szerokość Parent.Width
Upper Wysokość Parent.Height / 2
Dolnołużycki X 0
Dolnołużycki Y Parent.Height / 2
Dolnołużycki Szerokość Parent.Width
Dolnołużycki Wysokość Parent.Height / 2

Górna i dolna kontrolka.

Ta konfiguracja osiągnie żądany skutek, ale w przypadku zmiany względnych rozmiarów kontrolek trzeba będzie dokonać edycji poszczególnych formuł. Można na przykład określić, że kontrolka najwyższego poziomu ma zajmować tylko jedną trzecią ekranu, przy czym dolna kontrolka wypełniana dolne dwie trzecie ekranu.

Aby ten efekt został utworzony, należy zaktualizować właściwość Wysokość kontrolki Górnej oraz Y i Wysokość w kontrolce Dolnej. Zamiast tego warto zastanowić się nad zapisem formuł dla kontrolki Dolnej w odniesieniu do kontrolki Górnej (i samej siebie), tak jak w poniższym przykładzie:

Kontrolka Właściwość Wzór
Upper X 0
Upper Y 0
Upper Szerokość Parent.Width
Upper Wysokość Parent.Height / 3
Lower X 0
Lower Y Upper.Y + Upper.Height
Lower Szerokość Parent.Width
Dolnołużycki Wysokość Parent.Height - Lower.Y

Względne rozmiary kontrolek górnej i dolnej.

W przypadku tych formuł konieczne jest tylko zmodyfikowanie właściwości Wysokość kontrolki Górnej, aby wyrazić inną część wysokości ekranu. Dolna kontrolka jest automatycznie przesuwana i dostosowywana do wymiarów konta.

Tych wzorów można używać do wyznaczania układu wspólnych relacji między kontrolką, o nazwie C i jego kontrolką nadrzędną lub równorzędną o nazwie D.

Relacja między C a jej obiektem nadrzędnym Właściwość Wzór Ilustracja
C powoduje wypełnienie szerokości elementu nadrzędnego z marginesem N X N Przykładowa szerokość wypełniania elementu nadrzędnego przez C.
Szerokość Parent.Width - (N * 2)
C powoduje wypełnienie wysokości elementu nadrzędnego z marginesem N Y N Przykładowa wysokości wypełniania elementu nadrzędnego przez C.
Wysokość Parent.Height - (N * 2)
C wyrównuje do prawej krawędzi obiektu nadrzędnego z marginesem N X Parent.Width - (C.Width + N) Przykład obiektu C wyrównanego do prawej krawędzi obiektu nadrzędnego.
C wyrównuje do dolnej krawędzi obiektu nadrzędnego z marginesem N Y Parent.Height - (C.Height + N) Przykład obiektu C wyrównanego do dolnej krawędzi obiektu nadrzędnego.
C wyśrodkowuje w poziomie względem elementu nadrzędnego X (Parent.Width - C.Width) / 2 Przykład, jak C wyśrodkowuje w poziomie względem elementu nadrzędnego.
C wyśrodkowuje w pionie względem elementu nadrzędnego Y (Parent.Height - C.Height) / 2 Przykład, jak C wyśrodkowuje w pionie względem elementu nadrzędnego.
Relacja między C a D Właściwość Formuła Ilustracja
C jest wyrównany do poziomu z D i ma taką samą szerokość jak D X D.X Przykład szyku wyrównanego poziomo.
Szerokość D.Width
C jest wyrównany do pionu z D i ma taką samą wysokość jak D Y D.Y Przykład szyku wyrównanego pionowo.
Wysokość D.Height
Prawa krawędź C jest wyrównana do prawej krawędzi D X D.X + D.Width - C.Width Przykład szyku wyrównanego do prawej krawędzi.
Dolna krawędź C jest wyrównana do dolnej krawędzi D Y D.Y + D.Height - C.Height Przykład szyku wyrównanego do dolnej krawędzi.
C wyśrodkowana w poziomie względem pozycji D X D.X + (D.Width - C.Width) / 2 Przykład szyku wyśrodkowanego poziomo.
C wyśrodkowana w pionie względem pozycji D Y D.Y + (D.Height - C.Height) /2 Przykład szyku wyśrodkowanego pionowo.
C umieszczona na prawo od D z przerwą N X D.X + D.Width + N Przykład szyku umieszczenia na prawo.
C pozycjonowana poniżej D z przerwą N Y D.Y + D.Height + N Przykład szyku umieszczenia poniżej.
C wypełnia oddstępy między D i prawnym brzegiem obiektu nadrzędnego X D.X + D.Width Przykład szyku wypełnienia przestrzeni między obiektem D a prawą krawędzią.
Szerokość Parent.Width - C.X
C wypełnia oddstępy między D i dolnym brzegiem obiektu nadrzędnego Y D.Y + D.Height Przykład szyku wypełnienia przestrzeni między obiektem D a dolną krawędzią.
Wysokość Parent.Height - C.Y

Układ hierarchiczny

Podczas konstruowania ekranów zawierających więcej kontrolek będzie on wygodniejszy (lub nawet niezbędny) do pozycjonowania elementów sterujących względem formantu nadrzędnego, a nie względem ekranu lub formantu siostrzanego. Organizując kontrolki w strukturę hierarchiczną, można uprościć pisanie i utrzymywanie formuł.

Galerie

Jeśli korzystasz z galerii w aplikacji, musisz ustalić układ kontrolek w szablonie galerii. Te kontrolki można pozycjonować, pisząc formuły, w których jest używany operator Nadrzędny, który odwołuje się do szablonu galerii. W kontrolkach sterujących szablonem galerii należy użyć właściwości Parent.TemplateHeight i Parent.TemplateWidth; nie należy używać elementów Parent.Width i Parent.Height, które odwołują się do rozmiaru całej galerii.

Galeria pionowa pokazująca szerokość i wysokość szablonu.

Kontrola kontenera

Możesz użyć kontrolki Układ kontenera, jako kontrolki nadrzędnej.

Rozważmy przykład nagłówka znajdującego się u górnej części ekranu. Jest to wspólna część nagłówka z tytułem i kilkoma ikonami, z którymi użytkownicy mogą pracować. Taki nagłówek można utworzyć przy użyciu kontrolki Kontenera, która zawiera kontrolkę Etykiety i dwie kontrolki Ikon:

Przykład nagłówka z grupą.

Ustaw te wartości w tych kontrolkach:

Właściwość Nagłówek Menu Zamykanie Tytuł
X 0 0 Parent.Width - Close.Width Menu.X + Menu.Width
Y 0 0 0 0
Szerokość Parent.Width Parent.Height Parent.Height Close.X - Title.X
Wysokość 64 Parent.Height Parent.Height Parent.Height

Dla kontrolki Nagłówka Parent to odwołanie do ekranu. Dla reszty Parent odnosi się do kontrolki Nagłówka.

Po zapisaniu tych formuł można dostosować rozmiar lub pozycję kontrolki Nagłówka, zmieniając formuły jej właściwości. Rozmiary i pozycje elementów sterujących elementami podrzędnymi będą automatycznie dostosowywane.

Automatycznie kontroluj kontenery w układach

Można użyć funkcji, które automatycznie kontrolują układ w celu ułożenia komponentów podrzędnych. Te kontenery określają położenie składników podrzędnych, tak aby nie trzeba było ustawiać wartości X, Y dla składnika wewnątrz kontenera. Rozmieszczają też dostępne miejsce w obrębie jego składników podrzędnych w zależności od ustawień, a także określają sposób wyrównania składników podrzędnych. Więcej informacji: Kontrolki automatycznego sterowania układem

Elementy

Jeśli jest używana inna funkcja, nazwane Składniki, można skonstruować bloki konstrukcyjne i użyć ich w dowolnej aplikacji. Podobnie jak w przypadku kontrolki Kontenera, kontrolki umieszczane w składniku powinny opierać się na ich pozycjach i rozmiarach formuł Parent.Width i Parent.Height, które odwołują się do rozmiaru składnika. Więcej informacji: Tworzenie składnika.

Dostosowywanie układu do rozmiarów i orientacji urządzeń

Użytkownik dowie się, jak używać formuł do zmiany rozmiaru poszczególnych kontrolek w odpowiedzi na dostępne miejsce, jednocześnie zachowując wyrównywanie kontrolek względem siebie. Jednak może zaistnieć konieczność wprowadzenia bardziej znaczących zmian układu w odpowiedzi na różne rozmiary i orientacje urządzeń. Jeśli urządzenie jest obrócone z pionowej orientacji do poziomej, można zmienić układ pionowy na taki, który ma zostać przełączony na poziomy. W przypadku większego urządzenia można przedstawić więcej informacji lub rozmieścić je ponownie, aby zapewnić bardziej atrakcyjny układ. Na mniejszym urządzeniu może zaistnieć konieczność rozdzielania zawartości na wielu ekranach.

Orientacja urządzeń

Domyślne formuły dotyczące Szerokości i Wysokości ekranu, jak w tym temacie opisano wcześniej, w przypadku, gdy użytkownik obraca urządzenie, niekoniecznie będzie miał dobre doświadczenia. Na przykład aplikacja zaprojektowana dla telefonu w orientacji pionowej ma DesignWidth 640 i DesignHeight 1136. Ta sama aplikacja na telefonie w orientacji poziomej będzie zawierać te wartości właściwości:

  • Właściwość Szerokość ekranu ma ustawioną wartość Max(App.Width, App.DesignWidth). Szerokość aplikacji (1136) jest większa niż jej DesignWidth (640), więc formuła oblicza 1136.
  • Właściwość Wysokość ekranu ma ustawioną wartość Max(App.Height, App.DesignHeight). Wysokość aplikacji (640) jest mniejsza niż jej DesignHeight (1136), więc formuła oblicza 1136.

Jeśli Wysokość ekranu wynosi 1136 i wysokość urządzenia (w tej orientacji) wynosi 640, użytkownik musi przewijać ekran w pionie w celu wyświetlenia całej jego zawartości, która może nie być pożądana.

Aby dostosować właściwości Szerokości i Wysokości ekranu do orientacji urządzenia, można użyć następujących formuł:

Szerokość = Max(App.Width, If(App.Width < App.Height, App.DesignWidth, App.DesignHeight))

Wysokość = Max(App.Height, If(App.Width < App.Height, App.DesignHeight, App.DesignWidth))

Te formuły zamieniają wartości DesignWidth i DesignHeight aplikacji w zależności od tego, czy szerokość urządzenia jest mniejsza niż wysokość (orientacja pionowa) lub większa niż wysokość (orientacja pozioma).

Po dopasowaniu formuł Szerokości i Wysokości ekranu może również wystąpić konieczność ponownego rozdzielania kontrolek na ekranie w celu lepszego wykorzystania dostępnego obszaru. Na przykład, jeśli każda z dwóch kontrolek zajmuje połowę ekranu, można je układać pionowo w trybie portretowym, ale rozmieszczać je obok siebie w orientacji poziomej.

Aby określić, czy ekran ma Orientację pionową czy poziomą, można użyć właściwości orientacji ekranu.

Uwaga

W orientacji poziomej Górna i Dolna kontrolka jest prezentowana jako lewa i prawa kontrolka.

Kontrolka Właściwość Wzór
Upper X 0
Upper Y 0
Upper Szerokość If(Parent.Orientation = Layout.Vertical, Parent.Width, Parent.Width / 2)
Upper Wysokość If(Parent.Orientation = Layout.Vertical, Parent.Height / 2, Parent.Height)
Lower X If(Parent.Orientation = Layout.Vertical, 0, Upper.X + Upper.Width)
Lower Y If(Parent.Orientation = Layout.Vertical, Upper.Y + Upper.Height, 0)
Lower Szerokość Parent.Width - Lower.X
Dolnołużycki Wysokość Parent.Height - Lower.Y

Wyrażenia dostosowujące orientację pionową.

Wyrażenia dostosowujące orientację poziomą.

Rozmiary ekranu i punkty przerwania

Układ można dostosować zależnie od rozmiaru urządzenia. Właściwość Rozmiar ekranu klasyfikuje bieżący rozmiar urządzenia. Rozmiar jest dodatnią liczbą całkowitą; Typ ScreenSize zawiera nazwane stałe, które ułatwiają odczytywanie treści. W poniższej tabeli wymieniono stałe:

Stała Wartość Typowy typ urządzenia (z użyciem domyślnych ustawień aplikacji)
ScreenSize.Small 1 Telefonu
ScreenSize.Medium 2 Tablet, układ pionowy
ScreenSize.Large 3 Tablet, układ poziomy
ScreenSize.ExtraLarge 4 Komputer stacjonarny

Użyj tych rozmiarów, aby podejmować decyzje dotyczące układu aplikacji. Na przykład, aby kontrolka była ukrywana na urządzeniu o rozmiarze telefonu komórkowego, ale była widoczna w innym miejscu, można ustawić właściwość Widoczność kontrolki na tę formułę:

Parent.Size >= ScreenSize.Medium

Ta formuła daje w yniku wartość prawda, jeśli rozmiar wynosi średni lub większy i ma wartość fałsz w innych przypadkach.

Jeśli kontrolka ma zajmować inną część szerokości ekranu na podstawie rozmiaru ekranu, ustaw właściwość Szerokość kontrolki na tę formułę:

Parent.Width *
Switch(
    Parent.Size,
    ScreenSize.Small, 0.5,
    ScreenSize.Medium, 0.3,
    0.25
)

Ta formuła powoduje ustawienie szerokości na połowę szerokości ekranu na małym ekranie, trzy dziesiąte szerokości ekranu na średnim ekranie oraz ćwierć szerokości ekranu na innych ekranach.

Niestandardowe punkty przerwania

Właściwość Rozmiaru ekranu jest obliczana przez porównanie właściwości Szerokość z wartościami we właściwości SizeBreakpoints aplikacji. Ta właściwość jest jednokolumnową tabelą liczb, która wskazuje szerokość punktów przestawnych określających rozmiar (w przypadku poszczególnych rozmiarów ekranu):

W aplikacji utworzonej na tablet lub sieć Web wartość domyślna we właściwości SizeBreakpoints aplikacji to [600, 900, 1200]. W przypadku aplikacji utworzonej dla telefonów wartość wynosi [1200, 1800, 2400]. (Wartości dla aplikacji na telefony są podwojone, ponieważ aplikacje używają współrzędnych, które są efektywnie podwojone w stosunku do współrzędnych używanych w innych aplikacjach).

wartości domyślne właściwości App.SizeBreakpoints.

Punkty przerwania aplikacji można dostosować, zmieniając wartości we właściwości SizeBreakpoints aplikacji. Wybierz opcję Aplikacja w widoku drzewa, na liście właściwości wybierz pozycję SizeBreakpoints, a następnie dokonaj edycji wartości na pasku formuł. Użytkownik może utworzyć tyle punktów przerwań, ile potrzebuje aplikacja, ale tylko rozmiar od 1 do 4 odpowiada nazwanym rozmiarom ekranu. W formułach można odwoływać się do rozmiarów poza ExtraLarge według ich wartości liczbowych (5, 6 itd.).

Możesz również podać mniejszą liczbę punktów przerwania. Na przykład aplikacja może potrzebować tylko trzech rozmiarów (dwóch punktów przerwania), dzięki czemu rozmiar ekranu będzie taki, jak rozmiar mniejszy, średni i duży.

Znane ograniczenia

Tworzona kanwa nie odpowiada na utworzone formuły zmiany rozmiaru. Aby testować sposób braku odpowiedzi, należy zapisać i opublikować aplikację, a następnie otworzyć ją w oknach urządzeń i przeglądarek o różnej wielkości i orientacjach.

W przypadku wpisywania wyrażeń lub formuł we właściwościach X, Y, Szerokość i Wysokość kontrolki użytkownik może zastąpić te wyrażenia lub formuły, jeśli później przeciągnie kontrolkę do innej lokalizacji lub zmieni rozmiar kontrolki, przeciągając jej obramowanie.

Uwaga

Czy możesz poinformować nas o preferencjach dotyczących języka dokumentacji? Wypełnij krótką ankietę. (zauważ, że ta ankieta jest po angielsku)

Ankieta zajmie około siedmiu minut. Nie są zbierane żadne dane osobowe (oświadczenie o ochronie prywatności).