WindowManager
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja Beta | Wersja Alfa |
|---|---|---|---|---|
| 24 września 2025 r. | 1.5.0 | - | - | - |
Deklarowanie zależności
Aby dodać zależność od WindowManager, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w artykule Repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:
Groovy
dependencies { implementation "androidx.window:window:1.5.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.5.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.5.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.5.0" // For testing implementation "androidx.window:window-testing:1.5.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.5.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.5.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.5.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.5.0") // For testing implementation("androidx.window:window-testing:1.5.0") }
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.5
Wersja 1.5.0
24 września 2025 r.
Publikacja androidx.window:window-*:1.5.0 Wersja 1.5.0 zawiera te zmiany.
Ważne zmiany od wersji 1.4.0:
- Dodaj punkty przerwania
WindowSizeClassdla dużych i bardzo dużych ekranów. (I40d85) - Rozwiń obliczanie
WindowMetricsdo kontekstu aplikacji. (I8eeeb, b/360934048) - Udostępnienie funkcji pobierającej, aby umożliwić bezpośredni dostęp do
WindowLayoutInfo(Ie9513) - Wprowadzenie interfejsu API do automatycznego zapisywania stanu osadzania i automatycznego przywracania stanu osadzania po ponownym uruchomieniu procesu aplikacji. (Ie0295)
- Usunięto eksperymentalny interfejs API
WindowInsets. (I68a71)
Poprawki błędów
- Poprawka: w niektórych przypadkach funkcja
EmbeddingRulezwracała inne wartościhashCode. (I748cc) - Poprawka dotycząca sytuacji, w której może wystąpić
NullPointerExceptionz powodu błędów wdrożenia na urządzeniu. - Poprawka dotycząca sytuacji, w których nasze
ActivityEmbeddingkontrole bezpieczeństwa nie działały z powodu usunięcia nieużywanych klas przez ProGuard.
Wkład zewnętrzny
- Dodaj wszystkie platformy KMP do
window-core(If3d7c)
Wersja 1.5.0-rc01
27 sierpnia 2025 roku
Publikacja androidx.window:window-*:1.5.0-rc01 Wersja 1.5.0-rc01 zawiera te zmiany.
Poprawki błędów
- Poprawka dotycząca sytuacji, w której może wystąpić
NullPointerExceptionz powodu błędów wdrożenia na urządzeniu. - Poprawka dotycząca sytuacji, w których nasze
ActivityEmbeddingkontrole bezpieczeństwa nie działały z powodu usunięcia nieużywanych klas przez ProGuard.
Wersja 1.5.0-beta02
13 sierpnia 2025 r.
Publikacja androidx.window:window-*:1.5.0-beta02 Wersja 1.5.0-beta02 zawiera te zmiany.
Nowe funkcje
- Drobne poprawki błędów.
Wkład zewnętrzny
- Dodaj wszystkie platformy KMP do
window-core(If3d7c)
Wersja 1.5.0-beta01
2 lipca 2025 r.
Publikacja androidx.window:window-*:1.5.0-beta01 Wersja 1.5.0-beta01 zawiera te zmiany.
Wersja 1.5.0-alpha02
7 maja 2025 r.
Publikacja androidx.window:window-*:1.5.0-alpha02 Wersja 1.5.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaj punkty przerwania
WindowSizeClassdla dużych i bardzo dużych ekranów. (I40d85) - Rozwiń obliczanie
WindowMetricsdo kontekstu aplikacji. (I8eeeb, b/360934048) - Udostępnienie funkcji pobierającej, aby umożliwić bezpośredni dostęp do
WindowLayoutInfo(Ie9513) - Wprowadzenie interfejsu API do automatycznego zapisywania stanu osadzania i automatycznego przywracania stanu osadzania po ponownym uruchomieniu procesu aplikacji. (Ie0295)
- Usunięto eksperymentalny interfejs API
WindowInsets. (I68a71) - Ukrywanie kilku zespołów (I87b8d)
Poprawki błędów
- Poprawka: w niektórych przypadkach funkcja
EmbeddingRulezwracała inne wartościhashCode. (I748cc)
Wersja 1.5.0-alpha01
12 marca 2025 r.
Publikacja androidx.window:window-*:1.5.0-alpha01 Wersja 1.5.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Pierwsza wersja 1.5.0.
Wersja 1.4
Wersja 1.4.0
20 maja 2025 r.
Publikacja androidx.window:window-*:1.4.0 Wersja 1.4.0 zawiera te zmiany.
Ważne zmiany od wersji 1.3.0
- Umieszczanie aktywności
- Interfejs API do dostosowywania animacji uruchamiania
- Interaktywny separator
ActivityStackPrzypinanie- Przyciemnianie okna pełnoekranowego
- Wywołanie zwrotne informacji o umieszczonym oknie aktywności
- Ulepszone
ActivityStackzarządzanie - Uruchamianie aktywności w określonym
ActivityStack
WindowMetricsCalculator- Ulepszona obsługa testowania
WindowMetrics- Wygodne metody obliczania wartości
withDpiheightDp - Zaktualizuj sprawdzanie zakresu do
isAtLeasti użyj dolnych granic, aby umożliwić dodawanie nowych wartości
- Wygodne metody obliczania wartości
WindowSizeClass- Dodaj sposób obliczania z usługi
WindowMetrics
- Dodaj sposób obliczania z usługi
WindowInfoTracker- Dodanie interfejsu API do wykrywania obsługiwanych pozycji na urządzeniu
Wersja 1.4.0-rc02
23 kwietnia 2025 r.
Publikacja androidx.window:window-*:1.4.0-rc02 Wersja 1.4.0-rc02 zawiera te zmiany.
Poprawki błędów
- Naprawianie awarii narzędzia ProGuard w przypadku
ActivityEmbedding.
Wersja 1.4.0-rc01
12 marca 2025 r.
Publikacja androidx.window:window-*:1.4.0-rc01 Wersja 1.4.0-rc01 zawiera te zmiany.
Nowe funkcje
- Aktualizacje interfejsu
WindowSizeClassAPI. - Zmiany w interfejsach API do osadzania aktywności.
Wersja 1.4.0-beta02
12 lutego 2025 r.
Publikacja androidx.window:window-*:1.4.0-beta02 Wersja 1.4.0-beta02 zawiera te zmiany.
Nowe funkcje
- Naprawianie adnotacji, która była tylko w usłudze, ale nie w metodzie pobierającej.
Wersja 1.4.0-beta01
15 stycznia 2025 r.
Publikacja androidx.window:window-*:1.4.0-beta01 Wersja 1.4.0-beta01 zawiera te zmiany.
Nowe funkcje
- Dodaj interfejs API, aby umożliwić dostosowywanie
ActivityEmbeddinganimacji. - Rozwiń
WindowMetricsCalculatortest APIs, aby umożliwić fałszowanie danych okna.
Zmiany w interfejsie API
- Ukrywanie kilku zespołów (I87b8d)
- Zezwalaj aplikacjom na dostosowywanie animacji
ActivityEmbedding(If31a8) - Dodano obsługę
watchosDeviceArm64KMP i wersji Kotlin 1.9 (Icf15d, b/364652024) - Udostępnij interfejsy API
WindowMetricsCalculator. (I1cebf)
Poprawki błędów
- Ta biblioteka korzysta teraz z adnotacji o wartości null JSpecify, które są używane w typie. Deweloperzy korzystający z języka Kotlin powinni używać tego argumentu kompilatora, aby wymusić prawidłowe użycie:
-Xjspecify-annotations=strict(jest to domyślny argument począwszy od wersji 2.1.0 kompilatora Kotlin). (Ie69ac, b/326456246)
Wersja 1.4.0-alpha05
16 października 2024 r.
Publikacja androidx.window:window-*:1.4.0-alpha05 Wersja 1.4.0-alpha05 zawiera te zmiany.
Nowe funkcje
- Dodaj funkcje ułatwiające uzyskanie wartości
widthDpiheightDpzWindowMetrics.
Zmiany w interfejsie API
- Dodaj
widthDpiheightDpdoWindowMetrics. (Ide026) - Usunięto eksperymentalny interfejs API
WindowInsets. (I68a71) - Zmiana nazw metod sprawdzania zakresu na
isAtLeast(Ib0ab7)
Wersja 1.4.0-alpha04
2 października 2024 r.
Publikacja androidx.window:window-*:1.4.0-alpha04 Wersja 1.4.0-alpha04 zawiera te zmiany.
Zmiany w interfejsie API
- Dodano metodę obliczania
WindowSizeClassna podstawieWindowMetrics. (874dba) - Zmień metody
WindowSizeClassnacontainsWidthDp,containsHeightDpicontainsWindowSizeDp, aby były bardziej przejrzyste. (fa760d) - Przekształć
WindowAreaControllerw abstrakcyjną klasę bazową. (I90893)
Poprawki błędów
- Dodanie obsługi względnych granic podczas tworzenia testu
FoldingFeature. (2e6b3e) - Ogólne poprawki błędów podczas wybierania tagu
WindowSizeClass.
Wersja 1.4.0-alpha03
18 września 2024 r.
Publikacja androidx.window:window-*:1.4.0-alpha03 Wersja 1.4.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Dodaj metodę narzędziową, aby uzyskać
WindowSizeClasszWindowMetrics. (I83f1f) - Zmień nazwę
isAtLeastnacontainsBreakpoint. (I85b47) - Dodaj przeciążenie do
computeWindowSizeClassza pomocą liczb zmiennoprzecinkowych. (I3dcb2, b/364677934, b/364677802, b/364680886)
Poprawki błędów
- Dodaj brakujące punkty przerwania do domyślnego zestawu punktów przerwania
WindowSizeClass. - Naprawiliśmy błąd, który w niektórych przypadkach powodował nieprawidłowe wybieranie kompaktowych wymiarów.
Wersja 1.4.0-alpha02
4 września 2024 r.
Publikacja androidx.window:window-*:1.4.0-alpha02 Wersja 1.4.0-alpha02 zawiera te zmiany.
Nowe funkcje
Dodaliśmy obsługę niestandardowych właściwości WindowSizeClass.
- Otwórz konstruktor
WindowSizeClass, aby programiści mogli używać własnych. - Dodaj
isAtLeastmetody narzędzioweWindowSizeClass, aby deweloperzy mogli przetwarzać zakres wartościWindowSizeClass. - Dodaj funkcję rozszerzenia w
Set<WindowSizeClass>, aby obliczyć najlepsze dopasowanie z zestawu. - Dodaj stałe dla zalecanych punktów przerwania na Androidzie.
- Dodaj zestaw punktów przerwania odpowiadający zalecanym punktom przerwania na Androidzie.
Zmiany w interfejsie API
- Zaktualizuj nazwy metod granic dla
WindowSizeClass. (If89a6) - Zaktualizuj interfejs API
WindowSizeClass, aby w przyszłości można było dodawać nowe wartości punktów przerwania. Zamiast granic bezwzględnych używamy dolnych granic i zalecamy programistom, aby podczas przetwarzaniaWindowSizeClasssprawdzali dolną granicę. Obecne wersjeWindowWidthSizeClassiWindowHeightSizeClasszostaną wycofane, ponieważ nie będą już rozwijane. (I014ce)
Wersja 1.4.0-alpha01
7 sierpnia 2024 r.
Publikacja androidx.window:window-*:1.4.0-alpha01 Wersja 1.4.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Przypinanie stosu aktywności umożliwia aplikacjom przypinanie treści w jednym kontenerze i odseparowanie nawigacji od drugiego kontenera.
- Interaktywny separator umożliwia aplikacjom wyświetlanie stałego lub przesuwanego separatora między 2 aktywnościami w widoku podzielonym.
- Przyciemnianie okna dialogowego na pełnym ekranie umożliwia aplikacjom określenie obszaru przyciemnienia okna dialogowego, aby przyciemnić całe okno zadania lub tylko kontener, w którym wyświetla się okno dialogowe.
- Embedded Activity Window Info Callback umożliwia aplikacjom ciągłe otrzymywanie aktualizacji wbudowanego okna aktywności.
- Osadzanie tła animacji umożliwia aplikacjom określanie tła animacji, co poprawia jakość animacji przejścia, gdy używany jest element
ActivityEmbedding. - Ulepszone zarządzanie stosem aktywności umożliwia aplikacjom większą kontrolę nad
ActivityStacks, gdy używana jest funkcjaActivityEmbedding, w tym: - Uruchamianie aktywności w określonym
ActivityStack - Kończenie
ActivityStack
Zmiany w interfejsie API
Nowy interfejs API
WindowInfoTracker#supportedPostures:- Interfejs API, który określa, czy urządzenie obsługuje tryb TableTop w przypadku urządzeń składanych. Dodaje WindowAreaSessionPresenter#getWindow
Dodaj interfejsy API, aby obsługiwać
ActivityStackprzypinanie:SplitPinRulezajęciaSplitController#pinTopActivityStackSplitController#unpinTopActivityStack
Dodawanie interfejsów API w celu włączenia i skonfigurowania interaktywnego separatora
DividerAttributeszajęciaSplitAttributes.Builder#setDividerAttributes
Dodawanie interfejsów API do ustawiania wartości
EmbeddingConfigurationiDimAreaBehaviorw przypadku okienEmbeddingConfigurationzajęciaDimAreaBehaviorzajęciaActivityEmbeddingController#setEmbeddingConfiguration
Dodawanie interfejsów API w celu otrzymywania aktualizacji informacji o oknie aktywności osadzonej
EmbeddedActivityWindowInfozajęciaActivityEmbeddingController#embeddedActivityWindowInfo
Dodawanie interfejsów API do ustawiania tła animacji osadzania
EmbeddingAnimationBackgroundSplitAttributes.Builder#setAnimationBackground
Dodaj interfejsy API, aby zakończyć
ActivityStacksActivityEmbeddingController#finishActivityStacks
Dodawanie interfejsów API do konfigurowania uruchamiania
ActivityStackActivityEmbeddingOptions#setLaunchingActivityStack
Te interfejsy API są stabilne i nie są już eksperymentalne:
ActivityEmbeddingController#invalidateVisibleActivityStacks(przeniesiono z SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStackSplitController#updateSplitAttributes
Dodaj interfejsy API dla wersji 1.4. (I56774)
Poprawki błędów
- Naprawiono błąd na niektórych urządzeniach, w przypadku których w sytuacji, gdy sesja jest aktywna, zwracana była wartość UNAVAILABLE zamiast ACTIVE.
- Wycofano obsługę
transferActivityToWindowAreana urządzeniach zvendorApiLevel2 ze względu na niestabilną obsługę interfejsu API. - Wprowadzenie interfejsu API umożliwiającego przeciąganie do trybu pełnoekranowego w przypadku dzielnika z możliwością przeciągania w osadzaniu aktywności. (I645c9)
- Zezwalaj aplikacjom na wyłączanie animacji
ActivityEmbeddingza pomocą parametrów animacji dlaSplitAttributes. (Idc01a) - Usunęliśmy ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API podczas korzystania z R8 w AGP 7.3 lub nowszym (np. R8 w wersji 3.3) oraz w przypadku wszystkich kompilacji podczas korzystania z AGP 8.1 lub nowszego (np. D8 w wersji 8.1). Klienci, którzy nie korzystają z AGP, powinni zaktualizować D8 do wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (Ia60e0, b/345472586)
- Zezwól rozszerzeniom na pobieranie parametrów animacji dla
SplitAttributes, aby urządzenie mogło ich używać do przejść animacji. (Iede00) - Ukrywanie interfejsów API nakładki (Ic4251)
- Wprowadzenie interfejsów API do konfigurowania stałego lub przesuwanego separatora podziału (Ia7a78)
- Dodano gęstość do
WindowMetrics(Id6723) - Dodano interfejs API, aby uzyskać
SupportedPostures. (If557a) - Usunięto
setLaunchingActivityStackz eksperymentalnego interfejsu API (I191cf) - Wprowadzenie
ActivityEmbeddingController#embeddedActivityWindowInfo(I24312) - Wycofaj
#getTokeni dodaj#getActivityStackToken(Ie0471) - Wprowadzenie adaptera wywołania zwrotnego dla interfejsu API przepływu
embeddedActivityWindowInfo(Ida77f) - Dodano adapter wywołania zwrotnego dla interfejsu API przepływu overlayInfo (I7264f)
- Wprowadź
WindowSdkExtensionsRule, aby zastąpićextensionsVersionna potrzeby testowania. (Ifb928) - – Przenieś
#setLaunchingActivityStackdo pakietu, aby zapewnić zgodność z użyciemActivityOptionsCompat.- Użytkownicy powinni przekazywać wartość
activityOptions.toBundlezamiast samego znakuActvityOptions. - Usuń
#setLaunchingActivityStack(Activity). Użytkownicy powinni przejść naActivityEmbeddingController#getActivityStac(Activity), aby uzyskaćActivityStack, i przekazywaćActivityStackdo#setLaunchingActivityStack. (Ie0ccc)
- Użytkownicy powinni przekazywać wartość
- – Wprowadź identyfikatory
ActivityStack.TokeniSpltInfo.Token, aby umożliwić komunikację między WM Jetpack a rozszerzeniami.- Wycofanie/zastąpienie interfejsów API, aby przyjmować/zwracać token zamiast IBinder. (I12b24)
- – Przedstaw
ActivityEmbeddingController#invalidateVisibleActivityStacks- Usuń
SplitController#invalidateTopVisibleSplitAttributes, ponieważ ta funkcja została połączona z funkcją#invalidateVisibleActivityStacks(I02ef5)
- Usuń
- – dodanie interfejsu API do konfigurowania osadzania; (I59a4a)
- – dodawanie przypinania i odpinania najpopularniejszych interfejsów API
ActivityStackandroidx.Window;- Aktualizacja aplikacji demonstracyjnej, która umożliwia przypinanie i odpinanie u góry
ActivityStack(I24dd3)
- Aktualizacja aplikacji demonstracyjnej, która umożliwia przypinanie i odpinanie u góry
- Ponownie dodaj
#finishActivityStacksiActivityEmbeddingOptions(Ic1ab3) - Usuń niestabilne interfejsy API. (Ibc534, b/302380585)
Wersja 1.3
Wersja 1.3.0
29 maja 2024 r.
Publikacja androidx.window:window-*:1.3.0 Wersja 1.3.0 zawiera te zmiany.
Ważne zmiany od wersji 1.2.0
- Obsługa Kotlin Multiplatform w przypadku klas rozmiarów okien.
Wersja 1.3.0-rc01
14 maja 2024 r.
WindowManager Jetpack 1.3 wprowadza obsługę Kotlin Multiplatform dla WindowSizeClass funkcji, a także wiele poprawek błędów.
Publikacja androidx.window:window-*:1.3.0-rc01 Wersja 1.3.0-rc01 zawiera te zmiany.
Wersja 1.3.0-beta02
1 maja 2024 r.
Publikacja androidx.window:window-*:1.3.0-beta02 Wersja 1.3.0-beta02 zawiera te zmiany.
Zmiany w interfejsie API
- Usunięcie obsługi tworzenia i używania niestandardowych
WindowSizeClass. (Id1143)
Poprawki błędów
- Poprawki
KotlinReflectionInternalErrorspowodowane usunięciem niektórych plików przez ProGuard na niektórych urządzeniach. (I01b02)
Wersja 1.3.0-beta01
3 kwietnia 2024 r.
Publikacja androidx.window:window-*:1.3.0-beta01 Wersja 1.3.0-beta01 zawiera te zmiany.
Wersja 1.3.0-alpha03
6 marca 2024 roku
Publikacja androidx.window:window-*:1.3.0-alpha03 Wersja 1.3.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Podziel
WindowSizeClassUtilna bardziej szczegółowe metody. (Ie9292) - Przywróć
WindowSizeClass#compute(I21355, b/324293374)
Poprawki błędów
- Rozwiązaliśmy problem z awarią, która występowała, gdy kontekst nie był prawidłowo rozpakowywany. (94d10ce , b/318787482)
Wersja 1.3.0-alpha02
7 lutego 2024 r.
Publikacja androidx.window:window-*:1.3.0-alpha02 Wersja 1.3.0-alpha02 zawiera te zatwierdzenia.
Nowe funkcje
- Zmiany wprowadzone w interfejsie API klasy rozmiaru okna, aby zwiększyć elastyczność deweloperów, którzy chcą używać własnych klas rozmiaru.
Zmiany w interfejsie API
- Dodaj ograniczenia wysokości do selektora szerokości. (I23393)
- Dodaj funkcje narzędziowe do wybierania
WindowSizeClassz zestawu. Dodanie eksperymentalnych funkcji oceny, aby deweloperzy mogli pisać własne selektory. Dodaj funkcję rozszerzenia selektora, aby wybrać najszerszy znakWindowSizeClassw danym zakresie. (I0c944) - Otwórz konstruktor
WindowSizeClass, aby dodać niestandardowe punkty przerwania. (Ic1ff3) - Dodano funkcję ułatwiającą tworzenie klasy rozmiaru na podstawie szerokości, wysokości i gęstości. (If67f4)
Poprawki błędów
- Naprawiono wyjątek, gdy wartość zmiennoprzecinkowa jest obcinana do 0. (272ffac)
Wersja 1.3.0-alpha01
15 listopada 2023 r.
Publikacja androidx.window:window-*:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępnianie eksperymentalnych interfejsów API okien do uzyskiwania dostępu do tylnego ekranu.
- Interfejsy API do tworzenia
FoldingFeaturesą już stabilne. - Interfejsy API do testowania ustawień fałszywych wartości
ActivityEmbeddingsą już stabilne. WindowLayoutInfoPublisherRulezgłasza teraz zastąpienie podczas pobierania wartości zUiContext.WindowInfoTrackerraportuje dane funkcji składania do parametrówUiContext.- Udostępnianie wersji rozszerzeń na urządzeniu.
WindowPropertiesstałe dotyczące zastąpień ustawień aplikacji przez użytkownika:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE– informuje system, że aplikacja zrezygnowała z zastępowania zgodności z formatem obrazu widocznym dla użytkownika.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE– informuje system, że aplikacja zrezygnowała z opcji pełnoekranowej w ustawieniach zastępowania zgodności z formatem obrazu użytkownika.
Wersja 1.2
Wersja 1.2.0
15 listopada 2023 r.
Publikacja androidx.window:window-*:1.2.0 Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
- Udostępnianie eksperymentalnych interfejsów API okien do uzyskiwania dostępu do tylnego ekranu.
- Interfejsy API do tworzenia
FoldingFeaturesą już stabilne. - Interfejsy API do testowania ustawień fałszywych wartości
ActivityEmbeddingsą już stabilne. WindowLayoutInfoPublisherRulezgłasza teraz zastąpienie podczas pobierania wartości zUiContext.WindowInfoTrackerraportuje dane funkcji składania do parametrówUiContext.- Udostępnianie wersji rozszerzeń na urządzeniu.
Wersja 1.2.0-rc01
1 listopada 2023 roku
Publikacja androidx.window:window-*:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępnianie eksperymentalnych interfejsów API okien do uzyskiwania dostępu do tylnego ekranu.
- Interfejsy API do tworzenia
FoldingFeaturesą już stabilne. - Interfejsy API do testowania ustawień fałszywych wartości
ActivityEmbeddingsą już stabilne. WindowLayoutInfoPublisherRulezgłasza teraz zastąpienie podczas pobierania wartości zUiContext.WindowInfoTrackerraportuje dane funkcji składania do parametrówUiContext.- Udostępnianie wersji rozszerzeń na urządzeniu.
Wersja 1.2.0-beta04
18 października 2023 r.
Publikacja androidx.window:window-*:1.2.0-beta04 Wersja 1.2.0-beta04 zawiera te zmiany.
Zmiany w interfejsie API
- Usuń niestabilne interfejsy API. (Ibc534, b/302380585)
Wersja 1.2.0-beta03
20 września 2023 r.
Publikacja androidx.window:window-*:1.2.0-beta03 Wersja 1.2.0-beta03 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaj sprawdzanie
RequiresApiw przypadku interfejsów API, które do prawidłowego działania wymagają określonej wersji rozszerzeń. - Dodaj interfejs API, aby udostępnić wersję rozszerzeń na urządzeniu.
Zmiany w interfejsie API
- Dodaj adnotacje do wymaganej wersji rozszerzenia pakietu SDK okna w publicznych interfejsach API.
- Usuń
isXXXSupportedw komponencie osadzania aktywności. (Ie3dae)
- Usuń
- Wprowadź
WindowSdkExtensions, aby zgłosić wersję rozszerzenia na urządzeniu.- Wprowadziliśmy adnotację
RequiresWindowSdkExtension, aby oznaczać minimalną wymaganą wersję rozszerzenia. (I05fd4)
- Wprowadziliśmy adnotację
- Sprawia, że
WindowAreaInfo#getCapabilitynie może mieć wartości null. (I17048)
Wersja 1.2.0-beta01
26 lipca 2023 r.
Publikacja androidx.window:window-*:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępnianie eksperymentalnych interfejsów API okien do uzyskiwania dostępu do tylnego ekranu.
- Interfejsy API do tworzenia
FoldingFeaturesą już stabilne. - Interfejsy API do testowania ustawień fałszywych wartości
ActivityEmbeddingsą już stabilne. WindowLayoutInfoPublisherRulezgłasza teraz zastąpienie podczas pobierania wartości zUiContext.WindowInfoTrackerraportuje dane funkcji składania do parametrówUiContext.
Zmiany w interfejsie API
- Oznaczono interfejsy API
WindowAreajako eksperymentalne, aby umożliwić dalsze zmiany interfejsu API w celu uzyskania stabilnej wersji 1.3 (I857f5). - Zaktualizowano pliki interfejsu API, aby dodać adnotacje o pomijaniu zgodności (I8e87a, b/287516207)
Wersja 1.2.0-alpha03
21 czerwca 2023 r.
Publikacja androidx.window:window-*:1.2.0-alpha03 Wersja 1.2.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Usunięcie wycofanych interfejsów API z powierzchni interfejsu API.
- Dodaj interfejsy API obsługujące wyświetlanie równoczesne.
- Dodaj właściwość, aby zrezygnować z wymuszonego zastąpienia zmiany rozmiaru.
- Dodaj usługę, aby zrezygnować z zastępowania minimalnych proporcji.
- Stabilizacja
ActivityEmbeddingRulena potrzeby testów jednostkowych związanych z osadzaniem aktywności.
Zmiany w interfejsie API
Poprawki błędów
- Dodawanie właściwości zgodności rezygnacji z zastępowania wymuszonej zmiany rozmiaru (Ie7ab1)
- Usuwa
SESSION_STATE_CONTENT_INVISIBLEz interfejsu rozszerzeń. (I6ed19) - Stabilizacja
ActivityEmbeddingRulena potrzeby testów jednostkowych związanych z osadzaniem aktywności. (I8d6b6) - Dodanie właściwości wykluczającej zgodność w przypadku zastąpienia minimalnego współczynnika proporcji. (I66390)
- Usuwa wycofane interfejsy WindowArea API (Ieb67c)
- Zmień nazwę właściwości pętli żądania orientacji na
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED. (Ie2fbd) - Aktualizuje nazwy stałych sesji obszaru okna (I83675)
- Dodanie właściwości zgodności rezygnacji, która ignoruje pętlę żądania orientacji po wykryciu (I0a7a2)
- Dodaj
WindowAreaComponent#STATUS_ACTIVE, aby wskazać, że funkcja jest już aktywna. (I62bc3) - Dodawanie interfejsów API
RearDisplayPresentationMode(I0401c) - Interfejs API do usuwania koloru tła w wersji stabilnej. (I34c3e)
- Ukryj interfejsy API obszaru okna. (I39de0)
- Dodaj metody zastępowania
SplitInfow klasieSplitController. Dodaj metody testowe, aby utworzyć podwójne wartości dlaSplitInfoiActivityStack. (Icd69f) - Oznacz tag jako opcjonalny dla
ActivityRule.Builder. (Ib0b44) - Usuń
RatioSplitType,ExpandContainersSplitiHingeSplitType. Są oneSplitTypeteraz.- Zastąp
#splitEqually(),#expandContainers()i#splitByHingestałymi wartościamiSplitType SPLIT_TYPE_EQUAL,SPLIT_TYPE_EXPANDiSPLIT_TYPE_HINGE - Usunięcie funkcji ustawiania typu rezerwowego dla typu podziału zawiasu. Jeśli typu podziału zawiasu nie można zastosować ze względu na bieżący stan urządzenia lub okna, następuje podział kontenera zadania nadrzędnego na równe części. Użyj
SplitController#setSplitAttributesCalculator, aby dostosować typ podziału rezerwowego. (Ifcc59)
- Zastąp
- Wycofaj
add/removeSplitCallback- Przenieś
add/removeSplitCallbackdoSplitControllerCallbackAdapter - Dodaj obsługę
Flow, aby uzyskać listęSplitInfo(I7f1b6)
- Przenieś
- Dodaj regułę testową dla
ActivityEmbeddingController(I42e9b) - Zmieniam nazwę
ActivityOptionsCompatnaActivityEmbeddingOptions(I89301) - Dodaj
splitSupportStatus, aby wskazać, czy osadzanie aktywności jest dostępne. (I10024) - Wprowadź
SplitAttributes.BackgroundColor, aby lepiej odzwierciedlać wartośćDEFAULT. Wyjaśniliśmy, że nieprzezroczysty kolor tła animacji nie jest obsługiwany, więc wszystkie nieprzezroczyste kolory będą traktowane jako domyślne, co oznacza użycie bieżącego koloru tła okna motywu. (Ic6b95) - Zastąp
alwaysAllow()ialwaysDisallow()wartościamiALWAYS_ALLOWiALWAYS_DISALLOW. (I3057b) - Dodaj interfejsy API dla
SplitRule,SplitAttributes,SplitAttributesCalculator. (I92d23) - Dodaj
TestActivityStack, aby utworzyćActivityStackna potrzeby testowania.- Dodaj
TestSplitInfo, aby utworzyćSplitInfona potrzeby testowania. (I8e779)
- Dodaj
- Dodaj możliwość tworzenia fałszywych
SplitAttributesCalculatorParams, aby deweloperzy mogli weryfikować dostosowaneSplitAttributesCalculator(Id4a6e). - Dodaj
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)iWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)(I66c7f)
Wersja 1.2.0-alpha02
7 czerwca 2023 r.
Publikacja androidx.window:window-*:1.2.0-alpha02 Wersja 1.2.0-alpha02 zawiera te zmiany.
Nowe funkcje
- Zaktualizuj testowy interfejs API, aby zawierał stałą wartość dla nieokreślonych funkcji składania.
- Zastąpienie za pomocą
WindowLayoutInfoPublishRulespowoduje zastąpienie wszystkich wartościwindowLayoutInfo, w tym interfejsu Context API.
Zmiany w interfejsie API
- Dodano stałą dla nieokreślonej funkcji składania na środku. (I7530c)
Poprawki błędów
- Zaktualizuj
WindowLayoutInfoPublishRule, aby obsługiwać zastąpienia wContextna podstawieWindowLayoutInfo. (I2037a)
Wersja 1.2.0-alpha01
24 maja 2023 r.
Publikacja androidx.window:window-*:1.2.0-alpha01 Wersja 1.2.0-alpha01 zawiera te zmiany.
Nowe funkcje
Ustabilizuj interfejsy API testowania w zakresie osadzania aktywności i WindowLayoutInfoTracker. ActivityEmbeddingRule została promowana do wersji stabilnej.
WindowMetricsCalculatorRule została promowana do wersji stabilnej.
Funkcje narzędziowe do tworzenia FoldingFeature na potrzeby testów zostały przeniesione do wersji stabilnej.
Zmiany w interfejsie API
- Stabilizacja
ActivityEmbeddingRulena potrzeby testów jednostkowych związanych z osadzaniem aktywności. (I8d6b6) WindowMetrisCalculatorTestRulejest stabilna i umożliwia testowanie metryk zastępczych w przypadku testów JVM. Aby uzyskać dokładne wyniki, zalecamy użycie emulatora.- Stabilizacja interfejsów API testów dla
WindowLayoutInfow celu obsługi testowania na maszynie JVM. (Ie036e) - Dodaj
IntRangedla wartości funkcji testowego składania. (I69f7d)
Wersja 1.1
Wersja 1.1.0
7 czerwca 2023 r.
Publikacja androidx.window:window-*:1.1.0 Wersja 1.1.0 zawiera te zmiany.
Ważne zmiany od wersji 1.0.0
Umieszczanie aktywności
- Dodano
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDjako właściwość logiczną tagu<application>w pliku manifestu aplikacji. - Wycofano
isSplitSupportedi zastąpionosplitSupportStatus, aby podawać bardziej szczegółowe informacje o tym, dlaczego funkcja podziału jest niedostępna. - Dodaliśmy zagnieżdżoną klasę
SplitController.SplitSupportStatus, aby udostępniać stałe wartości stanu dla właściwościsplitSupportStatus. - Zrefaktoryzowano
SplitControllerna kilka modułów:- moduł
ActivityEmbeddingControllerdla interfejsów API powiązanych zActivitylubActivityStack. - Element
isActivityEmbeddedzostał przeniesiony zSplitControllerdoActivityEmbeddingController. - moduł
RuleControllerdo operacji związanych zEmbeddingRule: - Usunięte interfejsy API:
SplitController clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()- Dodano interfejsy API:
RuleController addRule()– dodaje regułę lub aktualizuje regułę z tym samym tagiem.removeRule()– usuwa regułę z kolekcji zarejestrowanych reguł.setRules()– tworzy zbiór reguł.clearRules()– usuwa wszystkie zarejestrowane reguły.parseRules()– analizuje reguły z definicji reguł XML.
- moduł
- Wszystkie moduły wymagają zainicjowania kontekstu za pomocą metody
#getInstance(), w tym:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- Dodano klasę
EmbeddingAspectRatio, aby zdefiniować stałe zachowania podobne do wyliczeń związane z formatem obrazu. - Dodano klasę
SplitAttributes, aby zdefiniować układ podzielony. - Dodano funkcje kalkulatora
SplitAttributesdoSplitController, aby dostosować układy podzielone:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported(), aby sprawdzić, czy interfejsy APISplitAttributesCalculatorsą obsługiwane na urządzeniu.
- Dodano pole
EmbeddingRule#tag. - Aktualizacje interfejsu API w
SplitRule:- Dodano
defaultSplitAttributes– określa domyślny układ podziału; zastępujesplitRatioilayoutDirection. - Dodaliśmy tłumaczenie właściwości XML
splitRatioisplitLayoutDirectionna językdefaultSplitAttributes. - Zmieniliśmy definicje minimalnych wymiarów, aby używać pikseli niezależnych od gęstości (dp) zamiast pikseli.
- Dodano
minHeightDpz wartością domyślną 600 dp. - Zmieniono
minWidthnaminWidthDpz wartością domyślną 600 dp. - Zmieniono
minSmallestWidthnaminSmallestWidthDpz wartością domyślną 600 dp. - Dodano
maxAspectRatioInHorizontalz wartością domyślnąALWAYS_ALLOW. - Dodano
maxAspectRatioInPortraitz wartością domyślną 1,4. - Zdefiniowano zagnieżdżoną klasę
FinishBehavior, która zastępuje stałe zachowania zakończenia. - Zastosowano zmiany właściwości w zagnieżdżonej klasie Builder w przypadku
SplitPairRuleiSplitPlaceholderRule.
- Dodano
- Zastąpiliśmy symbol
SplitInfo#getSplitRatio()symbolemSplitInfo#getSplitAttributes(), aby podać dodatkowe informacje dotyczące podziału.
WindowLayout
- Dodano eksperymentalną obsługę kontekstu interfejsu użytkownika bez aktywności w
WindowInfoTracker. - Dodano eksperymentalny kontekst interfejsu bez aktywności do
WindowMetricsCalculator.
Kroki migracji
- Aby włączyć osadzanie aktywności w celu wyświetlania aktywności w podziale ekranu, aplikacje muszą dodać właściwość
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDdo tagu manifestu<application>:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />Umożliwia to systemowi wcześniejszą optymalizację zachowań podziału ekranu w przypadku aplikacji. SplitInforatio- Sprawdź, czy bieżący podział jest ułożony w stos:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - Sprawdź bieżący stosunek:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Sprawdź, czy bieżący podział jest ułożony w stos:
- Migracje SplitController:
SplitController.getInstance()zmienia się naSplitController.getInstance(Context).SplitController.initialize(Context, @ResId int)zmienia się naRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)).SplitController.getInstance().isActivityEmbedded(Activity)zmienia się naActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity).SplitController.getInstance().registerRule(rule)zmienia się naRuleController.getInstance(Context).addRule(rule).SplitController.getInstance().unregisterRule(rule)zmienia się naRuleController.getInstance(Context).removeRule(rule).SplitController.getInstance().clearRegisteredRules()zmienia się naRuleController.getInstance(Context).clearRules().SplitController.getInstance().getSplitRules()zmienia się naRuleController.getInstance(Context).getRules().
- Migracje usługi:
minWidthiminSmallestWidthużywają teraz jednostek dp zamiast pikseli. Aplikacje mogą używać tego wywołania:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )lub po prostu podzielićminWithw pikselach przezdisplayMetrics#density.
SplitRule - Stałe zachowania zakończenia muszą zostać przeniesione do stałych klasy wyliczeniowej
FinishBehavior:FINISH_NEVERzmienia się naFinishBehavior.NEVER.FINISH_ALWAYSzmienia się naFinishBehavior.ALWAYS.FINISH_ADJACENTzmienia się naFinishBehavior.ADJACENT.
- Kierunek układu musi zostać przeniesiony do
SplitAttributes.LayoutDirection:ltrzmienia się naSplitAttributes.LayoutDirection.LEFT_TO_RIGHT.rtlzmienia się naSplitAttributes.LayoutDirection.RIGHT_TO_LEFT.localezmienia się naSplitAttributes.LayoutDirection.LOCALE.splitRatiomusi zostać przeniesiony doSplitAttributes.SplitType.ratio(splitRatio).
SplitPairRule.Buildermigrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)zmienia się nakotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.- Zmiany w
setLayoutDirection(layoutDirection)isetSplitRatio(ratio)nakotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) setFinishPrimaryWithSecondaryisetFinishSecondaryWithPrimaryprzyjmująFinishBehaviorstałe podobne do wyliczeń. Więcej informacji znajdziesz w sekcji „Migracje SplitRule”.- Naciśnij
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW), aby wyświetlić podziały na urządzeniach w trybie portretowym.
SplitPlaceholder.Buildermigrations:- Ma tylko parametry
filtersiplaceholderIntent. Pozostałe właściwości są przenoszone do funkcji ustawiających. Więcej informacji znajdziesz w sekcji „Migracje SplitPairRule.Builder”. setFinishPrimaryWithPlaceholderprzyjmuje stałe wyliczenioweFinishBehavior. Więcej informacji znajdziesz w sekcji „Migracje SplitRule”.- Wartości
setLayoutDirection(layoutDirection)isetSplitRatio(ratio)zmienią się na:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) - Naciśnij
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW), aby wyświetlić podziały na urządzeniach w trybie portretowym.
- Ma tylko parametry
Wersja 1.1.0-rc01
10 maja 2023 r.
Publikacja androidx.window:window-*:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zmiany.
Nowe funkcje
- Opublikuj
ActivityEmbeddingjako stabilny interfejs API. - Poprawki różnych błędów.
Wersja 1.1.0-beta02
5 kwietnia 2023 r.
Publikacja androidx.window:window-*:1.1.0-beta02 Wersja 1.1.0-beta02 zawiera te zmiany.
Nowe funkcje
- Wewnętrzne poprawki i czyszczenie.
Wersja 1.1.0-beta01
22 marca 2023 r.
Publikacja androidx.window:window-*:1.1.0-beta01 Wersja 1.1.0-beta01 zawiera te zmiany.
Umieszczanie aktywności
- Dodano
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDjako właściwość logiczną tagu<application>w pliku manifestu aplikacji. - Wycofano
isSplitSupportedi zastąpionosplitSupportStatus, aby podawać bardziej szczegółowe informacje o tym, dlaczego funkcja podziału jest niedostępna. - Dodaliśmy zagnieżdżoną klasę
SplitController.SplitSupportStatus, aby udostępniać stałe wartości stanu dla właściwościsplitSupportStatus. - Zrefaktoryzowano
SplitControllerna kilka modułów:- moduł
ActivityEmbeddingControllerdla interfejsów API powiązanych zActivitylubActivityStack. - Element
isActivityEmbeddedzostał przeniesiony zSplitControllerdoActivityEmbeddingController. - moduł
RuleControllerdo operacji związanych zEmbeddingRule: - Usunięto interfejsy API
SplitController:clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()
- Dodano interfejsy API
RuleController:addRule()– dodaje regułę lub aktualizuje regułę z tym samym tagiem.removeRule()– usuwa regułę z kolekcji zarejestrowanych reguł.setRules()– tworzy zbiór reguł.clearRules()– usuwa wszystkie zarejestrowane reguły.- `parseRules()` – analizuje reguły z definicji reguł XML.
- moduł
- Wszystkie moduły wymagają zainicjowania kontekstu za pomocą metody
#getInstance(), w tym:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- Dodano klasę
EmbeddingAspectRatio, aby zdefiniować stałe zachowania podobne do wyliczeń związane z formatem obrazu. - Dodano klasę
SplitAttributes, aby zdefiniować układ podzielony. - Dodano funkcje kalkulatora
SplitAttributesdoSplitController, aby dostosować układy podzielone:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported()– sprawdź, czy interfejsy SplitAttributesCalculator API są obsługiwane na urządzeniu.
- Dodano pole
EmbeddingRule#tag. - Aktualizacje interfejsu API w
SplitRule:- Dodano
defaultSplitAttributes– określa domyślny układ podziału; zastępujesplitRatioilayoutDirection. - Dodaliśmy tłumaczenie właściwości XML
splitRatioisplitLayoutDirectionna językdefaultSplitAttributes. - Zmieniliśmy definicje minimalnych wymiarów, aby używać pikseli niezależnych od gęstości (dp) zamiast pikseli.
- Dodano
minHeightDpz wartością domyślną 600 dp. - Zmieniono
minWidthnaminWidthDpz wartością domyślną 600 dp. - Zmieniono
minSmallestWidthnaminSmallestWidthDpz wartością domyślną 600 dp. - Dodano
maxAspectRatioInHorizontalz wartością domyślnąALWAYS_ALLOW. - Dodano
maxAspectRatioInPortraitz wartością domyślną1.4. - Zdefiniowano zagnieżdżoną klasę
FinishBehavior, która zastępuje stałe zachowania zakończenia. - Zastosowano zmiany w usłudze w przypadku zagnieżdżonej klasy
BuilderusługSplitPairRuleiSplitPlaceholderRule.
- Dodano
- Zastąpiliśmy symbol
SplitInfo#getSplitRatio()symbolemSplitInfo#getSplitAttributes(), aby podać dodatkowe informacje dotyczące podziału.
WindowLayout
- Dodano obsługę kontekstu interfejsu użytkownika bez aktywności w
WindowInfoTracker. - Dodano kontekst interfejsu bez aktywności do
WindowMetricsCalculator.
Kroki migracji
- Aby włączyć osadzanie aktywności w celu wyświetlania aktywności w podziale ekranu, aplikacje muszą dodać właściwość
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDdo tagu manifestu<application>:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />Umożliwia to systemowi wcześniejszą optymalizację zachowań podziału ekranu w przypadku aplikacji. SplitInforatio- Sprawdź, czy bieżący podział jest ułożony w stos:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - Sprawdź bieżący stosunek:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Sprawdź, czy bieżący podział jest ułożony w stos:
SplitControllermigrations:SplitController.getInstance()zmienia się naSplitController.getInstance(Context).SplitController.initialize(Context, @ResId int)zmienia się naRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)).SplitController.getInstance().isActivityEmbedded(Activity)zmienia się naActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity).SplitController.getInstance().registerRule(rule)zmienia się naRuleController.getInstance(Context).addRule(rule).SplitController.getInstance().unregisterRule(rule)zmienia się naRuleController.getInstance(Context).removeRule(rule).SplitController.getInstance().clearRegisteredRules()zmienia się naRuleController.getInstance(Context).clearRules().SplitController.getInstance().getSplitRules()zmienia się naRuleController.getInstance(Context).getRules().
- Migracje usługi:
minWidthiminSmallestWidthużywają teraz jednostek dp zamiast pikseli. Aplikacje mogą używać tego wywołania:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )lub po prostu podzielićminWithw pikselach przezdisplayMetrics#density.
SplitRule - Stałe zachowania zakończenia muszą zostać przeniesione do stałych klasy wyliczeniowej
FinishBehavior:FINISH_NEVERzmienia się naFinishBehavior.NEVER.FINISH_ALWAYSzmienia się naFinishBehavior.ALWAYS.FINISH_ADJACENTzmienia się naFinishBehavior.ADJACENT.
- Kierunek układu musi zostać przeniesiony do
SplitAttributes.LayoutDirection:ltrzmienia się naSplitAttributes.LayoutDirection.LEFT_TO_RIGHT.rtlzmienia się naSplitAttributes.LayoutDirection.RIGHT_TO_LEFT.localezmienia się naSplitAttributes.LayoutDirection.LOCALE.splitRatiomusi zostać przeniesiony doSplitAttributes.SplitType.ratio(splitRatio).
SplitPairRule.Buildermigrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)zmienia się nakotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.setLayoutDirection(layoutDirection)isetSplitRatio(ratio)zmienią się nakotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )setFinishPrimaryWithSecondaryisetFinishSecondaryWithPrimaryprzyjmująFinishBehaviorstałe podobne do wyliczeń. Więcej informacji znajdziesz w sekcji „Migracje SplitRule”.- Naciśnij
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW), aby wyświetlić podziały na urządzeniach w trybie portretowym.
SplitPlaceholder.Buildermigrations:- Ma tylko parametry
filtersiplaceholderIntent. Pozostałe właściwości są przenoszone do funkcji ustawiających. Więcej informacji znajdziesz w sekcji „Migracje SplitPairRule.Builder”. setFinishPrimaryWithPlaceholderprzyjmuje stałe wyliczenioweFinishBehavior. Więcej informacji znajdziesz w sekcji „Migracje SplitRule”.- Wartości
setLayoutDirection(layoutDirection)isetSplitRatio(ratio)zmienią się na:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) - Naciśnij
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW), aby wyświetlić podziały na urządzeniach w trybie portretowym.
- Ma tylko parametry
Wersja 1.1.0-alpha06
22 lutego 2023 roku
Publikacja androidx.window:window-*:1.1.0-alpha06 Wersja 1.1.0-alpha06 zawiera te zmiany.
Nowe funkcje
- Udostępnianie eksperymentalnej wersji pobierania
WindowLayoutInfoz kontekstu interfejsu.
Zmiany w interfejsie API
- Dodaj
splitSupportStatus, aby wskazać, czy osadzanie aktywności jest dostępne. (I10024) - Oznacz interfejs API kontekstu interfejsu
WindowLayoutInfojako eksperymentalny. (I58ee0) - Wprowadza
WindowAreaControlleri interfejsy API, które umożliwiają przeniesienie bieżącego okna do wyświetlacza wyrównanego z tylnym aparatem wRearDisplay. (Iffcbf) - Zaktualizuj domyślny kolor tła. (I1ac1b)
- Dodaj parametry
SplitAttributes. (I18bdd) - Dodaj interfejsy API dla
SplitRule,SplitAttributes,SplitAttributesCalculator. (I92d23) - Ulepsz interfejsy API związane z
maxAspectRatio:- Zastąp
alwaysAllow()ialwaysDisallow()wartościamiALWAYS_ALLOWiALWAYS_DISALLOW. - Zaktualizuj dokumentację interfejsu API @see za pomocą samodzielnej dokumentacji. (I3057b)
- Zastąp
- Te konstruktory zostały usunięte z publicznych interfejsów API, ponieważ aplikacje nie powinny ich wywoływać.
SplitInfokonstruktorActivityStackconstructor (Ide534)
SplitRuleakceptuje terazmaxAspectRatioInPortrait/Landscape. Umożliwia to tylko podział działań, gdy współczynnik proporcji granic elementu nadrzędnego jest mniejszy lub równy żądanemu współczynnikowimaxAspectRatio. (Ia5990)- Zmień wartość
RuleController#parseRulesna statyczną (I785df) - Ulepszanie interfejsów API związanych z ActivityEmbedding
- Ujednolicenie nazewnictwa interfejsu API – w przypadku wielu instancji używaj poleceń dodawania i usuwania:
registerRulezmienia się naaddRuleunregisterRulezmienia się naremoveRule- Zastąp
getSplitRuleswartościągetRules, ponieważActivityRulenie jest regułą podziału. - Dodaj
RuleController#setRules, aby ustawić wiele reguł - Wyodrębnij interfejsy API związane z regułą wyodrębniania z
SplitControllerdo pojedynczego elementuRuleController. Oto oni: addRuleremoveRulegetRulessetRulesclearRulesparseRules- Wyodrębnij
#isActivityEmbeddedzSplitControllerdo singletonaActivityEmbeddingController. Oto oni: isActivityEmbedded- Usuń
SplitController#initialize. Aby skonfigurować reguły z pliku XML, użyj poleceńRuleController#parseRulesi#setRules. Przed zmianą:SplitController.initialize(context, R.xml.static_rules)Po zmianie:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules) - Nie rozróżniamy już reguł statycznych od reguł czasu działania. Wywołanie
#clearRulespowoduje usunięcie wszystkich reguł, niezależnie od tego, czy są one zarejestrowane za pomocą statycznych definicji reguł XML, czy w czasie działania programu. Aby przywrócić starsze działanie funkcjiSplitController#clearRegisteredRules, wywołaj funkcjęRuleController#parseRulesz identyfikatorem zasobów XML i wywołaj funkcjęRuleController#setRules, aby ponownie ustawić reguły. Przed zmianą:SplitController.getInstance(context).clearRegisteredRules()Po zmianie:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)(Ib3967)
- Ulepsz interfejsy SplitRule API:
- W przypadku
SplitRuleużywaj minimalnych wymiarów w jednostkach DP zamiast w pikselach. - Zmiana kodu, aby w przypadku
SplitRuleBuilder minimalne wymiary były opcjonalne. (I95f17)
- W przypadku
- Przekazywanie kontekstu do inicjowania
SplitController(I42549) - Zmieniono nazwę
SplitRule#layoutDirna#layoutDirection, aSplitRule Builder#setLayoutDirnaBuilder#setLayoutDirection. (I3f6d1)
Wersja 1.1.0-alpha04
9 listopada 2022 r.
Publikacja androidx.window:window-*:1.1.0-alpha04 Wersja 1.1.0-alpha04 zawiera te zmiany.
Nowe funkcje
- Udostępnij metodę sprawdzania, czy element
ActivityStackjest pusty w przypadku elementuActivityEmbedding. - Usunięto tagi eksperymentalnych interfejsów API z interfejsów API
ActivityEmbedding. - Ukryj konstruktor
ActivityRule, ponieważBuilderjest preferowanym sposobem tworzenia. - Dodaj eksperymentalną metodę, aby uzyskać
WindowInsetsnaWindowMetrics. - Zaktualizuj
SplitPlaceholderFinishBehavior, aby zapobiec zakończeniu symbolu zastępczego. Uzupełnienie elementu zastępczego spowodowało pewne niejasności.
Zmiany w interfejsie API
- Ustaw wartość
isEmptyjako publiczną, aby zastąpić funkcjęisEmpty. - Zmień nazwy działań parametru
ActivityStacknaactivitiesInProcess. (Ia5055) - Usuń elementy
ActivityFilter#matchesClassNameiActivityFilter#matchesClassNameOrWildCard, ponieważ są mylące. - Dodaj znaki
ActivityFilter#componentNameiActivityFilter#intentAction, aby dzwoniący mógł odróżnić różne filtry (I41f22). - Usunięto interfejsy API
@Deprecatedz eksperymentalnego interfejsu API (I216b3) - Usunięto
@ExperimentalWindowApiz interfejsów API do osadzania aktywności (I69ebe) - Ukryj konstruktor
ActivityRule, zamiast tego użyj narzędzia Builder. (If4eb6) - Dodaj interfejsy API, aby sprawdzić, czy aktywność jest częścią
ActivityFilter. (Ia43cf) - Aktualizowanie plików interfejsu API w celu odzwierciedlenia zmian w klasach
WindowMetricsiWindowMetricsCalculatorCompat(I667fe) - Aktualizacja dokumentacji Javadoc usługi
ActivityEmbeddingi nazwy klasy (Ia1386) - Dodawanie nazw tagów właściwości
ActivityEmbeddingdo użycia w pliku AndroidManifest.xml (Id1ad4) - Dodano nowe interfejsy API
SplitPlaceholderFinishBehavioriSplitPlaceholderRule.finishPrimaryWithPlaceholder, które zastępują dotychczasowy interfejsSplitPlaceholderRule.finishPrimaryWithSecondaryokreślający, kiedy kończą się działania zastępcze i jak powinny zachowywać się powiązane działania w osadzaniu aktywności. (I64647)
Poprawki błędów
- Wprowadza
WindowAreaControlleri interfejsy API, które umożliwiają przeniesienie bieżącego okna do wyświetlacza wyrównanego z tylnym aparatem wRearDisplay. (I388ab)
Wersja 1.1.0-alpha03
27 lipca 2022 roku
Publikacja androidx.window:window-*:1.1.0-alpha03 Wersja 1.1.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Zaktualizuj domyślne wartości reguł umieszczania.
Zmiany w interfejsie API
- Aktualizowanie domyślnych wartości właściwości reguły umieszczania. (Ic4d35)
Wersja 1.1.0-alpha02
11 maja 2022 roku
Publikacja androidx.window:window-*:1.1.0-alpha02 Wersja 1.1.0-alpha02 zawiera te zmiany.
Nowe funkcje
- Udostępnij biblioteki adapterów, aby obsługiwać Java i RxJava.
Wersja 1.1.0-alpha01
11 maja 2022 roku
Publikacja androidx.window:window-*:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Wydanie adapterów obsługujących Java i RxJava
Wersja 1.1.0-alpha01
20 kwietnia 2022 r.
Publikacja androidx.window:window:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Naprawiliśmy błąd, który powodował, że po przejściu aplikacji w tryb tła przestawała ona emitować funkcje związane ze składaniem.
- Rozwijanie eksperymentalnego interfejsu ActivityEmbedding API.
Zmiany w interfejsie API
- Publiczny interfejs API do sprawdzania, czy aktywność jest osadzana. (I39eb7)
Poprawki błędów
- Dodawanie interfejsów API, które dostosowują zachowanie końcowe kontenerów w podziałach aktywności (I1a1e4)
- Dodaliśmy nową opcję konfiguracji reguł podziału aktywności. (Iec6af)
Wersja 1.0
Wersja 1.0.0
26 stycznia 2022 r.
Publikacja androidx.window:window-*:1.0.0 Wersja 1.0.0 zawiera te zatwierdzenia.
Główne funkcje wersji 1.0.0
- Obsługa telefonów składanych w wersjach
WindowInfoTrackeriFoldingFeature.WindowMetricsCalculator, aby obliczyć bieżące wartości WindowMetrics.
Wersja 1.0.0-rc01
15 grudnia 2021 roku
Publikacja androidx.window:window-*:1.0.0-rc01 Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaliśmy obsługę telefonów składanych za pomocą interfejsu
WindowInfoTracker. - Dodaj metody obliczania bieżącego i maksymalnego
WindowMetrics. - Dodaj pomocnicze interfejsy API testów.
Wersja 1.0.0-beta04
17 listopada 2021 r.
Publikacja androidx.window:window-*:1.0.0-beta04 Wersja 1.0.0-beta04 zawiera te zatwierdzenia.
Nowe funkcje
- Zmień nazwę WindowInfoRepository na WindowInfoTracker.
- Ustaw Activity jako jawną zależność metody dla WindowInfoTracker.
- Dodaj prostą regułę TestRule dla klasy WindowMetricsCalculator, aby obsługiwać deweloperów korzystających z biblioteki Robolectric.
Zmiany w interfejsie API
- Wyodrębnianie rozszerzeń (I25a5f)
- Dodanie isEmpty w ActivityStack (I5a4e6)
- Zmień nazwę WindowInfoRepository na WindowInfoTracker.
- Zaktualizuj zależności java/rxjava/testing, aby były zgodne. (I0da63)
- Dodaj regułę testową dla prostego elementu WindowMetricsCalculator. (Ibacdb)
Wersja 1.0.0-beta03
27 października 2021 roku
Publikacja androidx.window:window-*:1.0.0-beta03 Wersja 1.0.0-beta03 zawiera te zatwierdzenia.
Nowe funkcje
- Dodano eksperymentalne interfejsy Activity Embedding API. Ta początkowa wersja układu umożliwia wyświetlanie 2 aktywności obok siebie.
Zmiany w interfejsie API
- Usunęliśmy interfejs API currentWindowMetrics, ponieważ nie możemy go dokładnie udostępniać. Zamiast tego użyj klasy WindowMetricsCalculator (Icda5f).
- Zaktualizowano interfejs API rozszerzeń. (Ica92b)
- Dodaliśmy interfejs nowej funkcji, która umożliwia osadzanie aktywności i wyświetlanie ich obok siebie w oknie zadania nadrzędnego. (I5711d)
- Ukryto konstruktory klas WindowMetrics i WindowLayoutInfo. Zamiast nich używaj interfejsów API testów. (I5a1b5)
- Dodaj interfejs API do tworzenia fałszywych obiektów WindowLayoutInfo. (I4a2fd)
Poprawki błędów
- Naprawiono wyciek pamięci. (I3fc79, b/202989046)
Wersja 1.0.0-beta02
1 września 2021 roku
Publikacja androidx.window:window-*:1.0.0-beta02 Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaj adnotację eksperymentalną, aby oznaczyć eksperymentalne interfejsy API. (I9f1b6)
- Dodaj metodę testową, aby utworzyć testową funkcję FoldingFeature, która akceptuje Rect. Ułatwi to testowanie za pomocą Robolectric zamiast rzeczywistego działania. (Id1cca)
Wersja 1.0.0-beta01
18 sierpnia 2021 r.
Publikacja androidx.window:window-*:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Usunięto stare stałe i przekształcono
FoldingFeaturew interfejs.
Zmiany w interfejsie API
- Usuń stare stałe i przekształć FoldFeature w interfejs. (I9a2d5)
Poprawki błędów
- Biblioteki, które są zależne od biblioteki
Test Core, zostały zaktualizowane do wersji1.4.0i będą teraz działać na platformie Android w wersji S. (I88b72, b/189353863)
Wersja 1.0.0-alpha10
4 sierpnia 2021 r.
Publikacja androidx.window:window-*:1.0.0-alpha10 Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.
Nowe funkcje
- Zmień nazwę WindowInfoRepo na WindowInfoRepository i dostosuj odpowiednie klasy lub pliki.
- Przekształć dane z bieżącego okna w Flow w klasie WindowInfoRepository, ponieważ wartość zmienia się z czasem.
- Zmiana nazwy WindowInfoRepoJavaAdapter na WindowInfoRepoCallbackAdapter
- Dodanie metody pomocniczej do tworzenia obiektów FoldingFeature na potrzeby testów
- Zaktualizuj pakiety, aby grupować klasy na podstawie obsługiwanej przez nie funkcji.
Zmiany w interfejsie API
- Zmiana nazwy ActivityExt na ActivityExtensions Zmiana z Repo na Repository. (I61a16)
- Aktualizowanie pakietów zajęć. (I23ae2)
- Usuwanie WindowMetrics z WindowInfoRepo (I24663)
- Usuwanie WindowManager i używanie WindowInfoRepo
- Ustawienie WindowBackend jako wewnętrznego. (I06d9a)
- Przekształć dane okna w funkcję typu flow.
- Zmiana nazwy adaptera Java na WindowInfoRepoCallbackAdapter
- Usuń callbackFlow, aby nie używać już eksperymentalnych interfejsów API. (Ia4d15)
- Dodaj metodę pomocniczą do tworzenia funkcji wyświetlania testów.
- Zmiana z occlusionMode na occlusionType (If4cff)
Poprawki błędów
- Naprawiono błąd narzędzia ProGuard, który powodował usuwanie biblioteki podstawowej.
- Naprawiliśmy błąd, który powodował, że obiekt WindowLayoutInfo nie był dostarczany do dodatkowych subskrybentów.
- Naprawiono błąd, w którym zmiany konfiguracji nie powodowały aktualizacji funkcji składania.
Wersja 1.0.0-alpha09
30 czerwca 2021 r.
Publikacja androidx.window:window-*:1.0.0-alpha09 Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.
Nowe funkcje
- Zmień stałe całkowite na nieograniczone wyliczenia.
- Dodaj narzędzie testowe, aby tworzyć funkcje testowe składania.
Zmiany w interfejsie API
- Dodaj metodę pomocniczą do tworzenia funkcji wyświetlania testów. (I3cf54)
- Zmiana z
occlusionModenaocclusionType.
- Zmiana z
Poprawki błędów
- Emituj wartość początkową podczas dodawania wielu odbiorców strumieni danych.
Wersja 1.0.0-alpha08
16 czerwca 2021 r.
Publikacja androidx.window:window-*:1.0.0-alpha08 Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępniliśmy artefakt testowy, aby ułatwić testowanie podczas korzystania z WindowInfoRepository. Użyj WindowInfoRepository, aby uzyskać informacje o DisplayFeatures i WindowMetrics. (I57f66, Ida620)
Wersja 1.0.0-alpha07
2 czerwca 2021 r.
Publikacja androidx.window:window-*:1.0.0-alpha07 Wersja 1.0.0-alpha07 zawiera te zatwierdzenia.
Nowe funkcje
- Przenieś podstawową bibliotekę okien do języka Kotlin. Będziemy używać korutyn i funkcji zawieszania, aby udostępniać dane asynchroniczne.
- Dodaj WindowInfoRepo jako główny punkt interakcji do pobierania WindowMetrics i strumienia WindowLayoutInfo.
- Nowy artefakt
window-java, który udostępnia interfejsy API przyjazne dla języka Java do rejestrowania i wyrejestrowywania wywołań zwrotnych. - Nowe artefakty
window-rxjava2iwindow-rxjava3, które udostępniają interfejsy API dostosowane do RxJava.
Zmiany w interfejsie API
- Dodaj
WindowServices, aby zapewnić jednolite zależności.- Dodanie interfejsu API opartego na korutynach do wykorzystywania informacji o układzie okna. (Iab70f)
- Przeniesienie głównej biblioteki menedżera okien do języka Kotlin. (Icca34)
Poprawki błędów
- Dodaj nową klasę danych reprezentującą granice funkcji. (I6dcd1)
Wersja 1.0.0-alpha06
5 maja 2021 roku
Publikacja androidx.window:window:1.0.0-alpha06 Wersja 1.0.0-alpha06 zawiera te zatwierdzenia.
Nowe funkcje
- Rozpoczęliśmy migrację do języka Kotlin i zakończymy ją w kolejnej wersji.
- Klasa DeviceState została usunięta z publicznego interfejsu API. Zamiast niej używaj klasy FoldingFeature.
- Usunęliśmy stan
STATE_FLIPPEDz FoldingFeature, ponieważ obecnie nie jest on obsługiwany w żadnym przypadku użycia. - Usunęliśmy też inne wycofane interfejsy API.
Zmiany w interfejsie API
- Dodawanie języka Kotlin jako zależności.
- Przenieś podstawową bibliotekę na język Kotlin. (Idd995)
- Usunięto narzędzie do tworzenia
DisplayFeature. (I61fa4) - Usunięto
DeviceStatez publicznego interfejsu API. Zamiast niego używajFoldingFeature. (Id6079) - Usuń wywołanie zwrotne stanu urządzenia z rozszerzeń. (I5ea83)
- Usuń
STATE_FLIPPEDz FoldingFeature. (I9c4e1) - Usuń wycofane metody rejestracji. (Ib381b)
Wersja 1.0.0-alpha05
24 marca 2021 r.
Publikacja androidx.window:window:1.0.0-alpha05 Wersja 1.0.0-alpha05 zawiera te zatwierdzenia.
Nowe funkcje
Dodaliśmy do klasy FoldingFeature wygodne metody, dzięki którym aplikacje mogą sprawdzać, czy funkcja rozdziela lub zasłania, oraz określać orientację zawiasu. Ukrywamy też typ zawiasu, aby
Usuwamy synchroniczne metody odczytu z interfejsu WindowManager. Synchroniczne metody odczytu są podatne na błędy, ponieważ występuje w nich niejawny wyścig. Rejestruj odbiorniki i wywołania zwrotne, aby otrzymywać aktualizacje dotyczące WindowLayoutInfo.
Zmiany w interfejsie API
- Dodanie wygodnych metod pracy z FoldingFeatures (Ie733f)
- Usuwa synchroniczne metody odczytu z WindowManager (I96fd4)
Wersja 1.0.0-alpha04
10 marca 2021 r.
Publikacja androidx.window:window:1.0.0-alpha04 Wersja 1.0.0-alpha04 zawiera te zatwierdzenia.
Nowe funkcje
- Rozwiązaliśmy problem, który powodował, że jeśli nie było implementacji OEM, nie był emitowany żaden element WindowLayoutInfo. Teraz emitujemy pusty obiekt WIndowLayoutInfo.
- Naprawiliśmy błąd, który powodował, że stan nie aktualizował się prawidłowo, jeśli stan zawiasu zmienił się, gdy aplikacja działała w tle. Stan powinien być teraz spójny.
- Zaktualizuj pliki ProGuard, aby ignorować ostrzeżenia dotyczące zależności środowiska wykonawczego.
Poprawki błędów
- Wysyłaj pustą wartość, gdy brakuje biblioteki OEM. (Ide935)
Wersja 1.0.0-alpha03
18 lutego 2021 r.
Publikacja androidx.window:window:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.
Nowe funkcje
- Wysyłaj pustą wartość w przypadku WindowLayoutInfo, gdy implementacja OEM jest pusta. Dzięki temu korzystanie z biblioteki na większej liczbie urządzeń będzie łatwiejsze. Interfejsy API są asynchroniczne, dlatego zalecamy, aby aplikacje zawierały kod zabezpieczający i po przekroczeniu limitu czasu zwracały wartość domyślną. Nie mamy żadnych gwarancji dotyczących implementacji przez producentów OEM, a wartość początkowa może być opóźniona.
Poprawki błędów
- Wysyłaj pustą wartość, gdy brakuje biblioteki OEM. (Ide935)
Wersja 1.0.0-alpha02
27 stycznia 2021 r.
Publikacja androidx.window:window:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Nowe funkcje
Niektóre interfejsy API zostały wycofane, aby uprościć interfejs API i zmniejszyć liczbę błędów. Ważne przykłady to usunięcie synchronicznych operacji odczytu z usługi WindowManager i wycofanie interfejsu DeviceState. Synchroniczne operacje odczytu mogą prowadzić do wyścigów i nieprawidłowego interfejsu.
Przekształciliśmy DisplayFeature w interfejs, który będą odtąd implementować inne funkcje. Pierwszą funkcją jest FoldingFeature, która reprezentuje teraz zagięcie ekranu lub zawias. Zawiera też stan zawiasu, który zastępuje DeviceState.
Interfejs WindowMetrics został wprowadzony w Androidzie 11, aby zapewnić programistom prosty sposób na uzyskiwanie informacji o oknie, np. jego pozycji i rozmiaru na ekranie oraz wszelkich wcięć systemowych. W tej wersji interfejsu API wprowadziliśmy funkcję backporting, aby deweloperzy mogli korzystać z WindowMetrics i nadal obsługiwać starsze wersje Androida. Obiekt WindowMetrics można uzyskać za pomocą interfejsów API
WindowManager#getCurrentWindowMetrics()i WindowManager#getMaximumWindowMetrics().
Zmiany w interfejsie API
- Wycofanie interfejsów API, które zostaną usunięte w następnej wersji alfa (Ib7cc4)
- Aktualizuje
ExtensionInterface, aby akceptować jawne odwołania do aktywności. (I07ded) - Wprowadza interfejs WindowMetrics API. (I3ccee)
- Usuwanie synchronicznych metod odczytu z klasy WindowManager (I69983)
- Zabezpiecz pakiet ExtensionWindowBackend. (Ied208)
Poprawki błędów
- Zaktualizuj interfejsy API
ExtensionInterface, aby akceptować konteksty wizualne. (I8e827)
Wkład zewnętrzny
- Połączyliśmy DeviceState i WindowLayoutInfo, aby ułatwić dostęp do danych. (Id34f4)
Wersja 1.0.0-alpha01
27 lutego 2020 r.
androidx.window:window:1.0.0-alpha01 i androidx.window:window-extensions:1.0.0-alpha01
zostały opublikowane. Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.
To pierwsza wersja biblioteki Window Manager.
Nowe funkcje
DisplayFeature: ten nowy interfejs API wykrywa przerwy w ciągłych płaskich powierzchniach, takie jak zawiasy lub zagięcia.DeviceState: ten nowy interfejs API podaje aktualną pozycję telefonu z listy zdefiniowanych pozycji (np.CLOSED,OPENED,HALF_OPENEDitp.).