Menedżer okien
Najnowsza aktualizacja | Wersja stabilna | Kandydat do wydania | Wersja Beta | Wydanie alfa |
---|---|---|---|---|
7 sierpnia 2024 r. | 1.3.0 | - | - | 1.4.0-alfa01 |
Deklarowanie zależności
Aby dodać zależność od WindowManager, musisz dodać repozytorium Google Maven do do swojego projektu. Odczytano repozytorium Google Maven. i informacjami o nich.
Dodaj zależności artefaktów, których potrzebujesz w pliku build.gradle
aplikacji lub modułu:
Odlotowe
dependencies { implementation "androidx.window:window:1.3.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.3.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.3.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.3.0" // For testing implementation "androidx.window:window-testing:1.3.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.3.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.3.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.3.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.3.0") // For testing implementation("androidx.window:window-testing:1.3.0") }
Opinia
Twoja opinia pomoże nam ulepszyć Jetpack. Daj nam znać, jeśli odkryjesz nowe problemy jak ulepszyć tę bibliotekę. Przyjrzyj się istniejące problemy w tej bibliotece, zanim utworzysz nową. Możesz zagłosować nad istniejącym problemem przez klikając przycisk gwiazdki.
Zobacz dokumentację narzędzia Issue Tracker. .
Wersja 1.4
Wersja 1.4.0-alpha01
7 sierpnia 2024 r.
Usługa androidx.window:window-*:1.4.0-alpha01
została zwolniona. Wersja 1.4.0-alfa01 zawiera te zatwierdzenia.
Nowe funkcje
- ActivityStack Pinning umożliwia przypinanie treści w jednym kontenerze w celu odizolowania elementów nawigacyjnych od drugiego.
- Interaktywny separator umożliwia aplikacjom wyświetlanie w dzielonej prezentacji stałej lub przeciąganej linii podziału między dwoma aktywnościami.
- Przyciemnianie okien na pełnym ekranie umożliwia aplikacjom określenie przyciemnionego obszaru okna, aby przyciemnić całe okno zadania lub przyciemnić tylko jego kontener.
- Wywołanie zwrotne informacji o umieszczonym oknie aktywności umożliwia aplikacjom ciągłe otrzymywanie aktualizacji tego okna aktywności.
- Umieszczanie tła animacji umożliwia aplikacjom określenie tła animacji, poprawiając jakość przejścia, gdy używany jest obiekt
ActivityEmbedding
. - Ulepszone zarządzanie stosem aktywności umożliwia aplikacjom większą kontrolę nad elementem
ActivityStacks
, gdy jest używany:ActivityEmbedding
. Obejmuje to: - Uruchamianie działania w określonym miejscu (
ActivityStack
) - Kończę:
ActivityStack
Zmiany interfejsu API
Nowy interfejs API
WindowInfoTracker#supportedPostures
:- Interfejs API do określania, czy urządzenie obsługuje tryb TableTop na urządzeniach składanych. Dodaje parametr WindowAreaSessionPresenter#getWindow
Dodaj interfejsy API, aby umożliwić przypinanie
ActivityStack
:SplitPinRule
zajęciaSplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
Dodaj interfejsy API, aby włączyć i skonfigurować interaktywny separator
DividerAttributes
zajęciaSplitAttributes.Builder#setDividerAttributes
Dodaj interfejsy API, aby ustawić
EmbeddingConfiguration
iDimAreaBehavior
dla okien dialogowychEmbeddingConfiguration
zajęciaDimAreaBehavior
zajęciaActivityEmbeddingController#setEmbeddingConfiguration
Dodaj interfejsy API, aby otrzymywać aktualizacje informacji o osadzonych oknach aktywności
EmbeddedActivityWindowInfo
zajęciaActivityEmbeddingController#embeddedActivityWindowInfo
Dodaj interfejsy API, aby ustawić tło animacji wektora dystrybucyjnego
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
Dodaj interfejsy API, aby zakończyć zadanie
ActivityStacks
ActivityEmbeddingController#finishActivityStacks
Dodaj interfejsy API, aby skonfigurować uruchamianie aplikacji
ActivityStack
ActivityEmbeddingOptions#setLaunchingActivityStack
Te interfejsy API są stabilne i nie są już eksperymentalne:
ActivityEmbeddingController#invalidateVisibleActivityStacks
(przeniesiono z elementu SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
Dodaj interfejsy API dla wersji 1.4. (I56774)
Poprawki błędów
- Naprawia błąd na niektórych urządzeniach, na których zwracana była wartość UNAVAILABLE zamiast ACTIVE, gdy sesja była aktywna.
- Wyłącza obsługę
transferActivityToWindowArea
na urządzeniach z parametremvendorApiLevel
o wartości 2 ze względu na niestabilną obsługę interfejsu API. - Wprowadzenie interfejsu API umożliwiającego przeciąganie i przeciąganie elementów w trybie „przeciągnij do pełnego ekranu” w przypadku przeciąganego separatora w umieszczaniu aktywności. (I645C9)
- Zezwalaj aplikacjom na wyłączanie animacji
ActivityEmbedding
za pomocą parametrów animacji w:SplitAttributes
. (Idc01a) - Usunęliśmy ręczne dodawanie informacji o dostępie do nowych interfejsów API platformy, ponieważ dzieje się to automatycznie przez modelowanie API w przypadku korzystania z R8 z pakietem AGP w wersji 7.3 lub nowszej (np. R8 w wersji 3.3) oraz wszystkich kompilacji z pakietem AGP 8.1 lub nowszym (np. D8 w wersji 8.1). Klientom, którzy nie korzystają z pakietu AGP, zalecamy zaktualizowanie go do wersji D8 w 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 elementu
SplitAttributes
, aby urządzenie mogło używać go do przejść animacji. (Ide00). - Ukryj interfejsy API nakładek (Ic4251)
- Przedstaw interfejsy API służące do konfigurowania stałego lub przeciąganego separatora podziału (Ia7a78).
- Dodano gęstość do:
WindowMetrics
(Id6723) - Dodaj interfejs API, aby uzyskać
SupportedPostures
. (If557a). - Usuń
setLaunchingActivityStack
z eksperymentalnego interfejsu API (I191cf) - Poznaj
ActivityEmbeddingController#embeddedActivityWindowInfo
(I24312) - Wycofaj
#getToken
i dodaj#getActivityStackToken
(Ie0471) - Przedstaw adapter wywołań zwrotnych dla interfejsu
embeddedActivityWindowInfo
Flow API (Ida77f) - Dodaj adapter wywołania zwrotnego dla interfejsu API nakładania informacji na temat przepływu (I7264f)
- Wprowadź regułę
WindowSdkExtensionsRule
, która zastąpi funkcjęextensionsVersion
na potrzeby testowania. (Ifb928). - – Przeprowadź migrację
#setLaunchingActivityStack
do pakietu, aby zapewnić zgodność z wykorzystaniemActivityOptionsCompat
.- Użytkownicy powinni przekazywać
activityOptions.toBundle
zamiast samegoActvityOptions
. - Usuń
#setLaunchingActivityStack(Activity)
. Użytkownicy powinni przejść naActivityEmbeddingController#getActivityStac(Activity)
, aby uzyskaćActivityStack
, i przekazaćActivityStack
do#setLaunchingActivityStack
. (Ie0ccc)
- Użytkownicy powinni przekazywać
- – Wprowadź
ActivityStack.Token
iSpltInfo.Token
jako identyfikator do komunikacji między WM Jetpack a rozszerzeniami.- Wycofaj/zastąp interfejsy API, aby odebrać/zwrócić token zamiast IBinder. (I12b24)
- – Przedstaw
ActivityEmbeddingController#invalidateVisibleActivityStacks
- Usuń pole
SplitController#invalidateTopVisibleSplitAttributes
, ponieważ funkcja jest skonsolidowana w regionie#invalidateVisibleActivityStacks
(I02ef5)
- Usuń pole
- – Dodanie interfejsu API w celu ustawienia konfiguracji wektora dystrybucyjnego. (I59a4a)
- – Dodaję/odepnij główne interfejsy API (
ActivityStack
) typuandroidx.Window
- Aktualizacja aplikacji demonstracyjnej w celu przypięcia/odpięcia górnego
ActivityStack
(I24dd3)
- Aktualizacja aplikacji demonstracyjnej w celu przypięcia/odpięcia górnego
- Ponownie dodaj
#finishActivityStacks
iActivityEmbeddingOptions
(Ic1ab3) - Usuń niestabilne interfejsy API. (IBc534, b/302380585)
Wersja 1.3
Wersja 1.3.0
29 maja 2024 r.
Usługa androidx.window:window-*:1.3.0
została zwolniona. Wersja 1.3.0 zawiera te zatwierdzenia.
Ważne zmiany wprowadzone od wersji 1.2.0
- Obsługa wieloplatformowa Kotlin dla klas rozmiarów okien.
Wersja 1.3.0-rc01
14 maja 2024 r.
WindowManager
Jetpack w wersji 1.3 wprowadza obsługę wieloplatformową Kotlin w funkcjach WindowSizeClass
oraz zawiera poprawki wielu błędów.
Usługa androidx.window:window-*:1.3.0-rc01
została zwolniona. Wersja 1.3.0-rc01 zawiera te zatwierdzenia.
Wersja 1.3.0-beta02
1 maja 2024 r.
Usługa androidx.window:window-*:1.3.0-beta02
została zwolniona. Wersja 1.3.0-beta02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Wyłącz obsługę tworzenia i używania niestandardowych komponentów
WindowSizeClass
. (Id1143).
Poprawki błędów
- Naprawiono
KotlinReflectionInternalError
spowodowane usuwaniem niektórych plików przez ProGuard na niektórych implementacjach urządzeń. (I01b02).
Wersja 1.3.0-beta01
3 kwietnia 2024 r.
Usługa androidx.window:window-*:1.3.0-beta01
została zwolniona. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
Wersja 1.3.0-alfa03
6 marca 2024 roku
Usługa androidx.window:window-*:1.3.0-alpha03
została zwolniona. Wersja 1.3.0-alfa03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Podziel metodę
WindowSizeClassUtil
na bardziej precyzyjne metody. (IE9292) - Przywróć
WindowSizeClass#compute
(I21355, b/324293374)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że podany kontekst nie był prawidłowo rozpakowywany. (94d10ce , b/318787482)
Wersja 1.3.0-alfa02
7 lutego 2024 r.
Usługa androidx.window:window-*:1.3.0-alpha02
została zwolniona. Wersja 1.3.0-alfa02 zawiera te zatwierdzenia.
Nowe funkcje
- Wprowadzono zmiany w interfejsie API interfejsu Window Size Class API, aby zwiększyć elastyczność dla deweloperów, którzy chcą używać własnych klas rozmiaru.
Zmiany interfejsu API
- Dodaj ograniczenia wysokości do selektora szerokości. (I23393)
- Dodaj funkcje użytkowe pozwalające wybrać element
WindowSizeClass
ze zbioru. Dodaj eksperymentalne funkcje punktacji, aby programiści mogli napisać własne selektory. Dodaj funkcję rozszerzenia selektora, aby wybrać najszerszy zakresWindowSizeClass
w danym granicach. (I0C944) - Otwórz konstruktor
WindowSizeClass
, aby dodać niestandardowe punkty przerwania. (Ic1ff3). - Dodaj funkcję udogodnień, aby utworzyć klasę rozmiaru na podstawie szerokości, wysokości i gęstości. (If67f4).
Poprawki błędów
- Napraw wyjątek, gdy wartość zmiennoprzecinkowa jest skracana do 0. (272ffac).
Wersja 1.3.0-alpha01
15 listopada 2023 r.
Usługa androidx.window:window-*:1.3.0-alpha01
została zwolniona. Wersja 1.3.0-alfa01 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępnij eksperymentalne interfejsy API okien umożliwiające dostęp do tylnego ekranu.
- Testowe interfejsy API do tworzenia
FoldingFeature
są teraz stabilne. - Testowe interfejsy API do konfigurowania fałszywych wartości
ActivityEmbedding
są teraz stabilne. WindowLayoutInfoPublisherRule
zgłasza teraz zastąpienie po uzyskaniu wartości zUiContext
.- Funkcja
WindowInfoTracker
zgłasza dane o funkcjach zwijania do parametrówUiContext
. - Wyświetl wersję rozszerzenia na urządzeniu
- Stałe
WindowProperties
na użytkownika poszczególnych aplikacji:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
– informuje system, w którym aplikacja zrezygnowała ze zgodności formatu obrazu dla użytkowników nadpisać.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
– informacje system, w którym aplikacja zrezygnowała z wyświetlania jej na pełnym ekranie; ustawienia zastępowania zgodności formatu obrazu
Wersja 1.2
Wersja 1.2.0
15 listopada 2023 r.
Usługa androidx.window:window-*:1.2.0
została zwolniona. Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
- Udostępnij eksperymentalne interfejsy API okien umożliwiające dostęp do tylnego ekranu.
- Testowe interfejsy API do tworzenia
FoldingFeature
są teraz stabilne. - Testowe interfejsy API do konfigurowania fałszywych wartości
ActivityEmbedding
są teraz stabilne. WindowLayoutInfoPublisherRule
zgłasza teraz zastąpienie po uzyskaniu wartości zUiContext
.- Funkcja
WindowInfoTracker
zgłasza dane o funkcjach zwijania do parametrówUiContext
. - Wyświetl wersję rozszerzenia na urządzeniu
Wersja 1.2.0-rc01
1 listopada 2023 roku
Usługa androidx.window:window-*:1.2.0-rc01
została zwolniona. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępnij eksperymentalne interfejsy API okien umożliwiające dostęp do tylnego ekranu.
- Testowe interfejsy API do tworzenia
FoldingFeature
są teraz stabilne. - Testowe interfejsy API do konfigurowania fałszywych wartości
ActivityEmbedding
są teraz stabilne. WindowLayoutInfoPublisherRule
zgłasza teraz zastąpienie po uzyskaniu wartości zUiContext
.- Funkcja
WindowInfoTracker
zgłasza dane o funkcjach zwijania do parametrówUiContext
. - Wyświetl wersję rozszerzenia na urządzeniu
Wersja 1.2.0-beta04
18 października 2023 r.
Usługa androidx.window:window-*:1.2.0-beta04
została zwolniona. Wersja 1.2.0-beta04 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Usuń niestabilne interfejsy API. (IBc534, b/302380585)
Wersja 1.2.0-beta03
20 września 2023 r.
Usługa androidx.window:window-*:1.2.0-beta03
została zwolniona. Wersja 1.2.0-beta03 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaj testy
RequiresApi
pod kątem 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 interfejsu API
- Dodaj adnotacje o wymaganej wersji rozszerzenia pakietu SDK do okien w publicznych interfejsach API.
- Usuń
isXXXSupported
w komponencie Umieszczanie aktywności. (dane3dae).
- Usuń
- Wprowadź
WindowSdkExtensions
, aby zgłosić wersję rozszerzenia na urządzeniu.- Podaj
RequiresWindowSdkExtension
, aby wskazać minimalną wymaganą wersję rozszerzenia. (I05fd4)
- Podaj
- Zmienia ustawienie pola
WindowAreaInfo#getCapability
na wartość niepustą. (I17048)
Wersja 1.2.0-beta01
26 lipca 2023 r.
Usługa androidx.window:window-*:1.2.0-beta01
została zwolniona. Wersja 1.2.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępnij eksperymentalne interfejsy API okien umożliwiające dostęp do tylnego ekranu.
- Testowe interfejsy API do tworzenia
FoldingFeature
są teraz stabilne. - Testowe interfejsy API do konfigurowania fałszywych wartości
ActivityEmbedding
są teraz stabilne. WindowLayoutInfoPublisherRule
zgłasza teraz zastąpienie po uzyskaniu wartości zUiContext
.- Funkcja
WindowInfoTracker
zgłasza dane o funkcjach zwijania do parametrówUiContext
.
Zmiany interfejsu API
- Oznacza interfejsy API
WindowArea
jako eksperymentalne, aby umożliwić dalsze wprowadzanie zmian w interfejsach API w wersji stabilnej w wersji 1.3 (I857f5) - Zaktualizowano pliki interfejsu API, aby dodać adnotacje o pomijaniu zgodności (I8e87a, b/287516207)
Wersja 1.2.0-alfa03
21 czerwca 2023 r.
Usługa androidx.window:window-*:1.2.0-alpha03
została zwolniona. Wersja 1.2.0-alfa03 zawiera te zatwierdzenia.
Nowe funkcje
- Usunięcie wycofanych interfejsów API z platformy API.
- Dodaj interfejsy API, aby obsługiwać równoczesne wyświetlanie.
- Dodaj usługę, aby zrezygnować z wymuszania zmiany rozmiaru.
- Dodaj usługę, aby zrezygnować z zastępowania minimalnego współczynnika proporcji.
- Ustabilizuj
ActivityEmbeddingRule
, aby umożliwić testowanie jednostkowe dotyczące umieszczania aktywności.
Zmiany interfejsu API
Poprawki błędów
- Dodanie właściwości zgodnej z rezygnacją na potrzeby wymuszenia zmiany rozmiaru (Ie7ab1)
- Usuwa rozszerzenie
SESSION_STATE_CONTENT_INVISIBLE
z interfejsu rozszerzeń. (I6ed19). - Ustabilizuj
ActivityEmbeddingRule
, aby zapewnić obsługę testów jednostkowych dotyczących umieszczania aktywności. (I8d6b6) - Dodanie właściwości zgodnej z rezygnacją na potrzeby 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 zgodnej z rezygnacją, która po wykryciu ignoruje pętlę żądania orientacji (I0a7a2)
- Dodaj
WindowAreaComponent#STATUS_ACTIVE
, aby wskazać, że funkcja jest już aktywna. (I62bc3) - Dodaj interfejsy API
RearDisplayPresentationMode
(I0401c) - Usuń interfejs API koloru tła na potrzeby stabilnej wersji. (I34c3e)
- Ukryj interfejsy API obszaru okien. (I39de0)
- Dodaj metody, aby zastąpić metodę
SplitInfo
wSplitController
. Dodaj metody testowe, aby utworzyć liczbę zmiennoprzecinkową dla funkcjiSplitInfo
iActivityStack
. (ICD69f) - Ustaw tag jako opcjonalny dla:
ActivityRule.Builder
. (IB0B44) - Usuń
RatioSplitType
,ExpandContainersSplit
iHingeSplitType
. Obecny format:SplitType
.- Zastąp
#splitEqually()
,#expandContainers()
i#splitByHinge
stałymiSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
iSPLIT_TYPE_HINGE
- Usuń tę funkcję, aby ustawić zastępczy typ podziału zawiasu. Jeśli nie można zastosować typu podziału zawiasu ze względu na bieżący stan urządzenia lub okna, następuje podzielenie równorzędnego kontenera zadań. Aby dostosować typ podziału kreacji zastępczych, użyj parametru
SplitController#setSplitAttributesCalculator
. (Ifcc59).
- Zastąp
- Wycofaj
add
/removeSplitCallback
- Przenieś
add
/removeSplitCallback
do:SplitControllerCallbackAdapter
- Dodaj pomoc
Flow
, aby uzyskać listęSplitInfo
(I7f1b6)
- Przenieś
- Dodaj regułę testową dla reguły
ActivityEmbeddingController
(I42e9b) - Zmienianie nazwy z
ActivityOptionsCompat
naActivityEmbeddingOptions
(I89301) - Dodaj atrybut
splitSupportStatus
, aby wskazać, czy opcja umieszczania aktywności jest dostępna. (I10024) - Podaj
SplitAttributes.BackgroundColor
, aby lepiej reprezentować wartośćDEFAULT
. Wyjaśnienie, że nieprzezroczysty kolor tła animacji nie jest obsługiwany. Wszystkie kolory nieprzezroczyste będą traktowane jako domyślne, co oznacza, że zostanie użyty bieżący kolor tła okna motywu. (IC6B95) - Zastąp
alwaysAllow()
ialwaysDisallow()
elementamiALWAYS_ALLOW
iALWAYS_DISALLOW
. (I3057B) - Dodaj interfejsy API dla systemów
SplitRule
,SplitAttributes
,SplitAttributesCalculator
. (I92d23) - Dodaj
TestActivityStack
, aby utworzyćActivityStack
do testowania- Dodaj
TestSplitInfo
, aby utworzyćSplitInfo
do testowania. (I8E779)
- Dodaj
- Dodaj sposób tworzenia fałszywej
SplitAttributesCalculatorParams
, aby deweloperzy mogli zweryfikować dostosowaną wersjęSplitAttributesCalculator
(Id4a6e) - Dodaj:
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
iWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
(I66c7f)
Wersja 1.2.0-alfa02
7 czerwca 2023 r.
Usługa androidx.window:window-*:1.2.0-alpha02
została zwolniona. Wersja 1.2.0-alfa02 zawiera te zatwierdzenia.
Nowe funkcje
- Zaktualizuj testowy interfejs API, aby mieć stałą wartość dla nieokreślonych funkcji zwijania.
- Zastąpienie parametru
WindowLayoutInfoPublishRule
spowoduje zastąpienie wszystkich wartości parametruwindowLayoutInfo
, w tym interfejsu API opartego na kontekście.
Zmiany interfejsu API
- Dodaj stałą dla nieokreślonej funkcji składania na środku. (I7530C)
Poprawki błędów
- Zaktualizuj zasadę
WindowLayoutInfoPublishRule
, aby umożliwić obsługę zastąpień w systemieWindowLayoutInfo
opartym naContext
. (I2037a)
Wersja 1.2.0-alpha01
24 maja 2023 r.
Usługa androidx.window:window-*:1.2.0-alpha01
została zwolniona. Wersja 1.2.0-alfa01 zawiera te zatwierdzenia.
Nowe funkcje
Ustabilizuj interfejsy API do testowania w zakresie umieszczania aktywności i WindowLayoutInfoTracker
. Wersja ActivityEmbeddingRule
została awansowana do wersji stabilnej.
Wersja WindowMetricsCalculatorRule
została awansowana do wersji stabilnej.
Funkcje użytkowe służące do tworzenia FoldingFeature
na potrzeby testu zostały awansowane do wersji stabilnej.
Zmiany interfejsu API
- Ustabilizuj
ActivityEmbeddingRule
, aby zapewnić obsługę testów jednostkowych dotyczących umieszczania aktywności. (I8d6b6) WindowMetrisCalculatorTestRule
jest stabilny, co pozwala na stosowanie namiastek na testy JVM. Aby uzyskać dokładne wyniki, zalecamy użycie emulatora.- Ustabilizuj interfejsy API do testowania w
WindowLayoutInfo
, aby zapewnić obsługę testowania JVM. (IE036e) - Dodaj
IntRange
dla testowych wartości funkcji zwijania. (I69f7D)
Wersja 1.1
Wersja 1.1.0
7 czerwca 2023 r.
Usługa androidx.window:window-*:1.1.0
została zwolniona. Wersja 1.1.0 zawiera te zatwierdzenia.
Ważne zmiany wprowadzone od wersji 1.0.0
Umieszczanie aktywności
- Dodano
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
jako właściwość logiczną tagu<application>
w manifeście aplikacji. - Wycofano funkcję
isSplitSupported
i zastąpiliśmy ją elementemsplitSupportStatus
, aby podać bardziej szczegółowe informacje o tym, dlaczego funkcja podziału jest niedostępna. - Dodano zagnieżdżoną klasę
SplitController.SplitSupportStatus
, aby podać stałe stanu dla właściwościsplitSupportStatus
. - Zrefaktoryzowano
SplitController
na kilka modułów:- Moduł
ActivityEmbeddingController
dla interfejsów APIActivity
lubActivityStack
. - Element
isActivityEmbedded
został przeniesiony zSplitController
doActivityEmbeddingController
. - Moduł
RuleController
dlaEmbeddingRule
powiązanych operacji: - Usunięto
SplitController
interfejs API: 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()
– określa zbiór reguł.clearRules()
– usuwa wszystkie zarejestrowane reguły.parseRules()
– analizuje reguły z definicji reguł XML.
- Moduł
- Wszystkie moduły wymagają zainicjowania kontekstu przez metodę
#getInstance()
, w tym:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Dodano klasę
EmbeddingAspectRatio
, aby zdefiniować stałe działania podobne do wyliczeniowych związane ze współczynnikiem proporcji wyświetlacza. - Dodano klasę
SplitAttributes
, aby zdefiniować podzielony układ. - Dodano funkcje kalkulatora
SplitAttributes
do aplikacjiSplitController
, aby dostosować układy podziału:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
, aby sprawdzić, czy interfejsy APISplitAttributesCalculator
są obsługiwane przez urządzenie
- Dodano pole
EmbeddingRule#tag
. - Aktualizacje interfejsu API w
SplitRule
:- Dodano
defaultSplitAttributes
– definiuje domyślny układ podziału podziału. zastępujesplitRatio
ilayoutDirection
. - Dodano tłumaczenie właściwości XML
splitRatio
isplitLayoutDirection
dodefaultSplitAttributes
. - Zmieniliśmy definicję minimalnych wymiarów, by zamiast pikseli używać pikseli niezależnych od gęstości (dp).
- Dodano element
minHeightDp
z wartością domyślną 600 dp. - Zmieniono
minWidth
naminWidthDp
z wartością domyślną 600 dp. - Zmieniono
minSmallestWidth
naminSmallestWidthDp
z wartością domyślną 600 dp. - Dodano
maxAspectRatioInHorizontal
z wartością domyślnąALWAYS_ALLOW
. - Dodano
maxAspectRatioInPortrait
z wartością domyślną 1.4. - Zdefiniowano zagnieżdżoną klasę
FinishBehavior
, która zastąpi stałe zasady działania końcowego. - Zmiany właściwości zostały zastosowane do zagnieżdżonej klasy Builder
SplitPairRule
iSplitPlaceholderRule
.
- Dodano
- Zastąpiono
SplitInfo#getSplitRatio()
wartościąSplitInfo#getSplitAttributes()
, aby podać dodatkowe informacje dotyczące podziału.
Układ okna
- Dodano eksperymentalną obsługę kontekstu interfejsu użytkownika niezwiązanego z aktywnością do interfejsu
WindowInfoTracker
. - Do
WindowMetricsCalculator
dodano eksperymentalny kontekst interfejsu użytkownika niezwiązanego z aktywnością.
Etapy migracji
- Aby umożliwić umieszczanie aktywności na potrzeby ich wyświetlania w częściach, aplikacje muszą dodać właściwość
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
do tagu<application>
manifestu:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Dzięki temu system z wyprzedzeniem zoptymalizuje sposób podziału aplikacji. - Współczynnik proporcji:
SplitInfo
- Sprawdź, czy obecny podział jest skumulowany:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Sprawdź bieżący współczynnik:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Sprawdź, czy obecny podział jest skumulowany:
- Migracje kontrolera SplitController:
SplitController.getInstance()
zmiana w elemencieSplitController.getInstance(Context)
.SplitController.initialize(Context, @ResId int)
zmiana w elemencieRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
.SplitController.getInstance().isActivityEmbedded(Activity)
zmiana w elemencieActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
.SplitController.getInstance().registerRule(rule)
zmiana w elemencieRuleController.getInstance(Context).addRule(rule)
.SplitController.getInstance().unregisterRule(rule)
zmiana w elemencieRuleController.getInstance(Context).removeRule(rule)
.SplitController.getInstance().clearRegisteredRules()
zmiana w elemencieRuleController.getInstance(Context).clearRules()
.SplitController.getInstance().getSplitRules()
zmiana w elemencieRuleController.getInstance(Context).getRules()
.
SplitRule
migracje usług:minWidth
iminSmallestWidth
używają teraz jednostek dp zamiast pikseli. Aplikacje mogą korzystać z tego wywołania:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
lub po prostu podzielminWith
w pikselach przezdisplayMetrics#density
.
- Stałe zachowania zakończenia muszą zostać przeniesione do stałych klas podobnych do wyliczeniowych
FinishBehavior
:FINISH_NEVER
zmiana w elemencieFinishBehavior.NEVER
.FINISH_ALWAYS
zmiana w elemencieFinishBehavior.ALWAYS
.FINISH_ADJACENT
zmiana w elemencieFinishBehavior.ADJACENT
.
- Kierunek układu należy przenieść na
SplitAttributes.LayoutDirection
:ltr
zmiana w elemencieSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
.rtl
zmiana w elemencieSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
.locale
zmiana w elemencieSplitAttributes.LayoutDirection.LOCALE
.splitRatio
należy przenieść doSplitAttributes.SplitType.ratio(splitRatio)
.
SplitPairRule.Builder
migracje:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
zmiany na:kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
isetSplitRatio(ratio)
zmieniają się nakotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Funkcje
setFinishPrimaryWithSecondary
isetFinishSecondaryWithPrimary
przyjmują stałe wyliczeniaFinishBehavior
. Więcej informacji znajdziesz w sekcji „Migracje reguł podziału”. - Użyj
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, aby wyświetlać podziały na urządzeniach pionowych.
SplitPlaceholder.Builder
migracje:- Zawiera tylko parametry
filters
iplaceholderIntent
. Pozostałe właściwości zostają przeniesione do ustawień. Więcej informacji znajdziesz w sekcji „Migracje do SpitPairRule.Builder”. - Funkcja
setFinishPrimaryWithPlaceholder
przyjmuje stałeFinishBehavior
wyliczeniowe. Więcej informacji znajdziesz w sekcji „Migracje reguł podziału”. setLayoutDirection(layoutDirection)
isetSplitRatio(ratio)
zmienią się na:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Użyj
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, aby wyświetlać podziały na urządzeniach pionowych.
- Zawiera tylko parametry
Wersja 1.1.0-rc01
10 maja 2023 r.
Usługa androidx.window:window-*:1.1.0-rc01
została zwolniona. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępnij
ActivityEmbedding
jako stabilny interfejs API. - Poprawki różnych błędów.
Wersja 1.1.0-beta02
5 kwietnia 2023 r.
Usługa androidx.window:window-*:1.1.0-beta02
została zwolniona. Wersja 1.1.0-beta02 zawiera te zatwierdzenia.
Nowe funkcje
- Wewnętrzne poprawki i czyszczenie danych.
Wersja 1.1.0-beta01
22 marca 2023 r.
Usługa androidx.window:window-*:1.1.0-beta01
została zwolniona. Wersja 1.1.0-beta01 zawiera te zatwierdzenia.
Umieszczanie aktywności
- Dodano
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
jako właściwość logiczną tagu<application>
w manifeście aplikacji. - Wycofano funkcję
isSplitSupported
i zastąpiliśmy ją elementemsplitSupportStatus
, aby podać bardziej szczegółowe informacje o tym, dlaczego funkcja podziału jest niedostępna. - Dodano zagnieżdżoną klasę
SplitController.SplitSupportStatus
, aby podać stałe stanu dla właściwościsplitSupportStatus
. - Zrefaktoryzowano
SplitController
na kilka modułów:- Moduł
ActivityEmbeddingController
dla interfejsów APIActivity
lubActivityStack
. - Element
isActivityEmbedded
został przeniesiony zSplitController
doActivityEmbeddingController
. - Moduł
RuleController
dlaEmbeddingRule
powiązanych operacji: - Usunięto
SplitController
interfejs API: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()
– określa zbiór reguł.clearRules()
– usuwa wszystkie zarejestrowane reguły.- „parseRules()” – analizuje reguły z definicji reguł XML.
- Moduł
- Wszystkie moduły wymagają zainicjowania kontekstu przez metodę
#getInstance()
, w tym:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Dodano klasę
EmbeddingAspectRatio
, aby zdefiniować stałe działania podobne do wyliczeniowych związane ze współczynnikiem proporcji wyświetlacza. - Dodano klasę
SplitAttributes
, aby zdefiniować podzielony układ. - Dodano funkcje kalkulatora
SplitAttributes
do aplikacjiSplitController
, aby dostosować układy podziału:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
, aby sprawdzić, czy interfejsy API aplikacji SplitAttributesCalculator są obsługiwane przez urządzenie
- Dodano pole
EmbeddingRule#tag
. - Aktualizacje interfejsu API w
SplitRule
:- Dodano
defaultSplitAttributes
– definiuje domyślny układ podziału podziału. zastępujesplitRatio
ilayoutDirection
. - Dodano tłumaczenie właściwości XML
splitRatio
isplitLayoutDirection
dodefaultSplitAttributes
. - Zmieniliśmy definicję minimalnych wymiarów, by zamiast pikseli używać pikseli niezależnych od gęstości (dp).
- Dodano element
minHeightDp
z wartością domyślną 600 dp. - Zmieniono
minWidth
naminWidthDp
z wartością domyślną 600 dp. - Zmieniono
minSmallestWidth
naminSmallestWidthDp
z wartością domyślną 600 dp. - Dodano
maxAspectRatioInHorizontal
z wartością domyślnąALWAYS_ALLOW
. - Dodano
maxAspectRatioInPortrait
z wartością domyślną1.4
. - Zdefiniowano zagnieżdżoną klasę
FinishBehavior
, która zastąpi stałe zasady działania końcowego. - Zastosowano zmianę właściwości do zagnieżdżonej klasy
Builder
SplitPairRule
iSplitPlaceholderRule
.
- Dodano
- Zastąpiono
SplitInfo#getSplitRatio()
wartościąSplitInfo#getSplitAttributes()
, aby podać dodatkowe informacje dotyczące podziału.
Układ okna
- Dodano obsługę kontekstu interfejsu użytkownika niezwiązanego z aktywnością do interfejsu
WindowInfoTracker
. - Do interfejsu
WindowMetricsCalculator
dodano kontekst interfejsu bez aktywności.
Etapy migracji
- Aby umożliwić umieszczanie aktywności na potrzeby ich wyświetlania w częściach, aplikacje muszą dodać właściwość
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
do tagu<application>
manifestu:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Dzięki temu system z wyprzedzeniem zoptymalizuje sposób podziału aplikacji. - Współczynnik proporcji:
SplitInfo
- Sprawdź, czy obecny podział jest skumulowany:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Sprawdź bieżący współczynnik:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Sprawdź, czy obecny podział jest skumulowany:
SplitController
migracje:SplitController.getInstance()
zmiana w elemencieSplitController.getInstance(Context)
.SplitController.initialize(Context, @ResId int)
zmiany na:RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
SplitController.getInstance().isActivityEmbedded(Activity)
zmiana w elemencieActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
.SplitController.getInstance().registerRule(rule)
zmiana w elemencieRuleController.getInstance(Context).addRule(rule)
.SplitController.getInstance().unregisterRule(rule)
zmiana w elemencieRuleController.getInstance(Context).removeRule(rule)
.SplitController.getInstance().clearRegisteredRules()
zmiana w elemencieRuleController.getInstance(Context).clearRules()
.SplitController.getInstance().getSplitRules()
zmiana w elemencieRuleController.getInstance(Context).getRules()
.
SplitRule
migracje usług:minWidth
iminSmallestWidth
używają teraz jednostek dp zamiast pikseli. Aplikacje mogą korzystać z tego wywołania:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
lub po prostu podzielminWith
w pikselach przezdisplayMetrics#density
.
- Stałe zachowania zakończenia muszą zostać przeniesione do stałych klas podobnych do wyliczeniowych
FinishBehavior
:FINISH_NEVER
zmiana w elemencieFinishBehavior.NEVER
.FINISH_ALWAYS
zmiana w elemencieFinishBehavior.ALWAYS
.FINISH_ADJACENT
zmiana w elemencieFinishBehavior.ADJACENT
.
- Kierunek układu należy przenieść na
SplitAttributes.LayoutDirection
:ltr
zmiana w elemencieSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
.rtl
zmiana w elemencieSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
.locale
zmiana w elemencieSplitAttributes.LayoutDirection.LOCALE
.splitRatio
należy przenieść doSplitAttributes.SplitType.ratio(splitRatio)
.
SplitPairRule.Builder
migracje:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
zmiany na:kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
isetSplitRatio(ratio)
zmieniają się nakotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Funkcje
setFinishPrimaryWithSecondary
isetFinishSecondaryWithPrimary
przyjmują stałe wyliczeniaFinishBehavior
. Więcej informacji znajdziesz w sekcji „Migracje reguł podziału”. - Użyj
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, aby wyświetlać podziały na urządzeniach pionowych.
SplitPlaceholder.Builder
migracje:- Zawiera tylko parametry
filters
iplaceholderIntent
. Pozostałe właściwości zostają przeniesione do ustawień. Więcej informacji znajdziesz w sekcji „Migracje do SpitPairRule.Builder”. - Funkcja
setFinishPrimaryWithPlaceholder
przyjmuje stałeFinishBehavior
wyliczeniowe. Więcej informacji znajdziesz w sekcji „Migracje reguł podziału”. setLayoutDirection(layoutDirection)
isetSplitRatio(ratio)
zmienią się na:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Użyj
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, aby wyświetlać podziały na urządzeniach pionowych.
- Zawiera tylko parametry
Wersja 1.1.0-alpha06
22 lutego 2023 roku
Usługa androidx.window:window-*:1.1.0-alpha06
została zwolniona. Wersja 1.1.0-alfa06 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępnij eksperymentalną wersję pobierania
WindowLayoutInfo
z kontekstu interfejsu.
Zmiany interfejsu API
- Dodaj atrybut
splitSupportStatus
, aby wskazać, czy opcja umieszczania aktywności jest dostępna. (I10024) - Ustaw interfejs API Context
WindowLayoutInfo
w wersji eksperymentalnej. (I58ee0). - Przedstawiamy
WindowAreaController
i interfejsy API umożliwiające trybRearDisplay
umożliwiający przeniesienie bieżącego okna na wyświetlacz, który jest dopasowany do tylnego aparatu. (Iffcbf). - Zaktualizuj domyślny kolor tła. (I1ac1b),
- Dodaj parametry:
SplitAttributes
. (I18bdd) - Dodaj interfejsy API dla systemów
SplitRule
,SplitAttributes
,SplitAttributesCalculator
. (I92d23) - Ulepsz interfejsy API w okolicy
maxAspectRatio
:- Zastąp
alwaysAllow()
ialwaysDisallow()
elementamiALWAYS_ALLOW
iALWAYS_DISALLOW
. - Zaktualizuj dokumentację interfejsu API domeny @see za pomocą samodzielnej dokumentacji. (I3057B)
- Zastąp
- Poniższe konstruktory zostały usunięte z publicznych interfejsów API, ponieważ nie powinny być wywoływane przez aplikacje.
- Konstruktor
SplitInfo
- Konstruktor
ActivityStack
(Ide534)
- Konstruktor
SplitRule
zajmuje terazmaxAspectRatioInPortrait/Landscape
. Zezwala na dzielenie aktywności tylko wtedy, gdy współczynnik proporcji granic nadrzędnych jest mniejszy lub równy żądanemumaxAspectRatio
. (IA5990).- Zmień
RuleController#parseRules
na statyczny (I785df) - Ulepsz interfejsy API związane z funkcją ActivityEmbedding
- Dopasuj nazwy interfejsów API – użyj metody add/remove w przypadku wielu instancji:
registerRule
zmiany w:addRule
unregisterRule
zmiany w:removeRule
- Zastąp
getSplitRules
wartościągetRules
, ponieważActivityRule
nie jest regułą podziału - Dodaj
RuleController#setRules
, aby ustawić grupę reguł - Wyodrębnij interfejsy API związane z regułą z
SplitController
do singletonuRuleController
. Oto oni: addRule
removeRule
getRules
setRules
clearRules
parseRules
- Wyodrębnij
#isActivityEmbedded
z zakresuSplitController
do singletonuActivityEmbeddingController
. Oto oni: isActivityEmbedded
- Usuń
SplitController#initialize
. Aby ustawić reguły z pliku XML, użyj elementówRuleController#parseRules
i#setRules
. Przed tą zmianą:SplitController.initialize(context, R.xml.static_rules)
Po tej 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ł środowiska wykonawczego. Wywołanie funkcji
#clearRules
w celu wyczyszczenia wszystkich reguł niezależnie od tego, czy są zarejestrowane przy użyciu statycznych definicji reguł XML czy też w czasie działania. Aby zachować starsze działanieSplitController#clearRegisteredRules
, wywołajRuleController#parseRules
z identyfikatorem zasobów XML i wywołaj polecenieRuleController#setRules
, aby ponownie ustawić reguły. Przed tą zmianą:SplitController.getInstance(context).clearRegisteredRules()
Po tej zmianie:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
(IB3967).
- Ulepsz interfejsy API reguł podziału:
- Dla obrazu
SplitRule
bierz minimalne wymiary w DP zamiast w pikselach. - Refaktoryzacja umożliwiająca korzystanie z narzędzia
SplitRule
w celu uwzględniania minimalnych wymiarów jako opcjonalnych. (I95f17)
- Dla obrazu
- Przekazywanie kontekstu w celu zainicjowania funkcji
SplitController
(I42549) - Nazwa
SplitRule#layoutDir
została zmieniona na#layoutDirection
, aSplitRule Builder#setLayoutDir
naBuilder#setLayoutDirection
. (I3f6d1)
Wersja 1.1.0-alfa04
9 listopada 2022 r.
Usługa androidx.window:window-*:1.1.0-alpha04
została zwolniona. Wersja 1.1.0-alfa04 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępnij metodę, która pozwala określić, czy pole
ActivityStack
jest puste dla polaActivityEmbedding
. - Usunięto eksperymentalne tagi API z
ActivityEmbedding
interfejsów API. - Ukryj konstruktor
ActivityRule
, ponieważ preferowany jest sposóbBuilder
. - Dodaj metodę eksperymentalną, aby korzystać z
WindowInsets
w:WindowMetrics
. - Aby nie dokończyć używania zmiennej, zaktualizuj
SplitPlaceholderFinishBehavior
. Zakończenie działania symbolu zastępczego spowodowało pewne niezrozumiałe zachowanie.
Zmiany interfejsu API
- Ustaw wartość
isEmpty
jako publiczną, by zastąpić zabawęisEmpty
. - Zmień nazwę aktywności parametrów
ActivityStack
naactivitiesInProcess
. (IA5055). - Usuń te
ActivityFilter#matchesClassName
iActivityFilter#matchesClassNameOrWildCard
, bo są mylące. - Dodaj
ActivityFilter#componentName
abdActivityFilter#intentAction
, aby umożliwić rozmówcy rozróżnienie różnych filtrów (I41f22) - Usuń interfejsy API
@Deprecated
z eksperymentalnego interfejsu API (I216b3) - Usuń
@ExperimentalWindowApi
z interfejsów API do umieszczania aktywności (I69ebe) - Ukryj konstruktor
ActivityRule
, zamiast tego użyj konstruktora. (If4eb6). - Dodaj interfejsy API, aby sprawdzić, czy aktywność jest częścią
ActivityFilter
. (Ia43cf). - Zaktualizuj pliki interfejsu API, aby uwzględnić zmiany w klasach
WindowMetrics
iWindowMetricsCalculatorCompat
(I667fe) - Zaktualizuj dokument Javadoc usługi
ActivityEmbedding
i nazwę klasy (Ia1386) - Dodanie nazw tagów właściwości
ActivityEmbedding
do wykorzystania w pliku AndroidManifest.xml (Id1ad4) - Dodano nowe interfejsy API
SplitPlaceholderFinishBehavior
iSplitPlaceholderRule.finishPrimaryWithPlaceholder
. Zastąpiły one istniejący tagSplitPlaceholderRule.finishPrimaryWithSecondary
, który określa, kiedy zakończy się działanie obiektów zastępczych i jak powinny wyglądać działania powiązane w ramach umieszczania aktywności. (I64647)
Poprawki błędów
- Przedstawiamy
WindowAreaController
i interfejsy API umożliwiające trybRearDisplay
umożliwiający przeniesienie bieżącego okna na wyświetlacz, który jest dopasowany do tylnego aparatu. (I388ab)
Wersja 1.1.0-alfa03
27 lipca 2022 roku
Usługa androidx.window:window-*:1.1.0-alpha03
została zwolniona. Wersja 1.1.0-alfa03 zawiera te zatwierdzenia.
Nowe funkcje
- Zaktualizuj domyślne wartości reguł umieszczania.
Zmiany interfejsu API
- Zaktualizuj wartości domyślne właściwości reguł umieszczania. (Ic4d35).
Wersja 1.1.0-alfa02
11 maja 2022 roku
Usługa androidx.window:window-*:1.1.0-alpha02
została zwolniona. Wersja 1.1.0-alfa02 zawiera te zatwierdzenia.
Nowe funkcje
- Opublikuj biblioteki adaptera, aby umożliwić obsługę Javy i RxJava.
Wersja 1.1.0-alpha01
11 maja 2022 roku
Usługa androidx.window:window-*:1.1.0-alpha01
została zwolniona. Wersja 1.1.0-alfa01 zawiera te zatwierdzenia.
Nowe funkcje
- Publikuj adaptery umożliwiające obsługę środowiska Java i RxJava.
Wersja 1.1.0-alpha01
20 kwietnia 2022 r.
Usługa androidx.window:window:1.1.0-alpha01
została zwolniona. Wersja 1.1.0-alfa01 zawiera te zatwierdzenia.
Nowe funkcje
- Naprawiono błąd polegający na tym, że aplikacja w tle przestaje wysyłać funkcje zwijania.
- Rozwiń eksperymentalny interfejs ActivityEmbedding API.
Zmiany interfejsu API
- Publiczny interfejs API do sprawdzania, czy aktywność jest umieszczona. (I39eb7).
Poprawki błędów
- Dodaj interfejsy API, które dostosowują proces wykończenia w przypadku 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.
Usługa androidx.window:window-*:1.0.0
została zwolniona. Wersja 1.0.0 zawiera te zatwierdzenia.
Główne funkcje 1.0.0
- Obsługa składanych telefonów w modelach
WindowInfoTracker
iFoldingFeature
.WindowMetricsCalculator
pomagający w obliczeniach bieżących wartości WindowMetrics.
Wersja 1.0.0-rc01
15 grudnia 2021 roku
Usługa androidx.window:window-*:1.0.0-rc01
została zwolniona. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaj obsługę składanych telefonów w
WindowInfoTracker
. - Dodaj metody, aby obliczyć bieżącą i maksymalną wartość
WindowMetrics
. - Dodaj pomocnicze testowe interfejsy API.
Wersja 1.0.0-beta04
17 listopada 2021 r.
Usługa androidx.window:window-*:1.0.0-beta04
została zwolniona. Wersja 1.0.0-beta04 zawiera te zatwierdzenia.
Nowe funkcje
- Zmieniono nazwę WindowInfoRepository na WindowInfoTracker.
- Ustaw aktywność jako jawną zależność metody dla WindowInfoTracker.
- Dodaj prostą regułę testową dla WindowMetricsCalculator, aby pomóc deweloperom korzystającym z Robolectric.
Zmiany interfejsu API
- Wyodrębnianie rozszerzeń (I25a5f)
- add isEmpty w stosie aktywności (I5a4e6)
- Zmieniono nazwę WindowInfoRepository na WindowInfoTracker.
- Zaktualizuj odpowiednio zależności java/rxjava/testowania. (I0da63).
- Dodaj regułę testową dla prostego WindowMetricsCalculator. (Ibacdb).
Wersja 1.0.0-beta03
27 października 2021 roku
Usługa androidx.window:window-*:1.0.0-beta03
została zwolniona. Wersja 1.0.0-beta03 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaj eksperymentalne interfejsy API do umieszczania aktywności. Ta początkowa wersja układu umożliwia wyświetlanie 2 aktywności obok siebie.
Zmiany interfejsu API
- Usunęliśmy interfejs currentWindowMetrics API, ponieważ nie możemy go dokładnie udostępnić. Użyj narzędzia WindowMetricsCalculator (Icda5f).
- Zaktualizowano interfejs API rozszerzeń. (ICA92b).
- Dodaliśmy interfejs nowej funkcji, która umożliwia działania osadzania i wyświetlanie ich obok siebie w elemencie nadrzędnym w oknie zadania. (I5711D)
- Ukryto konstruktory WindowMetrics i WindowLayoutInfo. Zamiast tego użyj testowych interfejsów API. (I5a1b5).
- Dodaj interfejs API, aby tworzyć fałszywe obiekty WindowLayoutInfo. (I4a2fd).
Poprawki błędów
- Usunięto wyciek pamięci. (I3fc79, b/202989046)
Wersja 1.0.0-beta02
1 września 2021 roku
Usługa androidx.window:window-*:1.0.0-beta02
została zwolniona. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaj adnotację eksperymentalną, aby dodać adnotacje do eksperymentalnych interfejsów API. (I9f1b6)
- Dodaj metodę testową, aby utworzyć testową funkcję składającą, która akceptuje prostokąt. Ułatwi to przeprowadzanie testów przy użyciu Robolectric, a nie faktycznej aktywności. (Id1cca)
Wersja 1.0.0-beta01
18 sierpnia 2021 r.
Usługa androidx.window:window-*:1.0.0-beta01
została zwolniona. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Usunęliśmy stare stałe i przekształciliśmy interfejs
FoldingFeature
w interfejs.
Zmiany interfejsu API
- Usuń stare stałe i ustaw FoldFeature jako interfejs. (I9a2d5)
Poprawki błędów
- Biblioteki zależne od biblioteki
Test Core
zostały uaktualniony do wersji1.4.0
i będzie działać na platformie Androida wersja S. (I88b72, b/189353863)
Wersja 1.0.0-alpha10
4 sierpnia 2021 r.
Usługa androidx.window:window-*:1.0.0-alpha10
została zwolniona. Wersja 1.0.0-alfa10 zawiera te zatwierdzenia.
Nowe funkcje
- Zmień nazwę WindowInfoRepo na WindowInfoRepository i dostosuj odpowiednie klasy / pliki.
- Konwertuj wskaźniki bieżących okresów na przepływ w WindowInfoRepository, ponieważ wartość zmienia się z czasem.
- Zmień nazwę obiektu WindowInfoRepoJavaAdapter na WindowInfoRepoCallbackAdapter
- Dodaj metodę pomocniczą, aby utworzyć testowe obiekty funkcji FoldingFeature
- Zaktualizuj pakiety do klas grupowych na podstawie obsługiwanej funkcji.
Zmiany interfejsu API
- Zmień nazwę ActivityExt na ActivityExtensions Zmień repozytorium na repozytorium. (I61a16).
- Aktualizowanie pakietów na zajęcia. (I23ae2),
- Usuń WindowMetrics z WindowInfoRepo (I24663)
- Usuń WindowManager i użyj WindowInfoRepo
- Ustaw obiekt WindowBackend wewnętrznie. (I06d9a)
- Konwertuj wskaźniki okien na przepływ.
- Zmień nazwę adaptera Java na WindowInfoRepoCallbackAdapter
- Usuń wywołaniebackFlow, aby nie były używane żadne eksperymentalne interfejsy API. (Ia4d15).
- Dodaj metodę pomocniczą, aby utworzyć testowe funkcje wyświetlania.
- Zmień tryb zokluzji na typ ooklusion (If4cff).
Poprawki błędów
- Naprawiono błąd ProGuard, który powodował usuwanie biblioteki podstawowej.
- Naprawiono błąd, który powodował, że element WindowLayoutInfo nie był dostarczany do dodatkowych subskrybentów.
- Naprawiono błąd polegający na tym, że zmiany w konfiguracji nie uruchamiały aktualizacji funkcji zawijania.
Wersja 1.0.0-alpha09
30 czerwca 2021 r.
Usługa androidx.window:window-*:1.0.0-alpha09
została zwolniona. Wersja 1.0.0-alfa09 zawiera te zatwierdzenia.
Nowe funkcje
- Zmień stałe liczby całkowite na nieograniczone wyliczenia.
- Dodaj narzędzie testowe, aby utworzyć testowe funkcje zwijania.
Zmiany interfejsu API
- Dodaj metodę pomocniczą, aby utworzyć testowe funkcje wyświetlania. (I3cf54).
- Zmień z
occlusionMode
naocclusionType
.
- Zmień z
Poprawki błędów
- Emisja wartości początkowej podczas dodawania wielu konsumentów strumieni danych.
Wersja 1.0.0-alpha08
16 czerwca 2021 r.
Usługa androidx.window:window-*:1.0.0-alpha08
została zwolniona. Wersja 1.0.0-alfa08 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępniliśmy artefakt testowy, aby ułatwić testowanie w narzędziu WindowInfoRepository. Użyj WindowInfoRepository, aby uzyskać informacje o DisplayFeatures i WindowMetrics. (I57f66, Ida620)
Wersja 1.0.0-alpha07
2 czerwca 2021 r.
Usługa androidx.window:window-*:1.0.0-alpha07
została zwolniona. Wersja 1.0.0-alfa07 zawiera te zatwierdzenia.
Nowe funkcje
- Przenieś podstawową bibliotekę okien do Kotlin. Będziemy używać współrzędnych i funkcji zawieszania w celu udostępniania danych asynchronicznych w przyszłości.
- Dodaj WindowInfoRepo jako główny punkt interakcji do pobierania obiektów WindowMetrics i strumienia WindowLayoutInfo.
- Nowy artefakt
window-java
do udostępniania interfejsów API zgodnych z Javą na potrzeby rejestrowania i wyrejestrowywania wywołań zwrotnych. - Nowe artefakty
window-rxjava2
iwindow-rxjava3
do udostępniania dostosowanych interfejsów API RxJava.
Zmiany interfejsu API
- Dodaj
WindowServices
, aby podać zależności w sposób jednolity.- Dodaj interfejs API oparty na współudziale, aby korzystać z informacji o układzie okien. (IAB70f)
- Przeprowadź migrację podstawowej biblioteki menedżera okien do Kotlin. (Icca34).
Poprawki błędów
- Dodaj nową klasę danych reprezentującą granice cech. (I6dcd1)
Wersja 1.0.0-alpha06
5 maja 2021 roku
Usługa androidx.window:window:1.0.0-alpha06
została zwolniona. Wersja 1.0.0-alfa06 zawiera te zatwierdzenia.
Nowe funkcje
- Rozpoczęliśmy migrację do Kotlin i zakończymy w następnej wersji.
- Usunięto DeviceState z publicznego interfejsu API. Zamiast niego użyj FoldingFeature.
- Usunęliśmy atrybut
STATE_FLIPPED
ze stanów Funkcja składania, ponieważ obecnie nie jest on obsługiwany w żadnym przypadku użycia. - Usunęliśmy też inne wycofane interfejsy API.
Zmiany interfejsu API
- Dodaję Kotlin jako zależność.
- Przeprowadź migrację z biblioteki podstawowej do Kotlin. (IdD995)
- Usunięto
DisplayFeature
konstruktor. (I61fa4). - Usunięto
DeviceState
z publicznego interfejsu API. Zamiast niego użyjFoldingFeature
. (Id6079). - Usuń wywołanie zwrotne stanu urządzenia z rozszerzeń. (I5Ea83)
- Usuń element
STATE_FLIPPED
z funkcji składania. (I9c4e1). - Usuń wycofane metody rejestracji. (IB381b)
Wersja 1.0.0-alpha05
24 marca 2021 r.
Usługa androidx.window:window:1.0.0-alpha05
została zwolniona. Wersja 1.0.0-alfa05 zawiera te zatwierdzenia.
Nowe funkcje
Dodaliśmy wygodne metody do funkcji Fold, aby aplikacje mogły sprawdzić, czy zawias jest oddzielony lub zasłaniany, a także określić położenie zawiasu. Ukryjemy też typ zawiasu,
Usuwamy synchroniczne metody odczytu z interfejsu WindowManager. Synchroniczne metody odczytu są podatne na błędy, ponieważ istnieje niejawny warunek wyścigu. Zarejestruj detektory i wywołania zwrotne, aby otrzymywać aktualizacje w WindowLayoutInfo.
Zmiany interfejsu API
- Dodawanie wygodnych metod pracy z funkcjami FoldingFeatures (Ie733f)
- Usuwa synchroniczne metody odczytu z interfejsu WindowManager (I96fd4).
Wersja 1.0.0-alpha04
10 marca 2021 r.
Usługa androidx.window:window:1.0.0-alpha04
została zwolniona. Wersja 1.0.0-alfa04 zawiera te zatwierdzenia.
Nowe funkcje
- Naprawia błąd, który powodował, że w przypadku braku implementacji OEM nie był emitowany parametr WindowLayoutInfo. Teraz przesyłamy puste pole WIndowLayoutInfo.
- Naprawiono 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. Teraz stan powinien być spójny.
- Zaktualizuj nasze pliki ProGuard tak, aby ignorowały ostrzeżenia związane z zależnościami środowiska wykonawczego.
Poprawki błędów
- Jeśli brakuje biblioteki OEM, wysyłaj pustą wartość. (Ide935).
Wersja 1.0.0-alpha03
18 lutego 2021 r.
Usługa androidx.window:window:1.0.0-alpha03
została zwolniona. Wersja 1.0.0-alfa03 zawiera te zatwierdzenia.
Nowe funkcje
- Wysyłaj pustą wartość parametru WindowLayoutInfo, gdy implementacja OEM jest pusta. Powinno to ułatwić korzystanie z biblioteki na większej liczbie urządzeń. Ponieważ interfejsy API są asynchroniczne, zalecamy, aby aplikacje pisały kod obronny i po upływie limitu czasu wysyłały wartość domyślną. Nie udzielamy żadnych gwarancji dotyczących wdrożeń OEM i wartość początkowa może być opóźniona.
Poprawki błędów
- Jeśli brakuje biblioteki OEM, wysyłaj pustą wartość. (Ide935).
Wersja 1.0.0-alpha02
27 stycznia 2021 r.
Usługa androidx.window:window:1.0.0-alpha02
została zwolniona. Wersja 1.0.0-alfa02 zawiera te zatwierdzenia.
Nowe funkcje
Wycofaliśmy niektóre interfejsy API, aby je usprawnić i zmniejszyć liczbę błędów. Niektóre ważne przykłady to usunięcie synchronicznych operacji odczytu z interfejsu WindowManager i wycofanie elementu DeviceState. Synchroniczne operacje odczytu mogą prowadzić do sytuacji wyścigu i mieć nieprawidłowy interfejs użytkownika.
Przekształciliśmy DisplayFeature w interfejs, który będą wdrażane w przyszłości. Pierwszą funkcją jest funkcja Składanie, która reprezentuje teraz złożenie ekranu lub zawias. Zawiera również stan zawiasu, który zastąpił parametr DeviceState.
Platforma WindowMetrics została wprowadzona w Androidzie 11, aby zapewnić programistom prosty sposób wysyłania zapytań o dane dotyczące okna, np. jego pozycję i rozmiar na ekranie oraz wszelkie wstawki systemowe. Do tej wersji dodaliśmy interfejs API, dzięki czemu deweloperzy mogą korzystać z interfejsu WindowMetrics i nadal obsługiwać starsze wersje Androida. Wskaźniki WindowMetrics można uzyskać za pomocą interfejsów API
WindowManager#getCurrentWindowMetrics()
i WindowManager#getmaximumWindowMetrics().
Zmiany interfejsu API
- Wycofanie interfejsów API, które zostaną usunięte w następnej wersji alfa (Ib7cc4)
- Aktualizuje
ExtensionInterface
, aby akceptować aktywność dla pełnoletnich odwołania. (w07d) - Przedstawiamy interfejs WindowMetrics API. (I3ccee).
- Usuń synchroniczne metody odczytu z interfejsu WindowManager (I69983)
- Zabezpiecz pakiet ExtensionWindowBackend. (Ied208).
Poprawki błędów
- Zaktualizuj interfejsy API
ExtensionInterface
, aby akceptowały kontekst wizualny. (I8E827)
Treści tłumaczone przez użytkowników zewnętrznych
- Scal obiekty DeviceState i WindowLayoutInfo, aby ułatwić uzyskać 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-alfa01 zawiera te zatwierdzenia.
To jest pierwsza wersja biblioteki Menedżera okien.
Nowe funkcje
DisplayFeature
: ten nowy interfejs API wykrywa zakłócenia w działaniu ciągłym. powierzchnie ekranów, takie jak zawiasy czy możliwość złożenia;DeviceState
: ten nowy interfejs API zapewnia bieżący stan telefonu z listę zdefiniowanych stanów (np.CLOSED
,OPENED
,HALF_OPENED
, itp.).