Constraint Layout 2.0 – najnowsza biblioteka jetpack

Udostępniono najnowszą wersję biblioteki Constraint Layout 2.0. Dzięki niej można szybko tworzyć złożone układy, także z narzędziami zintegrowanymi z Android Studio do podglądu XML. Oprócz tego dla Constraint Layout stworzono repozytorium github, obecnie tylko do odczytu.
Flow
Flow (przepływ) jest nowo dodanym układem. Pozwala on na tworzenie łańcuchów przechodzących do kolejnej linii lub sekcji ekranu.
Animacja przedstawiająca tworzenie wielu łańcuchów, gdy elementy zapełniają wiersz
Układając wiele elementów w łańcuchu często zaczyna brakować im miejsca. Wtedy wystarczy użyć Flow i zbudować układ o dynamicznym rozmiarze, zgodnym np. z szerokością ekranu podczas obracania.
Przede wszystkim Flow jest układem wirtualnym, czyli grupą widoków uczestniczących w ograniczeniach i układzie, ale nie dodających poziomów. W celu zakończenia układu odwołują się do innych widoków w układzie łańcuchowym.
Funkcja Flow zawiera opcję wrapMode, konfigurującą trzy tryby przepływów: none, chain oraz align.
- none – tworzy pojedynczy łańcuch, przepełniony, jeśli treść nie pasuje.
- chain – na przepełnieniu tworzy kolejny łańcuch dla elementów przelewowych.
- align – podobny do łańcucha, ale wyrównuje wiersze w kolumny.
Efekty można zobaczyć na poniższej wizualizacji.
Layer – nowy pomocnik w Constraint Layout 2.0
Layer pozwala na tworzenie wirtualnej warstwy z kilku widoków. Jednak w przeciwieństwie do Flow, nie przedstawia widoków. Pozwala na jednoczesne stosowanie przekształceń w kilku widokach. Jest to opcja przydatna przy budowie animacji obrotu (rotate), przesunięcia (translate) czy scalania (scale).
Przykładowe użycie warstwy w układzie wiązań:
<androidx.constraintlayout.helper.widget.Layer android:layout_width="wrap_content" android:layout_height="wrap_content" app:constraint_referenced_ids="card1, card2, card3" />
Motion Layout
Jedną z najbardziej oczekiwanych funkcji Constraint Layout 2.0 jest układ ruchu. Jest to narzędzie do animacji do zbudowania praktycznie dowolnej animacji na Androida.
Motion Layer jest oparty na Constraint Layout, a nawet rozszerza go, przez co możliwe są animacje między kilkoma zestawami łańcuchów. Dzięki układowi ruchu programiści mogą koordynować animację wielu widoków.
Są dwie sytuacje, w których wyróżnia się Motion Layout:
- Przejścia stanów, czyli animacje, które są sterowane zmianą stanu, np. przez przejście użytkownika na ekran.
- Animacje do wyszukania – animacje sterowane przez inne dane wejściowe, takie jak zwijany pasek narzędzi, który reaguje na przewijanie
Motion Layout pozwala na dostosowanie sposobu przesuwania, przewijania, skalowania, obracania, zanikania, a także animowania atrybutów niestandardowych. Obsługuje także gesty oparte na fizyce i steruje prędkością animacji.
Podsumowanie Constraint Layout 2.0
Constraint Layout 2.0 posiada wiele nowych funkcji. Dokładna ich dokumentacja znajduje się na GitHub. Aby skorzystać z Constrain Layout wystarczy podbić wersję build.gradle:
implementation “androidx.constraintlayout:constraintlayout:2.0.1”
Źródło: Medium