Wiadomości o usłudze

Stabilna wersja Jetpack WindowManager 1.5

Czas czytania: 2 min
Wyświetl profil Francesco Romano
Francesco Romano Inżynier ds. relacji z programistami, Android

Z przyjemnością informujemy, że biblioteka Jetpack WindowManager 1.5.0 jest już stabilna.

Ta wersja opiera się na solidnych podstawach adaptacyjności w WindowManager, dzięki czemu tworzenie dopracowanych, adaptacyjnych interfejsów, które wyglądają świetnie na ekranach o różnych rozmiarach, jest jeszcze łatwiejsze. Ekosystem Androida stale się rozwija, a użytkownicy korzystają z aplikacji na coraz większej liczbie urządzeń – od telefonów i urządzeń składanych po tablety, połączone wyświetlacze, Chromebooki, a nawet wyświetlacze samochodowe w trybie parkowania.

WindowManager 1.5 skupia się na udostępnianiu lepszych narzędzi dla tego zróżnicowanego środowiska urządzeń.

Nowości w WindowManager 1.5

Ta stabilna wersja wprowadza nowe punkty przerwania dla bardzo dużych ekranów, ulepsza interfejs API do osadzania aktywności i zapewnia większą elastyczność obliczania danych okna.

Nowe klasy rozmiarów okien: duże i bardzo duże

Największą aktualizacją w wersji 1.5 jest dodanie 2 nowych klas rozmiarów okien: dużej i bardzo dużej.

Klasy rozmiaru okna to nasz oficjalny, sprawdzony zestaw punktów przerwania widocznego obszaru, który pomaga projektować i tworzyć układy adaptacyjne. W wersji 1.5 rozszerzamy te wskazówki na ekrany, które wykraczają poza typowe tablety.

Oto nowe punkty przerwania szerokości:

  • Duży: szerokość od 1200 dp do 1600 dp.
  • Bardzo duży: szerokość ≥ 1600 dp
window_size_classes_width.png

Różne klasy rozmiaru okna na podstawie szerokości wyświetlacza. 

Dlaczego są one ważne?

Od wersji beta 2 Androida 16 QPR1 Android obsługuje połączone wyświetlacze, dzięki czemu użytkownicy mogą podłączyć do urządzenia zewnętrzny wyświetlacz i przekształcić je w narzędzie z dużym ekranem, które przypomina komputer.

ADB_5350_asset.gif

Telefon podłączony do wyświetlacza zewnętrznego, na którym trwa sesja na pulpicie. 

W przypadku tej nowej funkcji kluczowe są wskazówki dotyczące uwzględniania większych wyświetlaczy. 

Na tych bardzo dużych powierzchniach zwykłe powiększenie układu rozwiniętego tabletu nie zawsze zapewnia użytkownikom najlepsze wrażenia. Na przykład klient poczty e-mail może wygodnie wyświetlać 2 panele (skrzynkę pocztową i wiadomość) w klasie rozmiaru okna Rozwinięte. Jednak na bardzo dużym monitorze komputera klient poczty e-mail może wyświetlać 3 lub nawet 4 panele – na przykład skrzynkę pocztową, listę wiadomości, pełną treść wiadomości oraz panel kalendarza i zadań.

Dzięki oficjalnym punktom przerwania dla bardzo dużych rozmiarów wyświetlaczy WindowManager 1.5 daje wyraźny sygnał do wprowadzenia układów zaprojektowanych specjalnie pod kątem produktywnego, bogatego w informacje środowiska pulpitu.

Klasy rozmiaru okna można obliczyć za pomocą funkcji computeWindowSizeClass(), która jest funkcją rozszerzenia biblioteki androidx.window.core.layout rozszerzającą typ Set<WindowSizeClass>. 

Aby uwzględnić w projekcie nowe klasy rozmiarów okien, wystarczy wywołać funkcję ze zbioru WindowSizeClass.BREAKPOINTS_V2 zamiast WindowSizeClass.BREAKPOINTS_V1:

val currentWindowMetrics =

    WindowMetricsCalculator.getOrCreate()

    .computeCurrentWindowMetrics(LocalContext.current)


val sizeClass = WindowSizeClass.BREAKPOINTS_V2

    .computeWindowSizeClass(currentWindowMetrics)


Następnie zastosuj prawidłowy układ, gdy masz pewność, że aplikacja ma co najmniej tyle miejsca:

if(sizeClass.isWidthAtLeastBreakpoint(

    WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){

    ...

    // window is at least 1200 dp wide


}

Biblioteki adaptacyjne

Biblioteka Compose Material 3 Adaptive pomaga tworzyć adaptacyjne interfejsy, które automatycznie dostosowują się do bieżących konfiguracji okna, takich jak klasy rozmiaru okna czy pozycje urządzenia. 

Dobra wiadomość jest taka, że biblioteka jest już aktualna i zawiera nowe punkty przerwania. Od wersji 1.2 (obecnie w fazie wersji kandydującej do publikacji) domyślne funkcje dyrektywy rusztowania panelu obsługują klasy rozmiarów okien o dużej i bardzo dużej szerokości.

Wystarczy, że w pliku kompilacji Gradle zadeklarujesz, że chcesz akceptować nowe punkty przerwania:

currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

Dodatkowe ulepszenia

  • Osadzanie aktywności – automatyczne zapisywanie i przywracanie: WindowManager może teraz automatycznie zapisywać i przywracać stan podziałów osadzania aktywności. Pomaga to zachować układ użytkownika podczas ponownego tworzenia procesu, co zapewnia bardziej stabilne i spójne działanie. Deweloperzy nie muszą już ręcznie zapisywać i przywracać stanu, ale mogą po prostu włączyć automatyczne zapisywanie, ustawiając właściwość EmbeddingConfiguration#isAutoSaveEmbeddingState.
  • Rozszerzone WindowMetrics: teraz możesz obliczać WindowMetrics z kontekstu aplikacji, a nie tylko z kontekstu aktywności. Zapewnia to większą elastyczność w uzyskiwaniu dostępu do informacji o oknie z różnych części aplikacji.

Od czego zacząć

Aby zacząć używać nowych klas rozmiarów (dużego i bardzo dużego) oraz innych funkcji wersji 1.5 w projektach na Androida, zaktualizuj zależności aplikacji w pliku build.gradle.kts do najnowszej wersji stabilnej:

dependencies {
    implementation("androidx.window:window:1.5.0") 

    // or, if you're using the WindowManager testing library:

    testImplementation("androidx.window:window-testing:1.5.0")

}

WindowManager 1.5 to kolejny krok w kierunku tworzenia w pełni adaptacyjnych aplikacji, które działają na różnych urządzeniach z Androidem. Pełną listę zmian i poprawek znajdziesz w oficjalnych informacjach o wersji.

Powodzenia!

Autor:
Czytaj dalej