Animacja w Compose
androidx.compose.animation
androidx.compose.animation.core
androidx.compose.animation.graphics
(Zobacz dokumentację interfejsu API wszystkich pakietów Compose)
Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja Beta | Wersja alfa |
---|---|---|---|---|
2 lipca 2025 r. | 1.8.3 | - | 1.9.0-beta02 | - |
Struktura
Compose to połączenie 7 identyfikatorów grup Maven w androidx
. Każda grupa zawiera ukierunkowany podzbiór funkcji, a każda z nich ma własny zestaw informacji o wersji.
W tej tabeli znajdziesz wyjaśnienie grup i linki do poszczególnych zestawów informacji o wersji.
Grupa | Opis |
---|---|
compose.animation | tworzyć animacje w aplikacjach Jetpack Compose, aby zwiększać komfort użytkowników; |
compose.compiler | Przekształcanie funkcji z adnotacją @Composable i włączanie optymalizacji za pomocą wtyczki kompilatora Kotlin. |
compose.foundation | Twórz aplikacje w Jetpack Compose za pomocą gotowych elementów składowych i rozszerzaj podstawy, aby tworzyć własne elementy systemu projektowania. |
compose.material | Twórz interfejsy Jetpack Compose za pomocą gotowych komponentów Material Design. Jest to punkt wejścia wyższego poziomu w Compose, który ma udostępniać komponenty zgodne z tymi opisanymi na stronie www.material.io. |
compose.material3 | Twórz interfejsy Jetpack Compose za pomocą komponentów Material Design 3, czyli kolejnej ewolucji Material Design. Material 3 zawiera zaktualizowane motywy i komponenty oraz funkcje personalizacji Material You, takie jak dynamiczny kolor. Jest on spójny z nowym stylem wizualnym Androida 12 i interfejsem systemu. |
compose.runtime | Podstawowe elementy modelu programowania i zarządzania stanem w Compose oraz podstawowe środowisko wykonawcze, do którego kierowany jest wtyczka kompilatora Compose. |
compose.ui | Podstawowe komponenty interfejsu Compose potrzebne do interakcji z urządzeniem, w tym układ, rysowanie i dane wejściowe. |
Deklarowanie zależności
Aby dodać zależność od Compose, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle
aplikacji lub modułu:
Groovy
dependencies { implementation "androidx.compose.animation:animation:1.8.3" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.animation:animation:1.8.3") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
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 nową kartę, 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.9
Wersja 1.9.0-beta02
2 lipca 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.9.0-beta02
Wersja 1.9.0-beta02 zawiera te zmiany.
Wersja 1.9.0-beta01
18 czerwca 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.9.0-beta01
Wersja 1.9.0-beta01 zawiera te zmiany.
Wersja 1.9.0-alpha04
4 czerwca 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.9.0-alpha04
Wersja 1.9.0-alpha04 zawiera te zmiany.
Wersja 1.9.0-alpha03
20 maja 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.9.0-alpha03
Wersja 1.9.0-alpha03 zawiera te zmiany.
Wersja 1.9.0-alpha02
7 maja 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.9.0-alpha02
Wersja 1.9.0-alpha02 zawiera te zmiany.
Nowe funkcje
- Znacznie ulepszona obsługa przewijania i przeciągania w przypadku elementów udostępnionych. Gdy przewijany jest przechodzący element współdzielony, delta przewijania jest stosowana bezpośrednio do elementu współdzielonego, zamiast powodować, że elementy współdzielone podążają za nowym celem. (cacf7b)
Wersja 1.9.0-alpha01
23 kwietnia 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.9.0-alpha01
Wersja 1.9.0-alpha01 zawiera te zmiany.
Zmiany w zachowaniu
- Sprawdzanie Lint dostarczane z Compose wymaga teraz minimalnej wersji AGP 8.8.2. Jeśli nie możesz uaktualnić AGP, możesz zamiast tego uaktualnić Lint, używając w pliku
gradle.properties
wersjiandroid.experimental.lint.version=8.8.2
(lub nowszej). Aby uruchamiać sprawdzanie kodu za pomocą narzędzia Lint w IDE, musisz mieć Androida Studio Ladybug lub nowszego.
Nowe funkcje
- Poprawiona wydajność przewijania w przypadku elementów udostępnionych (ea4f1f)
Zmiany w interfejsie API
- Projekty wydane w Kotlinie 2.0 wymagają użycia KGP w wersji 2.0.0 lub nowszej. (Idb6b5)
- Wycofano metody
TabRow
iScrollableTabRow
na rzecz ich wersji podstawowych i dodatkowych. Wiersze na kartach Podstawowe i Dodatkowe działają wydajniej i są bardziej zgodne ze specyfikacją. (I918e2) - Dodano
LocalResources
kompozycję lokalną do zapytania o zasoby. Wywołanie funkcjiLocalResources.current
spowoduje ponowne skomponowanie, gdy zmieni się konfiguracja, więc wywołania interfejsów API, takich jakstringResource()
, zwrócą zaktualizowane wartości (I50c13, b/274786917).
Poprawki błędów
- Gdy przejście się zakończy, elementy udostępnione powinny zostać usunięte z nakładki (35f359).
- Eliminate extra recomposition in Transition (988923)
- Poprawiono obsługę przerwania przejścia dziecka (8aed52)
- Zapewnij resetowanie przejścia po podaniu nowego parametru
TransitionState
(57820a)
Wkład zewnętrzny
- Z Tworzenie
1.8.1
: kończenie animacji wSeekableTransitionState
, jeśli już przekroczyły nowy czas trwania, autor: Steven Schoen. (0c832c)
Wersja 1.8
Wersja 1.8.3
18 czerwca 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.3
Wersja 1.8.3 zawiera te zmiany.
Wersja 1.8.2
20 maja 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.2
Wersja 1.8.2 zawiera te zmiany.
Wersja 1.8.1
7 maja 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.1
Wersja 1.8.1 zawiera te zmiany.
Wkład zewnętrzny
- Zakończ animacje w
SeekableTransitionState
, jeśli już przekroczyły nowy czas trwania. Dziękujemy Stevenowi Schoenowi! (fbcdf7)
Wersja 1.8.0
23 kwietnia 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0
Wersja 1.8.0 zawiera te zmiany.
Ważne zmiany od wersji 1.7.0
- Ważne zmiany w wersji 1.8.0 zostały opisane w tym artykule na blogu.
- Nowy interfejs API
Modifier.animateBounds
do animowania zmian rozmiaru i pozycji w zakresie wyprzedzającym. (94b939) - Finalizacja interfejsów API dla klatek kluczowych z łukami i krzywymi (89e119)
- Obsługiwane wyprzedzające w
LazyGrid
i Pagerze. Obejmuje to rozróżnianie przewidywanego przejścia i przejścia zbliżającego się podczas przewijania, kompozycji/usuwania elementów i animacji elementów oraz wykorzystywanie przewidywanego przejścia jako źródła informacji o przewijaniu i docelowej animacji elementu. - Zmieniono nazwę parametru
sharedElement
z state nasharedContentState
, aby zachować spójność w interfejsach API elementów udostępnionych. (9e7df5) AnimatedImageVector
interfejsów API jest już stabilny.(69d7e0)
Wersja 1.8.0-rc03
9 kwietnia 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-rc03
Wersja 1.8.0-rc03 zawiera te zmiany.
Wersja 1.8.0-rc02
26 marca 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-rc02
Wersja 1.8.0-rc02 zawiera te zmiany.
Wersja 1.8.0-rc01
12 marca 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-rc01
Wersja 1.8.0-rc01 zawiera te zmiany.
Poprawki błędów
- Błędne oznaczanie przejścia do trybu dziecka jako przerwane. (3fa2ce)
Wersja 1.8.0-beta03
26 lutego 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-beta03
Wersja 1.8.0-beta03 zawiera te zmiany.
Wersja 1.8.0-beta02
12 lutego 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-beta02
Wersja 1.8.0-beta02 zawiera te zmiany.
Wersja 1.8.0-beta01
29 stycznia 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-beta01
Wersja 1.8.0-beta01 zawiera te zmiany.
Wersja 1.8.0-alpha08
15 stycznia 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-alpha08
Wersja 1.8.0-alpha08 zawiera te commity.
Poprawki błędów
- Rozwiązanie problemu z nieprawidłową animacją umieszczania z
animateBounds
wLazyGrid
z powodu zresetowaniaMotionFrameOfReferencePlacement
. (16193b) - Naprawiono wewnętrzne zapytanie w
SharedTransitionLayout
, przekierowując je do etapu wyprzedzającego z głównego węzła wyprzedzającego. (a07d12) - Dodano brakujące tagi
@param
w dokumentach. (e5cf67)
Wersja 1.8.0-alpha07
11 grudnia 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-alpha07
Wersja 1.8.0-alpha07 zawiera te zmiany.
Nowe funkcje
- Obsługuje wyprzedzające wczytywanie w komponencie Pager, odróżniając wyprzedzające wczytywanie od wczytywania przybliżającego w celu zachowania elementów i wykorzystania przewijania. (b/371802474)
Poprawki błędów
- Naprawia rzadki błąd powodujący awarię, gdy element współdzielony jest tworzony, ale nigdy nie jest mierzony ani umieszczany. Wymaga to renderowania elementu współdzielonego w miejscu docelowym co najmniej raz przed renderowaniem go w nakładce. (b/371802474)
Wersja 1.8.0-alpha06
13 listopada 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-alpha06
Wersja 1.8.0-alpha06 zawiera te zmiany.
Zmiany w interfejsie API
- Zmieniono nazwę parametru
sharedElement
zstate
nasharedContentState
, aby zachować spójność w interfejsach API elementów udostępnionych. (I5694c, b/375351468) AnimatedImageVector
interfejsów API jest już stabilna. (I7174b, b/261436267)
Wersja 1.8.0-alpha05
30 października 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-alpha05
Wersja 1.8.0-alpha05 zawiera te zmiany.
Nowe funkcje
- Funkcja podglądu jest teraz dostępna w języku
LazyGrid
. Obejmuje to rozróżnianie przewidywanego przejścia i przejścia zbliżającego się podczas przewijania, kompozycji/usuwania elementów i animacji elementów oraz wykorzystywanie przewidywanego przejścia jako źródła informacji o przewijaniu i docelowej animacji elementu.
Poprawki błędów
- Aktualizowanie stanów wewnętrznych przekształcenia rozmiaru elementu
AnimatedContent
, gdy przejście jest odtwarzane. Dzięki temu informacje o rozmiarze docelowym będą zawsze aktualne. (b/372512085)
Wersja 1.8.0-alpha04
16 października 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-alpha04
Wersja 1.8.0-alpha04 zawiera te zmiany.
Poprawki błędów
- Naprawiliśmy błąd, który powodował awarię niektórych krzywych łagodzenia przy określonych ułamkach czasu.
- Naprawiliśmy błąd, który powodował nieprawidłowe wyrównanie elementu
Modifier.animateContentSize
w przypadku języków zapisywanych od prawej do lewej. (Idae6b, b/372055503)
Wersja 1.8.0-alpha03
2 października 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-alpha03
Wersja 1.8.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Aktualizacja wersji Kotlina do 1.9 (I1a14c)
Poprawki błędów
- Rozwiązaliśmy problem z animacją
AnimatedContent
rozmiaru, zawsze śledząc i rozpoczynając animację od bieżącego rozmiaru, aby zapewnić ciągłość.
Wersja 1.8.0-alpha02
18 września 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-alpha02
Wersja 1.8.0-alpha02 zawiera te zmiany.
Wersja 1.8.0-alpha01
4 września 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.8.0-alpha01
Wersja 1.8.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Nowy interfejs API
Modifier.animateBounds
do animowania zmian rozmiaru i pozycji w zakresie wyprzedzającym. 94b9394
Zmiany w interfejsie API
- Usuwanie eksperymentalnych flag z klatek kluczowych z łukami i krzywymi splajnów (89e1199)
Poprawki błędów
- Pomiń logikę
placeHolderSize
, gdy nie znaleziono dopasowania (77c0160) - Ograniczanie czasu odtwarzania w
AndroidFlingSpline
, aby zapobiec awariom spowodowanym przez niemonotonicznie rosnący czas odtwarzania(9d47587) - Rozwiązano problem z elementem
SharedTransitionScope
, który w określonych warunkach nie rysował elementów (b41077b6)
Wkład zewnętrzny
- Zapobieganie ustawianiu przejścia z możliwością przewijania
playTime
, gdy nie ma aktywnego przejścia, autor: Steven Schoen. (c2e6e7e6)
Wersja 1.7
Wersja 1.7.8
12 lutego 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.8
Wersja 1.7.8 zawiera te zmiany.
Wersja 1.7.7
29 stycznia 2025 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.7
Brak zmian w porównaniu z wersją 1.7.6.
11 grudnia 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.6
Wersja 1.7.6 zawiera te zmiany.
Wersja 1.7.5
30 października 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.5
Wersja 1.7.5 zawiera te zmiany.
Poprawki błędów
- Naprawiliśmy błąd, który powodował nieprawidłowe wyrównanie elementu
Modifier.animateContentSize
w przypadku języków zapisywanych od prawej do lewej. (Idae6b, b/372055503)
Wersja 1.7.4
16 października 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.4
Wersja 1.7.4 zawiera te zmiany.
Wersja 1.7.3
2 października 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.3
Wersja 1.7.3 zawiera te zmiany.
Wersja 1.7.2
18 września 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.2
Wersja 1.7.2 zawiera te zmiany.
Wkład zewnętrzny
- Zapobiega ustawianiu przejścia z możliwością przewijania
playTime
, gdy nie jest uruchomione żadne przejście. Dziękujemy Stevenowi Schoenowi! (c2e6e7e6)
Wersja 1.7.1
10 września 2024 r.
- Brak zmian w artefaktach Androida. Usunięto
-desktop
artefaktów, a dodano-jvmStubs
i-linuxx64Stubs
artefakty. Żaden z tych celów nie jest przeznaczony do użytku. Są to symbole zastępcze, które mają pomóc w pracach nad Jetbrains Compose.
Wersja 1.7.0
4 września 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0
Ważne zmiany od wersji 1.6.0
Ważne zmiany w wersji 1.7.0 zostały opisane w tym poście na blogu.
Nowe interfejsy API przejścia wspólnego elementu
- Nowe interfejsy API przejścia między elementami współdzielonymi czekają na Twoje opinie. Te nowe eksperymentalne interfejsy API umożliwiają oznaczanie układów jako udostępnionych w drzewie układu za pomocą podanych modyfikatorów, co pozwala uzyskać płynne zmiany granic, gdy jeden zestaw udostępnionych treści jest zamykany, a drugi otwierany. (Icb0b9)
- Nowe
scaleInSharedContentToBounds
iscaleOutSharedContentToBounds
do skalowania treści wsharedBounds
(I731c1) - Eksperymentalny interfejs
SharedTransitionScope
jest teraz interfejsem, a nie klasą. (Iaf856) - Nowe ustawienie
resizeModes
(ScaleToBounds
iRemeasureToBounds
) dlasharedBounds
, które pozwala wybrać skalowanie lub ponowny pomiar. Poprzednie interfejsy APIscaleIn/OutSharedContentToBounds
zostały wycofane. (I0d41a)
Ulepszenia istniejących interfejsów API:
- Nowy tag
Modifier.animateContentSize
, który przyjmuje dodatkowy parametr do niestandardowego wyrównania treści. (I5623a, b/269803907) - Nowa funkcja eksperymentalna
DeferredTargetAnimation
do animowania rozmiaru, pozycji lub innego elementu docelowego, który jest nieznany w momencie tworzenia instancji. (I60745) SeekableTransitionState
zastępujesnapTo()
elementemseekTo()
i dodajesnapTo()
, który natychmiast zmienia stan na stan docelowy bez żadnej animacji.- Możesz teraz przekazywać wartość
periodicBias
(liczba zmiennoprzecinkowa) do parametrukeyframesWithSpline
. Dzięki temu początkowa i końcowa prędkość krzywej splajn będzie taka sama. Przydatne w przypadku powtarzalnych animacji wykorzystujących splajny. Odchylenie wskazuje, o ile należy zmodyfikować każdą prędkość (początkową i końcową), aby uzyskać okresowość. (Ic1e6c, b/292114811)
Te interfejsy API zostały ustabilizowane lub usunięte:
- Interfejs
AnimatedVisibilityScope.transition
jest teraz stabilnym interfejsem API.Modifier.animateEnterExit(..)
również stało się stabilne. (I6c1d1) ApproachLayoutModifierNode
iModifier.approachLayout
są teraz stabilne, a noweisMeasurementApproachInProgress()
iisPlacementApproachInProgress()
zastępują odpowiednio stareisMeasurementApproachComplete()
iisPlacementApproachComplete()
.- Usunięto nieużywany modyfikator
intermediateLayout
. (I3e91c) - Interfejsy
LookaheadScope
API zostały ustabilizowane. (I21507)
Wersja 1.7.0-rc01
21 sierpnia 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-rc01
Wersja 1.7.0-rc01 zawiera te zmiany.
Wersja 1.7.0-beta07
7 sierpnia 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-beta07
Wersja 1.7.0-beta07 zawiera te zmiany.
Poprawki błędów
- Naprawiono błąd polegający na tym, że w określonych warunkach, zwykle w przypadku korzystania z nawigacji, element
SharedTransitionScope
nie rysował elementów nakładki podczas przejścia. (Id65ab, b/347520198)
Wersja 1.7.0-beta06
24 lipca 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-beta06
Wersja 1.7.0-beta06 zawiera te zmiany.
Poprawki błędów
- Rozwiązanie problemu z wyciekiem stanów przejścia w
SeekableTransition
przez prawidłowe czyszczenie obserwacji zSnapshotStateObserver
po usunięciu przejścia. (b9c7182) - Rozwiązaliśmy problemy w przypadkach granicznych, w których przejścia podrzędne nie były prawidłowo oznaczane jako ukończone, gdy przejście nadrzędne było ukończone. (dc42216)
Wersja 1.7.0-beta05
10 lipca 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-beta05
Wersja 1.7.0-beta05 zawiera te zmiany.
Poprawki błędów
- Właściwość przejścia
totalDurationNanos
można teraz prawidłowo odczytać w ramach elementusnapshotFlow
.
Wersja 1.7.0-beta04
26 czerwca 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-beta04
Wersja 1.7.0-beta04 zawiera te zmiany.
Wersja 1.7.0-beta03
12 czerwca 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-beta03
Wersja 1.7.0-beta03 zawiera te zmiany.
Wersja 1.7.0-beta02
29 maja 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-beta02
Wersja 1.7.0-beta02 zawiera te zmiany.
Wersja 1.7.0-beta01
14 maja 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-beta01
Wersja 1.7.0-beta01 zawiera te commity.
Zmiany w interfejsie API
- Nowe ustawienie
resizeModes
(ScaleToBounds
iRemeasureToBounds
) dlasharedBounds
, które pozwala wybrać skalowanie lub ponowny pomiar. Poprzednie interfejsy APIscaleIn/OutSharedContentToBounds
zostały wycofane. (I0d41a)
Wkład zewnętrzny
- Eksperymentalny
SharedTransitionScope
jest teraz interfejsem, a nie klasą. Autorem jest Steven Schoen. (Iaf856, b/338415048, b/338414702)
Wersja 1.7.0-alpha08
1 maja 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-alpha08
Wersja 1.7.0-alpha08 zawiera te zmiany.
Zmiany w interfejsie API
- Interfejsy
LookaheadScope
API zostały ustabilizowane. (I21507)
Wkład zewnętrzny
- Wymazywanie czasu animacji początkowej po animacji/zatrzaśnięciu
SeekableTransitionState
przez Stevena Schoena (1ca89529)
Wersja 1.7.0-alpha07
17 kwietnia 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-alpha07
Wersja 1.7.0-alpha07 zawiera te zmiany.
Nowe funkcje
- Nowe interfejsy API przejścia między elementami współdzielonymi czekają na Twoje opinie. Te nowe eksperymentalne interfejsy API umożliwiają oznaczanie układów jako udostępnionych w drzewie układu za pomocą podanych modyfikatorów, co pozwala uzyskać płynne zmiany granic, gdy jeden zestaw udostępnionych treści jest zamykany, a drugi otwierany. (Icb0b9)
- Nowe
scaleInSharedContentToBounds
iscaleOutSharedContentToBounds
do skalowania treści wsharedBounds
(I731c1)
Zmiany w interfejsie API
- Interfejs
AnimatedVisibilityScope.transition
jest teraz stabilnym interfejsem API.Modifier.animateEnterExit(..)
również stało się stabilne. (I6c1d1) ApproachLayoutModifierNode
iModifier.approachLayout
są teraz stabilne, a noweisMeasurementApproachInProgress()
iisPlacementApproachInProgress()
zastępują odpowiednio stareisMeasurementApproachComplete()
iisPlacementApproachComplete()
.- Usunięto nieużywany modyfikator
intermediateLayout
. (I3e91c) - Możesz teraz przekazywać wartość
periodicBias
(liczba zmiennoprzecinkowa) do parametrukeyframesWithSpline
. Dzięki temu początkowa i końcowa prędkość krzywej splajn będzie taka sama. Przydatne w przypadku powtarzalnych animacji wykorzystujących splajny. Odchylenie wskazuje, o ile należy zmodyfikować każdą prędkość (początkową i końcową), aby uzyskać okresowość. (Ic1e6c, b/292114811)
Poprawki błędów
- Poprawiono krzywe łagodzenia, które wcześniej były ograniczane do zakresu 0–1 (I38747).
Wersja 1.7.0-alpha06
3 kwietnia 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-alpha06
Wersja 1.7.0-alpha06 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy obsługę animacji pojawiania się i znikania elementów w
LazyColumn
iLazyRow
. Wcześniej można było dodać modyfikatorModifier.animateItemPlacement()
, aby obsługiwać animacje umieszczania (zmiany kolejności). Wycofaliśmy ten modyfikator i wprowadziliśmy nowy, nieeksperymentalny modyfikator o nazwieModifier.animateItem()
, który umożliwia obsługę wszystkich 3 rodzajów animacji: pojawiania się (zanikanie), znikania (zanikanie) i zmiany kolejności. (I2d7f7, b/330152398, b/150812265)
Poprawki błędów
- Poprawiona wydajność
updateTransition
interfejsu API.
Wersja 1.7.0-alpha05
20 marca 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-alpha05
Wersja 1.7.0-alpha05 zawiera te zmiany.
Zmiany w interfejsie API
SeekableTransitionState
zastępujesnapTo()
elementemseekTo()
i dodajesnapTo()
, który natychmiast zmienia stan na stan docelowy bez żadnej animacji.
Wersja 1.7.0-alpha04
6 marca 2024 roku
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-alpha04
Wersja 1.7.0-alpha04 zawiera te zmiany.
Zmiany w interfejsie API
- Nowy interfejs API
Path.reverse()
do odwracania kierunku ścieżki (I36348)
Wersja 1.7.0-alpha03
21 lutego 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-alpha03
Wersja 1.7.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Nowy tag
Modifier.animateContentSize
, który przyjmuje dodatkowy parametr do niestandardowego wyrównania treści. (I5623a, b/269803907) - Nowa funkcja eksperymentalna
DeferredTargetAnimation
do animowania rozmiaru, pozycji lub innego elementu docelowego, który jest nieznany w momencie tworzenia instancji. (I60745)
Wersja 1.7.0-alpha02
7 lutego 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-alpha02
Wersja 1.7.0-alpha02 zawiera te zmiany.
Poprawki błędów
- Poprawka zgodności dla
KeyframesSpec
. (I2bdf3, b/322214617) - Rozwiązaliśmy problem z nieprawidłowym resetowaniem
Modifier.animateContentSize
w przypadku używania go wLazyList
. (I070512, b/322525716) - Naprawiliśmy błąd
IllegalStateException
w przypadkuKeyframesSpec
podczas używania sygnatur czasowych spoza zakresu. (I341b8, b/322839811)
Wersja 1.7.0-alpha01
24 stycznia 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.7.0-alpha01
Wersja 1.7.0-alpha01 zawiera te zmiany.
Wersja 1.6
Wersja 1.6.8
12 czerwca 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.8
Wersja 1.6.8 zawiera te zmiany.
Wersja 1.6.7
1 maja 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.7
Wersja 1.6.7 zawiera te zmiany.
Wersja 1.6.6
17 kwietnia 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.6
Brak zmian od poprzedniej wersji
Wersja 1.6.5
3 kwietnia 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.5
Wersja 1.6.5 zawiera te zmiany.
Wersja 1.6.4
20 marca 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.4
Wersja 1.6.4 zawiera te zmiany.
Wersja 1.6.3
6 marca 2024 roku
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.3
Wersja 1.6.3 zawiera te zmiany.
Wersja 1.6.2
21 lutego 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.2
Wersja 1.6.2 zawiera te zmiany.
Wersja 1.6.1
7 lutego 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.1
Wersja 1.6.1 zawiera te zmiany.
Poprawki błędów
- Poprawka zgodności dla
KeyframesSpec
. (I2bdf3, b/322214617)
Wersja 1.6.0
24 stycznia 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.0
Wersja 1.6.0 zawiera te zmiany.
Wersja 1.6.0-rc01
10 stycznia 2024 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.0-rc01
Wersja 1.6.0-rc01 zawiera te zmiany.
Wersja 1.6.0-beta03
13 grudnia 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.0-beta03
Wersja 1.6.0-beta03 zawiera te zmiany.
Zmiany w interfejsie API
- Tymczasowo usunięto
scaleInToFitContainer
iscaleOutToFitContainer
zAnimatedContentTransitionScope
, ponieważ wymagają one wyprzedzenia. Będą one dostępne, gdy w przyszłych wersjach funkcja wyprzedzającego wpisywania będzie domyślnie włączona lub gdy użytkownik ją włączy.
Wersja 1.6.0-beta02
29 listopada 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.0-beta02
Wersja 1.6.0-beta02 zawiera te zmiany.
Wersja 1.6.0-beta01
15 listopada 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.0-beta01
Wersja 1.6.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Nazwa
ExitTransition.Hold
została zmieniona naExitTransition.KeepUntilTransitionsFinished
, aby była bardziej jednoznaczna. (I1c490) - Możesz teraz używać funkcji
keyframesWithSpline
do interpolacji dowolnej wartości N-wymiarowej za pomocą splajnów monotonicznych. Jest to szczególnie przydatne w przypadku interpolacji wartości pozycyjnych, takich jakOffset
,IntOffset
,DpOffset
. Dodano jako eksperymentalny interfejs API.
Poprawki błędów
- Dodaliśmy obsługę renderowania gradientu kołowego w
ArcLine
. (I4d5bb) - Zaimplementuj metody equals i hashcode dla klasy
PageSize.Fixed
. (Ie3ede, b/300134276) - Rozwiązano problem ze zgodnością binarną związany ze zmianą wstawki okna. (Iee695)
- Usuń podstawową warstwę materiału w przypadku komponentu lub przycisku Material3, ponieważ testy porównawcze pokazują, że bez niej wydajność jest lepsza. (I55555)
Wersja 1.6.0-alpha08
18 października 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.0-alpha08
Wersja 1.6.0-alpha08 zawiera te zmiany.
Zmiany w interfejsie API
- Wycofano
KeyframesSpecConfig#with
na rzeczKeyframesSpecConfig#using
, które zachowuje wzorzec konstruktora. (I1d769)
Wersja 1.6.0-alpha07
4 października 2023 roku
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.0-alpha07
Wersja 1.6.0-alpha07 zawiera te zmiany.
Zmiany w interfejsie API
- Warianty stałe i przewijane w przypadku wierszy kart mają teraz warianty główne i dodatkowe. Są one prawidłowo zmapowane na kolor i zachowanie wskaźnika zgodnie z definicją w Material 3.
- Elementy
PrimaryScrollableTabRow
iSecondaryScrollableTabRow
udostępniają teraz stan przewijania. (Iec8f5, b/260572337)
Wersja 1.6.0-alpha06
20 września 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.0-alpha06
Wersja 1.6.0-alpha06 zawiera te zmiany.
Wersja 1.6.0-alpha05
6 września 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.0-alpha05
Wersja 1.6.0-alpha05 zawiera te zmiany.
Zmiany w interfejsie API
- Dodano
PathEasing
, aby umożliwić podanie dowolnej ścieżki do krzywej łagodzenia. (Idb4b9)
Wersja 1.6.0-alpha04
23 sierpnia 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.0-alpha04
Wersja 1.6.0-alpha04 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaj
SeekableTransitionState
, aby umożliwić deweloperom kontrolowanie postępu przejścia. (I8e69d)
Wersja 1.6.0-alpha03
9 sierpnia 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.0-alpha03
Wersja 1.6.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Nowy typ przejścia wejścia/wyjścia, który skaluje treść na podstawie rozmiaru animowanego kontenera podczas animacji wejścia i wyjścia.
LookaheadScope
Funkcje i interfejs kompozycyjny są teraz stabilne. (Ifb2ce)
Wersja 1.6.0-alpha02
26 lipca 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.0-alpha02
Wersja 1.6.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Nowy element
ExitTransition.Hold
do wyświetlania treści wychodzących wAnimatedContent
, dopóki nie zakończą się oba przejścia (wejście i wyjście). (I5984f) - Dodatkowe adnotacje do określania dozwolonych danych wejściowych w funkcjach kompozycyjnych (I51109)
Wersja 1.6.0-alpha01
21 czerwca 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.6.0-alpha01
Wersja 1.6.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Włącz pełną integrację
Modifier.animateContentSize
iAnimatedVisibility
z systemem przewidywania, zgłaszając rozmiar docelowy w ramach przewidywania.
Zmiany w interfejsie API
- Nowa właściwość w
IntrinsincMeasureScope
i jej implementacje (np.MeasureScope
) wskazujące, czy bieżące przejście pomiaru jest przejściem wyprzedzającym. (I7a812)
Poprawki błędów
- Usunięto alokacje z animacji sprężynowych. (Ie9431)
- Zmiana nazwy parametru value w przypadku Enum.valueOf (Ia9b89)
- więcej wyjątków zgłaszanych przez enum valueOf (I818fe)
Wersja 1.5
Wersja 1.5.4
18 października 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.5.4
Wersja 1.5.4 zawiera te zmiany.
Wersja 1.5.3
4 października 2023 roku
Zostanie wycofaneandroidx.compose.animation:animation-*:1.5.3
Ta wersja nie zawiera żadnych zmian
Wersja 1.5.2
27 września 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.5.2
Wersja 1.5.2 zawiera te zmiany.
Wersja 1.5.1
6 września 2023 r.
Zostanie wycofaneandroidx.compose.foundation:foundation-*:1.5.1
Wersja 1.5.1 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem z wyświetlaniem klawiatury i możliwością edytowania pól tekstowych, gdy wartość
readOnly
wynosiła „true”. Naprawiliśmy też problem polegający na tym, że klawiatura nie wyświetlała się, gdy wartośćreadOnly
zmieniała się z prawda na fałsz, gdy element był aktywny. (I34a19, b/246909589)
Wersja 1.5.1
6 września 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.5.1
Wersja 1.5.1 zawiera te zmiany.
Wersja 1.5.0
9 sierpnia 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.5.0
Wersja 1.5.0 zawiera te zmiany.
Wersja 1.5.0-rc01
26 lipca 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.5.0-rc01
Wersja 1.5.0-rc01 zawiera te zmiany.
Poprawki błędów
Rozwiązaliśmy problem, który powodował, że wywołanie funkcji
.value
na typie stanu pierwotnego (np.MutableIntState
) powodowało wyświetlanie ostrzeżenia narzędzia lint z nieprawidłową poprawką. Kontrola będzie teraz zalecać migrację do właściwej usługi. (Iba953, b/287279257)Dostępna jest opcjonalna inspekcja, która zaleca migrację wywołań
mutableStateOf()
do odpowiednich typów specjalistycznych dla typów prostych. Jego identyfikator toAutoboxingStateCreation
. Wcześniej ta kontrola była domyślnie włączona we wszystkich projektach. Aby zobaczyć to ostrzeżenie w edytorze Androida Studio i w wynikach lintowania projektu, zmień jego ważność z informacyjnej na ostrzeżenie (lub wyższą), deklarującwarning "AutoboxingStateCreation"
w konfiguracjibuild.gradle
lubbuild.gradle.kts
modułu, jak pokazano poniżej (I34f7e):android { lint { warning "AutoboxingStateCreation" } ... }
Wersja 1.5.0-beta03
28 czerwca 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.5.0-beta03
Wersja 1.5.0-beta03 zawiera te zmiany.
Wersja 1.5.0-beta02
7 czerwca 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.5.0-beta02
Wersja 1.5.0-beta02 zawiera te zmiany.
Wersja 1.5.0-beta01
24 maja 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.5.0-beta01
Wersja 1.5.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Usunięto alokacje w przypadku ponownego komponowania, animacji kolorów i
AndroidComposeView
(Ib2bfa)
Poprawki błędów
- Usunięto przydziały z animacji sprężynowych (Ie9431)
Wersja 1.5.0-alpha04
10 maja 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.5.0-alpha04
Wersja 1.5.0-alpha04 zawiera te zmiany.
Zmiany w interfejsie API
ContentKey
jest teraz obsługiwane wAnimatedContent
, co zapewnia większą kontrolę nad momentem przejścia. (Ic069b)
Wersja 1.5.0-alpha03
19 kwietnia 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.5.0-alpha03
Wersja 1.5.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Nowe domyślne działanie funkcji
SubcomposeLayout
wLookaheadScope
. Umożliwia to prawidłowe działanie elementówSubcomposeLayouts
, które nie mają boksów warunkowych (np.TabRow
,Scaffold
,BoxWithConstraints
itp.), z animacjami wyprzedzającymi.
Zmiany w interfejsie API
- Nowa wartość domyślna
intermediateMeasurePolicy
, która ponownie wykorzystuje zasady pomiaru z wyprzedzającego przebiegu, umożliwia działanie podtypówSubcomposeLayout
bez warunkowych miejsc docelowych, takich jakScaffold
,TabRow
iBoxWithConstraints
, z wyprzedzającym przebiegiem. (Id84c8) - Zmień nazwę funkcji wrostkowej fun with na
togetherWith
, aby łączyć przejścia przy rozpoczęciu i zakończeniu wyświetlania elementów. NowyAnimatedContentScope
jako odbiorca funkcji lambda treści. (Ic39ae)
Wersja 1.5.0-alpha02
5 kwietnia 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.5.0-alpha02
Wersja 1.5.0-alpha02 zawiera te zmiany.
Nowe funkcje
- Nowy eksperymentalny interfejs API obsługujący wyprzedzanie w
SubcomposeLayout
. Umożliwi to prawidłowe działanie aplikacjiSubcomposeLayout
na urządzeniuLookaheadScope
. Wkrótce udostępnimy więcej gotowych funkcji obsługi konkretnych podtypówSubcomposeLayout
.
Zmiany w interfejsie API
- Nowy interfejs API
SubcomposeLayout
, który przyjmuje dodatkowe zasady pomiaru pośredniego do obsługi logiki pomiaru/układu podczas animacji opartych na wyprzedzeniu. (I017d3)
Wersja 1.5.0-alpha01
22 marca 2023 r.
Zostanie wycofaneandroidx.compose.animation:animation-*:1.5.0-alpha01
Wersja 1.5.0-alpha01 zawiera te zmiany.
Zmiany w interfejsie API
AnimatedContent
Interfejsy API są teraz stabilneAnimatedContentScope
został zmieniony naAnimatedContentTransitionScope
. InterfejsyscaleIn
iscaleOut
są teraz stabilne. (Iaf54e)
Wersja 1.4
Wersja 1.4.3
3 maja 2023 r.
androidx.compose.animation:animation:1.4.3
, androidx.compose.animation:animation-core:1.4.3
i androidx.compose.animation:animation-graphics:1.4.3
są publikowane bez zmian (tylko ze zmianą wersji).
Wersja 1.4.2
19 kwietnia 2023 r.
Usługi androidx.compose.animation:animation:1.4.2
, androidx.compose.animation:animation-core:1.4.2
i androidx.compose.animation:animation-graphics:1.4.2
są udostępniane bez zmian. Wersja 1.4.2 zawiera te zmiany.
Wersja 1.4.1
5 kwietnia 2023 r.
Usługi androidx.compose.animation:animation:1.4.1
, androidx.compose.animation:animation-core:1.4.1
i androidx.compose.animation:animation-graphics:1.4.1
są udostępniane bez zmian. Wersja 1.4.1 zawiera te zmiany.
Wersja 1.4.0
22 marca 2023 r.
androidx.compose.animation:animation:1.4.0
, androidx.compose.animation:animation-core:1.4.0
i androidx.compose.animation:animation-graphics:1.4.0
są zwalniane. Wersja 1.4.0 zawiera te zmiany.
Ważne zmiany od wersji 1.3.0
- Etykieta narzędzia jest obsługiwana w r
ememberInfiniteTransition
i we wszystkich funkcjach rozszerzenia wInfiniteTransition
i Transition (np.InfiniteTransition#animateColor
) (I56ef7).
Wersja 1.4.0-rc01
8 marca 2023 r.
Usługi androidx.compose.animation:animation:1.4.0-rc01
, androidx.compose.animation:animation-core:1.4.0-rc01
i androidx.compose.animation:animation-graphics:1.4.0-rc01
są udostępniane bez zmian. Wersja 1.4.0-rc01 zawiera te zmiany.
Wersja 1.4.0-beta02
22 lutego 2023 roku
Usługi androidx.compose.animation:animation:1.4.0-beta02
, androidx.compose.animation:animation-core:1.4.0-beta02
i androidx.compose.animation:animation-graphics:1.4.0-beta02
są udostępniane bez zmian. Wersja 1.4.0-beta02 zawiera te zmiany.
Wersja 1.4.0-beta01
8 lutego 2023 r.
Usługi androidx.compose.animation:animation:1.4.0-beta01
, androidx.compose.animation:animation-core:1.4.0-beta01
i androidx.compose.animation:animation-graphics:1.4.0-beta01
są udostępniane bez zmian. Wersja 1.4.0-beta01 zawiera te zmiany.
Wersja 1.4.0-alpha05
25 stycznia 2023 r.
androidx.compose.animation:animation:1.4.0-alpha05
, androidx.compose.animation:animation-core:1.4.0-alpha05
i androidx.compose.animation:animation-graphics:1.4.0-alpha05
są zwalniane. Wersja 1.4.0-alpha05 zawiera te zmiany.
Zmiany
- Od ostatniej wersji alfa nie wprowadzono żadnych zmian w bibliotekach animacji, tylko zwiększono numer wersji.
Wersja 1.4.0-alpha04
11 stycznia 2023 r.
androidx.compose.animation:animation:1.4.0-alpha04
, androidx.compose.animation:animation-core:1.4.0-alpha04
i androidx.compose.animation:animation-graphics:1.4.0-alpha04
są zwalniane. Wersja 1.4.0-alpha04 zawiera te zmiany.
Nowe funkcje
- Etykieta narzędzia jest obsługiwana w
rememberInfiniteTransition
oraz we wszystkich funkcjach rozszerzenia wInfiniteTransition
iTransition
(np.InfiniteTransition#animateColor
) (I56ef7).
Zmiany w interfejsie API
- Interfejsy API
InfiniteTransition#TransitionAnimationState
iInfiniteTransition#animations
są teraz publiczne. (I36682)
Wersja 1.4.0-alpha03
7 grudnia 2022 r.
androidx.compose.animation:animation:1.4.0-alpha03
, androidx.compose.animation:animation-core:1.4.0-alpha03
i androidx.compose.animation:animation-graphics:1.4.0-alpha03
są zwalniane. Wersja 1.4.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- W testach interfejsu przeprowadzanych za pomocą reguły Compose wznowienia w wywołaniach zwrotnych
withFrameNanos
nie będą wysyłane, dopóki nie zostaną wykonane wszystkie wywołania zwrotne klatek. Odpowiada to działaniu funkcji tworzenia wiadomości w normalnych warunkach. Testy, które opierają się na starym działaniu, mogą jednak zakończyć się niepowodzeniem. Powinno to mieć wpływ tylko na kod, który bezpośrednio wywołuje funkcjewithFrameNanos
lubwithFrameMillis
, oraz na logikę poza wywołaniem zwrotnym przekazywaną do tych funkcji, która może wymagać przeniesienia do wywołań zwrotnych. Przykłady zmian w teście animacji znajdziesz w tym CL. - Dodano opcjonalny parametr
onPerformTraversals: (Long) -> Unit
do konstruktoraTestMonotonicFrameClock
i funkcji fabrycznej, aby uruchamiać kod po wywołaniach zwrotnychwithFrameNanos
, ale przed wznowieniem korutyn rozmówców. (Idb413, b/254115946, b/222093277, b/255802670) - Nowy parametr w
AnimatedContent
dla etykiety narzędzia (Iebe2d)
Wersja 1.4.0-alpha02
9 listopada 2022 r.
androidx.compose.animation:animation:1.4.0-alpha02
, androidx.compose.animation:animation-core:1.4.0-alpha02
i androidx.compose.animation:animation-graphics:1.4.0-alpha02
są zwalniane. Wersja 1.4.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaj
ToolingState
, aby umożliwić narzędziom zmianę wewnętrznych stanów funkcji kompozycyjnej (Ie6614).
Wersja 1.4.0-alpha01
24 października 2022 r.
androidx.compose.animation:animation:1.4.0-alpha01
, androidx.compose.animation:animation-core:1.4.0-alpha01
i androidx.compose.animation:animation-graphics:1.4.0-alpha01
są zwalniane. Wersja 1.4.0-alpha01 zawiera te zmiany.
Poprawki błędów
- Poprawianie nieprawidłowej animacji przerwania w komponencie AnimatedContent (b/238662479)
Wersja 1.3
Wersja 1.3.3
11 stycznia 2023 r.
androidx.compose.animation:animation:1.3.3
, androidx.compose.animation:animation-core:1.3.3
i androidx.compose.animation:animation-graphics:1.3.3
są zwalniane. Wersja 1.3.3 zawiera te zmiany.
- Bez zmian od wersji 1.3.2.
Wersja 1.3.2
7 grudnia 2022 r.
androidx.compose.animation:animation:1.3.2
, androidx.compose.animation:animation-core:1.3.2
i androidx.compose.animation:animation-graphics:1.3.2
są zwalniane. Wersja 1.3.2 zawiera te zmiany.
Poprawki błędów
- Zaktualizowano obsługę androidx.compose.ui w wersji 1.3.2
Wersja 1.3.1
9 listopada 2022 r.
androidx.compose.animation:animation:1.3.1
, androidx.compose.animation:animation-core:1.3.1
i androidx.compose.animation:animation-graphics:1.3.1
są zwalniane. Wersja 1.3.1 zawiera te zmiany.
Wersja 1.3.0
24 października 2022 r.
androidx.compose.animation:animation:1.3.0
, androidx.compose.animation:animation-core:1.3.0
i androidx.compose.animation:animation-graphics:1.3.0
są zwalniane. Wersja 1.3.0 zawiera te zmiany.
Ważne zmiany od wersji 1.2.0
- Nowy zestaw funkcji łagodzenia został ustabilizowany
Wersja 1.3.0-rc01
5 października 2022 r.
androidx.compose.animation:animation:1.3.0-rc01
, androidx.compose.animation:animation-core:1.3.0-rc01
i androidx.compose.animation:animation-graphics:1.3.0-rc01
są zwalniane. Wersja 1.3.0-rc01 zawiera te zmiany.
Wersja 1.3.0-beta03
21 września 2022 r.
androidx.compose.animation:animation:1.3.0-beta03
, androidx.compose.animation:animation-core:1.3.0-beta03
i androidx.compose.animation:animation-graphics:1.3.0-beta03
są zwalniane. Wersja 1.3.0-beta03 zawiera te zmiany.
- Brak zmian od wersji 1.3.0-beta02.
Wersja 1.3.0-beta02
7 września 2022 roku
androidx.compose.animation:animation:1.3.0-beta02
, androidx.compose.animation:animation-core:1.3.0-beta02
i androidx.compose.animation:animation-graphics:1.3.0-beta02
są zwalniane. Wersja 1.3.0-beta02 zawiera te zmiany.
- Usunięto opcję Kotlin.experimental z opcji kompilatora, ponieważ jest ona przestarzała.
Wersja 1.3.0-beta01
24 sierpnia 2022 r.
androidx.compose.animation:animation:1.3.0-beta01
, androidx.compose.animation:animation-core:1.3.0-beta01
i androidx.compose.animation:animation-graphics:1.3.0-beta01
są zwalniane. Wersja 1.3.0-beta01 zawiera te zmiany.
Wersja 1.3.0-alpha03
10 sierpnia 2022 r.
androidx.compose.animation:animation:1.3.0-alpha03
, androidx.compose.animation:animation-core:1.3.0-alpha03
i androidx.compose.animation:animation-graphics:1.3.0-alpha03
są zwalniane. Wersja 1.3.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Nowy parametr w
Crossfade
,animateAsState
iAnimatable
dla etykiety narzędzia (Iac08a) - Dodano funkcję
atFraction
, która umożliwia definiowanie klatek kluczowych jako ułamka zamiast określonego czasu trwania. (I20c76, b/232059455)
Wersja 1.3.0-alpha02
27 lipca 2022 roku
androidx.compose.animation:animation:1.3.0-alpha02
, androidx.compose.animation:animation-core:1.3.0-alpha02
i androidx.compose.animation:animation-graphics:1.3.0-alpha02
są zwalniane. Wersja 1.3.0-alpha02 zawiera te zmiany.
Wersja 1.3.0-alpha01
29 czerwca 2022 r.
androidx.compose.animation:animation:1.3.0-alpha01
, androidx.compose.animation:animation-core:1.3.0-alpha01
i androidx.compose.animation:animation-graphics:1.3.0-alpha01
są zwalniane. Wersja 1.3.0-alpha01 zawiera te zmiany.
Zmiany w interfejsie API
- Nowy
LookaheadLayout
, który obsługuje przekazywanie z wyprzedzeniem przed rzeczywistym pomiarem lub układem. Umożliwia to wstępne obliczenie układu, gdy się on zmienia, a także pozwala na użycie obliczonych z wyprzedzeniem rozmiarów i pozycji do animowania rozmiarów i pozycji w kierunku wartości docelowych.SubcomposeLayouts
nie są jeszcze obsługiwane, ale będzie można z nich korzystać w przyszłej wersji. (I477f5)
Wersja 1.2
Wersja 1.2.1
10 sierpnia 2022 r.
androidx.compose.animation:animation:1.2.1
, androidx.compose.animation:animation-core:1.2.1
i androidx.compose.animation:animation-graphics:1.2.1
są zwalniane. Wersja 1.2.1 zawiera te zmiany.
Wersja 1.2.0
27 lipca 2022 roku
androidx.compose.animation:animation:1.2.0
, androidx.compose.animation:animation-core:1.2.0
i androidx.compose.animation:animation-graphics:1.2.0
są zwalniane. Wersja 1.2.0 zawiera te zmiany.
Ważne zmiany od wersji 1.1.0
- Animacja Compose obsługuje teraz ustawienie „Skala czasu trwania animatora” z opcji programisty.
- Duży wybór nowych eksperymentalnych krzywych łagodzenia.
- Usługa
AnimatedImageVector
obsługuje terazrepeatCount
irepeatMode
Wersja 1.2.0-rc03
29 czerwca 2022 r.
androidx.compose.animation:animation:1.2.0-rc03
, androidx.compose.animation:animation-core:1.2.0-rc03
i androidx.compose.animation:animation-graphics:1.2.0-rc03
są zwalniane. Wersja 1.2.0-rc03 zawiera te zmiany.
- Brak zmian od wersji 1.2.0-rc02.
Wersja 1.2.0-rc02
22 czerwca 2022 r.
androidx.compose.animation:animation:1.2.0-rc02
, androidx.compose.animation:animation-core:1.2.0-rc02
i androidx.compose.animation:animation-graphics:1.2.0-rc02
są zwalniane. Wersja 1.2.0-rc02 zawiera te zmiany.
Poprawki błędów
- Usunięto adnotację
ExperimentalEasingApi
dotyczącą funkcji łagodzenia (Ied441)
Wersja 1.2.0-rc01
15 czerwca 2022 r.
androidx.compose.animation:animation:1.2.0-rc01
, androidx.compose.animation:animation-core:1.2.0-rc01
i androidx.compose.animation:animation-graphics:1.2.0-rc01
są zwalniane. Wersja 1.2.0-rc01 zawiera te zmiany.
Zmiany w interfejsie API
- Interfejsy w bibliotekach Compose są teraz tworzone przy użyciu domyślnych metod interfejsu jdk8 (I5bcf1).
Wersja 1.2.0-beta03
1 czerwca 2022 r.
androidx.compose.animation:animation:1.2.0-beta03
, androidx.compose.animation:animation-core:1.2.0-beta03
i androidx.compose.animation:animation-graphics:1.2.0-beta03
są zwalniane. Wersja 1.2.0-beta03 zawiera te zmiany.
Zmiany w interfejsie API
- Dodano eksperymentalne krzywe łagodzenia animacji (I64a38)
Wersja 1.2.0-beta02
18 maja 2022 r.
androidx.compose.animation:animation:1.2.0-beta02
, androidx.compose.animation:animation-core:1.2.0-beta02
i androidx.compose.animation:animation-graphics:1.2.0-beta02
są zwalniane. Wersja 1.2.0-beta02 zawiera te zmiany.
Wersja 1.2.0-beta01
11 maja 2022 roku
androidx.compose.animation:animation:1.2.0-beta01
, androidx.compose.animation:animation-core:1.2.0-beta01
i androidx.compose.animation:animation-graphics:1.2.0-beta01
są zwalniane. Wersja 1.2.0-beta01 zawiera te zmiany.
- To pierwsza wersja beta 1.2. Od ostatniej wersji alfa nie wprowadzono żadnych zmian.
Wersja 1.2.0-alpha08
20 kwietnia 2022 r.
androidx.compose.animation:animation:1.2.0-alpha08
, androidx.compose.animation:animation-core:1.2.0-alpha08
i androidx.compose.animation:animation-graphics:1.2.0-alpha08
są zwalniane. Wersja 1.2.0-alpha08 zawiera te zmiany.
Wersja 1.2.0-alpha07
6 kwietnia 2022 roku
androidx.compose.animation:animation:1.2.0-alpha07
, androidx.compose.animation:animation-core:1.2.0-alpha07
i androidx.compose.animation:animation-graphics:1.2.0-alpha07
są zwalniane. Wersja 1.2.0-alpha07 zawiera te zmiany.
Zmiany w interfejsie API
AnimatedImageVector
obsługuje terazrepeatCount
irepeatMode
(Ia3e75, b/199304067).
Wersja 1.2.0-alpha06
23 marca 2022 r.
androidx.compose.animation:animation:1.2.0-alpha06
, androidx.compose.animation:animation-core:1.2.0-alpha06
i androidx.compose.animation:animation-graphics:1.2.0-alpha06
są zwalniane. Wersja 1.2.0-alpha06 zawiera te zmiany.
Zmiany w interfejsie API
- Zaktualizowano analizowanie rysunków wektorowych, aby obsługiwać automatyczne odbijanie lustrzane, które odwraca zawartość elementu
VectorPainter
, jeśli bieżący kierunek układu to RTL. (I79cd9, b/185760237)
Poprawki błędów
- Zaktualizowano interfejsy API grafiki wektorowej, aby używać odpowiedniej adnotacji
@VectorComposable
zamiast@UiComposable
(I942bc).
Wersja 1.2.0-alpha05
9 marca 2022 r.
androidx.compose.animation:animation:1.2.0-alpha05
, androidx.compose.animation:animation-core:1.2.0-alpha05
i androidx.compose.animation:animation-graphics:1.2.0-alpha05
są zwalniane. Wersja 1.2.0-alpha05 zawiera te zmiany.
Zmiany w interfejsie API
- Hurra! Animacja kompozycji obsługuje teraz ustawienie „Skala czasu trwania animatora” z opcji programisty. (I5a4fc, b/161675988)
Wersja 1.2.0-alpha04
23 lutego 2022 r.
androidx.compose.animation:animation:1.2.0-alpha04
, androidx.compose.animation:animation-core:1.2.0-alpha04
i androidx.compose.animation:animation-graphics:1.2.0-alpha04
są zwalniane. Wersja 1.2.0-alpha04 zawiera te zmiany.
Wersja 1.2.0-alpha03
9 lutego 2022 r.
androidx.compose.animation:animation:1.2.0-alpha03
, androidx.compose.animation:animation-core:1.2.0-alpha03
i androidx.compose.animation:animation-graphics:1.2.0-alpha03
są zwalniane. Wersja 1.2.0-alpha03 zawiera te zmiany.
Wersja 1.2.0-alpha02
26 stycznia 2022 r.
androidx.compose.animation:animation:1.2.0-alpha02
, androidx.compose.animation:animation-core:1.2.0-alpha02
i androidx.compose.animation:animation-graphics:1.2.0-alpha02
są zwalniane. Wersja 1.2.0-alpha02 zawiera te zmiany.
Wersja 1.2.0-alpha01
12 stycznia 2022 r.
androidx.compose.animation:animation:1.2.0-alpha01
, androidx.compose.animation:animation-core:1.2.0-alpha01
i androidx.compose.animation:animation-graphics:1.2.0-alpha01
są zwalniane. Wersja 1.2.0-alpha01 zawiera te zmiany.
Zmiany w interfejsie API
- Użyj
AnimatedImageVector.animatedVectorResource
zamiastanimatedVectorResource
, aby wczytać plik zasobu<animated-vector>
.- Aby wyrenderować znak
AnimatedImageVector
, użyj znakurememberAnimatedVectorResource
zamiastAnimatedImageVector#painterFor
. (I9c300)
- Aby wyrenderować znak
Poprawki błędów
- Dodaj metody toString do klas Animatable i AnimationResult. (Icd3a6)
Aktualizacje zależności
- Teraz zależy od Kotlin
1.6.10
.
Wersja 1.1
Wersja 1.1.1
23 lutego 2022 r.
androidx.compose.animation:animation:1.1.1
, androidx.compose.animation:animation-core:1.1.1
i androidx.compose.animation:animation-graphics:1.1.1
są zwalniane. Wersja 1.1.1 zawiera te zmiany.
Poprawki błędów
- Rozwiązanie problemu
NullPointerException
na stronieandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
(aosp/1947059, b/206677462) - Naprawiliśmy awarię spowodowaną zawartością schowka podczas odczytywania danych ze schowka na urządzeniu z Androidem. (I06020, b/197769306)
- Poprawiono układ od prawej do lewej w
LazyVerticalGrid
(aosp/1931080, b/207510535)
Wersja 1.1.0
9 lutego 2022 r.
androidx.compose.animation:animation:1.1.0
, androidx.compose.animation:animation-core:1.1.0
i androidx.compose.animation:animation-graphics:1.1.0
są zwalniane. Wersja 1.1.0 zawiera te zmiany.
Ważne zmiany od wersji 1.0.0
- Stabilna obsługa efektu przewijania w Androidzie 12
- Ulepszenia rozmiaru obszaru dotyku
- Pamiętaj, że w przypadku Compose 1.0 komponenty Material rozszerzą swój obszar układu, aby spełnić wytyczne dotyczące ułatwień dostępu w interfejsie Material w zakresie rozmiaru docelowego elementu dotykowego. Na przykład docelowy element dotykowy przycisku zostanie powiększony do minimalnego rozmiaru 48x48 dp, nawet jeśli ustawisz mniejszy rozmiar przycisku. Dzięki temu biblioteka Compose Material zachowuje się tak samo jak komponenty Material Design, co zapewnia spójność, jeśli używasz widoków i biblioteki Compose. Ta zmiana zapewnia też, że podczas tworzenia interfejsu za pomocą komponentów Compose Material spełnione zostaną minimalne wymagania dotyczące dostępności docelowych elementów dotykowych.
- Stabilna obsługa kolumny nawigacji
- Przenosi kilka wcześniej eksperymentalnych interfejsów API do wersji stabilnej.
- Obsługa nowszych wersji języka Kotlin
Wersja 1.1.0-rc03
26 stycznia 2022 r.
androidx.compose.animation:animation:1.1.0-rc03
, androidx.compose.animation:animation-core:1.1.0-rc03
i androidx.compose.animation:animation-graphics:1.1.0-rc03
są zwalniane. Wersja 1.1.0-rc03 zawiera te zmiany.
Poprawki błędów
- Zaktualizowano, aby obsługiwać Compose Material w wersji 1.1.0-rc03
Wersja 1.1.0-rc01
15 grudnia 2021 roku
androidx.compose.animation:animation:1.1.0-rc01
i androidx.compose.animation:animation-core:1.1.0-rc01
zostały opublikowane. Wersja 1.1.0-rc01 zawiera te zmiany.
Zmiany w interfejsie API
- Użyj
AnimatedImageVector.animatedVectorResource
zamiastanimatedVectorResource
, aby wczytać plik zasobu<animated-vector>
.- Aby wyrenderować znak
AnimatedImageVector
, użyj znakurememberAnimatedVectorResource
zamiastAnimatedImageVector#painterFor
. (I9c300)
- Aby wyrenderować znak
Wersja 1.1.0-beta04
1 grudnia 2021 r.
androidx.compose.animation:animation:1.1.0-beta04
, androidx.compose.animation:animation-core:1.1.0-beta04
i androidx.compose.animation:animation-graphics:1.1.0-beta04
są zwalniane. Wersja 1.1.0-beta04 zawiera te zmiany.
Nowe funkcje
- Zaktualizowano, aby była zgodna z Kotlinem
1.6.0
Wersja 1.1.0-beta03
17 listopada 2021 r.
androidx.compose.animation:animation:1.1.0-beta03
, androidx.compose.animation:animation-core:1.1.0-beta03
i androidx.compose.animation:animation-graphics:1.1.0-beta03
są zwalniane. Wersja 1.1.0-beta03 zawiera te commity.
Zmiany w interfejsie API
- Dodano nowy modyfikator Modifier.onPlaced, który umożliwia obserwowanie zmiany miejsca docelowego. Dodatkowe zmiany przesunięcia modyfikatora podrzędnego można więc wprowadzać na podstawie zaobserwowanej zmiany miejsca docelowego. (I558fd)
Nowa obsługa parametru contentKey w funkcji Crossfade. Klucz ContentKey będzie używany przez system animacji do sprawdzania równości. Dlatego niestandardowe porównywanie stanów można uzyskać, określając odpowiedni klucz contentKey dla różnych stanów.
ContentKey będzie też używany jako klucz do zapisywania i przywracania treści. (I2e055, b/197907070)
Wersja 1.1.0-beta02
3 listopada 2021 r.
androidx.compose.animation:animation:1.1.0-beta02
, androidx.compose.animation:animation-core:1.1.0-beta02
i androidx.compose.animation:animation-graphics:1.1.0-beta02
są zwalniane. Wersja 1.1.0-beta02 zawiera te zmiany.
Poprawki błędów
- Nowe interfejsy API animacji do obsługi narzędzi. Umożliwiają one narzędziom sprawdzanie animacji i ich konfiguracji w przejściach. (I4116e)
Wersja 1.1.0-beta01
27 października 2021 roku
androidx.compose.animation:animation:1.1.0-beta01
, androidx.compose.animation:animation-core:1.1.0-beta01
i androidx.compose.animation:animation-graphics:1.1.0-beta01
są zwalniane. Wersja 1.1.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Nowe interfejsy API animacji do obsługi narzędzi. Umożliwiają one narzędziom sprawdzanie animacji i ich konfiguracji w przejściach. (I4116e)
Wersja 1.1.0-alpha06
13 października 2021 r.
androidx.compose.animation:animation:1.1.0-alpha06
, androidx.compose.animation:animation-core:1.1.0-alpha06
i androidx.compose.animation:animation-graphics:1.1.0-alpha06
są zwalniane. Wersja 1.1.0-alpha06 zawiera te zmiany.
Wersja 1.1.0-alpha05
29 września 2021 r.
androidx.compose.animation:animation:1.1.0-alpha05
, androidx.compose.animation:animation-core:1.1.0-alpha05
i androidx.compose.animation:animation-graphics:1.1.0-alpha05
są zwalniane. Wersja 1.1.0-alpha05 zawiera te zmiany.
Zmiany w interfejsie API
EnterTransition
,ExitTransition
i niektóre interfejsy APIAnimatedVisibility
zostały udostępnione w wersji stabilnej.MutableTransitionState.isIdle
nie jest już funkcją eksperymentalną. (I5072d)Zmiana powodująca niezgodność: lambdy w fabrykach Enter/ExitTransition zostały przeniesione na ostatnią pozycję na liście parametrów. (I5072d)
Wersja 1.1.0-alpha04
15 września 2021 r.
androidx.compose.animation:animation:1.1.0-alpha04
, androidx.compose.animation:animation-core:1.1.0-alpha04
i androidx.compose.animation:animation-graphics:1.1.0-alpha04
są zwalniane. Wersja 1.1.0-alpha04 zawiera te zmiany.
Wersja 1.1.0-alpha03
1 września 2021 roku
androidx.compose.animation:animation:1.1.0-alpha03
, androidx.compose.animation:animation-core:1.1.0-alpha03
i androidx.compose.animation:animation-graphics:1.1.0-alpha03
są zwalniane. Wersja 1.1.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Zaktualizowano Compose
1.1.0-alpha03
, aby zależał od Kotlin1.5.30
. (I74545)
Wersja 1.1.0-alpha02
18 sierpnia 2021 r.
androidx.compose.animation:animation:1.1.0-alpha02
, androidx.compose.animation:animation-core:1.1.0-alpha02
i androidx.compose.animation:animation-graphics:1.1.0-alpha02
są zwalniane. Wersja 1.1.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- W przypadku animacji repeatable i infiniteRepeatable jest teraz obsługiwany parametr StartOffset, który umożliwia opóźnienie czasu rozpoczęcia lub przyspieszenie animacji przed jej rozpoczęciem. Ten przesunięty początek nie będzie się powtarzać (Ic679f, b/195079908)
- Nowe przejście wejścia/wyjścia dla skali. Można go używać w połączeniu z innymi typami przejść wejścia/wyjścia. (I372da, b/191325593)
Wersja 1.1.0-alpha01
4 sierpnia 2021 r.
androidx.compose.animation:animation:1.1.0-alpha01
, androidx.compose.animation:animation-core:1.1.0-alpha01
i androidx.compose.animation:animation-graphics:1.1.0-alpha01
są zwalniane. Wersja 1.1.0-alpha01 zawiera te zmiany.
Zmiany w interfejsie API
AnimatedImageVector
i powiązane interfejsy API znajdują się teraz w nowym moduleandroidx.compose.animation:animation-graphics
. (I60873)
Poprawki błędów
- Przeniesiono
InfiniteAnimationPolicy
do :compose:ui (I5eb09, b/160602714)
Wersja 1.0
Wersja 1.0.5
3 listopada 2021 r.
androidx.compose.animation:animation:1.0.5
i androidx.compose.animation:animation-core:1.0.5
zostały opublikowane. Wersja 1.0.5 zawiera te zmiany.
Poprawki błędów
- Naprawiliśmy awarię śledzenia instancji derivedStateOf. (aosp/1792247)
Wersja 1.0.4
13 października 2021 r.
androidx.compose.animation:animation:1.0.4
i androidx.compose.animation:animation-core:1.0.4
zostały opublikowane. Wersja 1.0.4 zawiera te zmiany.
Aktualizacje zależności
- Zaktualizowano, aby zależał od Kotlin
1.5.31
Wersja 1.0.3
29 września 2021 r.
androidx.compose.animation:animation:1.0.3
i androidx.compose.animation:animation-core:1.0.3
zostały opublikowane. Wersja 1.0.3 zawiera te zmiany.
Aktualizacje zależności
- Zaktualizowano, aby zależał od Kotlin
1.5.30
Wersja 1.0.2
1 września 2021 roku
androidx.compose.animation:animation:1.0.2
i androidx.compose.animation:animation-core:1.0.2
zostały opublikowane. Wersja 1.0.2 zawiera te zmiany.
Zaktualizowano, aby obsługiwać wersję 1.0.2
Compose. Compose 1.0.2
jest nadal zgodny z Kotlinem 1.5.21
.
Wersja 1.0.1
4 sierpnia 2021 r.
androidx.compose.animation:animation:1.0.1
i androidx.compose.animation:animation-core:1.0.1
zostały opublikowane. Wersja 1.0.1 zawiera te zmiany.
Aktualizacje zależności
- Zaktualizowano, aby zależał od Kotlina w wersji
1.5.21
.
Wersja 1.0.0
28 lipca 2021 roku
androidx.compose.animation:animation:1.0.0
i androidx.compose.animation:animation-core:1.0.0
zostały opublikowane. Wersja 1.0.0 zawiera te zmiany.
Główne funkcje wersji 1.0.0
To pierwsza stabilna wersja Compose. Więcej informacji znajdziesz na oficjalnym blogu o wersji Compose.
Znane problemy
Jeśli używasz Androida Studio Bumblebee Canary 4 lub AGP
7.1.0-alpha04
/7.1.0-alpha05
, może wystąpić ten błąd:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Aby to naprawić, tymczasowo zwiększ wartość minSdkVersion do 24 lub więcej w pliku
build.gradle
. Ten problem zostanie rozwiązany w kolejnej wersji Androida Studio Bumblebee i AGP7.1
. (b/194289155)
Wersja 1.0.0-rc02
14 lipca 2021 roku
androidx.compose.animation:animation:1.0.0-rc02
i androidx.compose.animation:animation-core:1.0.0-rc02
zostały opublikowane. Wersja 1.0.0-rc02 zawiera te zmiany.
Wersja 1.0.0-rc01
1 lipca 2021 r.
androidx.compose.animation:animation:1.0.0-rc01
i androidx.compose.animation:animation-core:1.0.0-rc01
zostały opublikowane. Wersja 1.0.0-rc01 zawiera te zmiany.
Poprawki błędów
- Przeniesiono
InfiniteAnimationPolicy
doandroidx.compose.ui:ui
(I5eb09, b/160602714)
Wersja 1.0.0-beta09
16 czerwca 2021 r.
androidx.compose.animation:animation:1.0.0-beta09
i androidx.compose.animation:animation-core:1.0.0-beta09
zostały opublikowane. Wersja 1.0.0-beta09 zawiera te zmiany.
Zmiany w interfejsie API
- Nowa funkcja kompozycyjna
AnimatedContent
. Zarządza zmianami treści za pomocą konfigurowalnychContentTransform
, gdy pojawiają się nowe treści docelowe, a początkowe treści są usuwane. Różne kombinacje przejść wejścia i wyjścia mogą służyć do uzyskania dostosowanego wyglądu i wrażenia. W ramach przekształcania treściAnimatedContent
automatycznie animuje swój rozmiar, aby dopasować go do przychodzących treści. (I2c3df) - Użytkownik
ManualFrameClock
został usunięty. Jeśli chcesz sterować animacjami, użyjcomposeTestRule.mainClock
. (I3c3e8, b/189951065)
Dodano reguły profilu
W tej wersji dodaliśmy reguły profilu do tych modułów kompozycji (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Czym są reguły profilu?
Reguły profilu dla biblioteki są określone w pliku tekstowym
baseline-prof.txt
znajdującym się w katalogusrc/main
lub w odpowiednim katalogu. Plik zawiera regułę w każdym wierszu. Reguła jest w tym przypadku wzorcem dopasowywanym do metod lub klas w bibliotece. Składnia tych reguł jest nadzbiorem formatu profilu ART czytelnego dla człowieka, który jest używany podczas korzystania zadb shell profman --dump-classes-and-methods ...
. Reguły te przyjmują jedną z 2 form, aby kierować reklamy na metody lub klasy.Reguła metody będzie mieć ten wzorzec:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Reguła klasy będzie miała następujący wzorzec:
<CLASS_DESCRIPTOR>
W tym przypadku
<FLAGS>
to co najmniej jeden z tych znaków:H
,S
iP
. Wskazuje on, czy ta metoda powinna być oznaczona jako „Hot”, „Startup” lub „Post Startup”.<CLASS_DESCRIPTOR>
to deskryptor klasy, do której należy kierowana metoda. Na przykład klasaandroidx.compose.runtime.SlotTable
będzie miała deskryptorLandroidx/compose/runtime/SlotTable;
.Symbol
<METHOD_SIGNATURE>
to sygnatura metody, która zawiera jej nazwę, typy parametrów i typy zwracanych wartości. Na przykład metodafun isPlaced(): Boolean
wLayoutNode
ma sygnaturęisPlaced()Z
.Wzorce mogą zawierać symbole wieloznaczne (
**
,*
i?
), dzięki czemu jedna reguła może obejmować wiele metod lub klas.
Do czego służą reguły?
Metoda oznaczona flagą
H
jest metodą „gorącą” i powinna być skompilowana z wyprzedzeniem.Metoda z flagą
S
wskazuje, że jest to metoda wywoływana podczas uruchamiania i powinna być skompilowana z wyprzedzeniem, aby uniknąć kosztów kompilacji i interpretacji metody podczas uruchamiania.Metoda oznaczona flagą
P
jest wywoływana po uruchomieniu.Klasa obecna w tym pliku wskazuje, że jest używana podczas uruchamiania i powinna być wstępnie przydzielona w stercie, aby uniknąć kosztów ładowania klasy.
Jak to działa?
- Biblioteki mogą definiować te reguły, które będą pakowane w artefakty AAR. Gdy aplikacja zawierająca te artefakty zostanie skompilowana, reguły zostaną połączone, a następnie użyte do utworzenia kompaktowego binarnego profilu ART, który jest specyficzny dla aplikacji. ART może następnie wykorzystać ten profil podczas instalowania aplikacji na urządzeniach, aby skompilować z wyprzedzeniem określony podzbiór aplikacji i zwiększyć jej wydajność, zwłaszcza podczas pierwszego uruchomienia. Nie będzie to miało wpływu na aplikacje, które można debugować.
Wersja 1.0.0-beta08
2 czerwca 2021 r.
androidx.compose.animation:animation:1.0.0-beta08
i androidx.compose.animation:animation-core:1.0.0-beta08
zostały opublikowane. Wersja 1.0.0-beta08 zawiera te zmiany.
Poprawki błędów
- Teraz
detectDragGesures
,detectVerticalGestures
idetectHorizontalGestures
będą automatycznie wykorzystywać zmianę pozycji, więc nie musisz wywoływać funkcji change.consumePositionChange w wywołaniach zwrotnych onDrag (I42fc4, b/185096350, b/187320697). Modifier.onGloballyPositioned()
została zmieniona tak, aby raportować współrzędne tego modyfikatora w łańcuchu modyfikatorów, a nie współrzędne układu po zastosowaniu wszystkich modyfikatorów. Oznacza to, że kolejność modyfikatorów wpływa teraz na to, jakie współrzędne będą raportowane. (Ieb67d, b/177926591)
Wersja 1.0.0-beta07
18 maja 2021 r.
androidx.compose.animation:animation:1.0.0-beta07
i androidx.compose.animation:animation-core:1.0.0-beta07
zostały opublikowane. Wersja 1.0.0-beta07 zawiera te zmiany.
Zmiany w interfejsie API
- Nowy interfejs API
AnimatedVisibility
, który umożliwia określanie widoczności wMutableTransitionState
. Umożliwia to również obserwowanie stanów animacji pozaAnimatedVisibility
za pomocącurrentState
iisIdle
.- Nowe wsparcie w zakresie przejścia na konto dziecka w programie przejścia
- Obsługa niestandardowej animacji przejścia wyjścia/wejścia w komponencie AnimatedVisibility za pomocą AnimationScope.transition
- Nowy modyfikator animateEnterExit dostępny dla wszystkich elementów podrzędnych AnimatedVisibility
- Wycofano interfejsy AnimatedVisibility API, które przyjmują parametr
initiallyVisible
(I702f3).
Wersja 1.0.0-beta06
5 maja 2021 roku
androidx.compose.animation:animation:1.0.0-beta06
i androidx.compose.animation:animation-core:1.0.0-beta06
zostały opublikowane. Wersja 1.0.0-beta06 zawiera te zmiany.
Wersja 1.0.0-beta05
21 kwietnia 2021 r.
androidx.compose.animation:animation:1.0.0-beta05
i androidx.compose.animation:animation-core:1.0.0-beta05
zostały opublikowane. Wersja 1.0.0-beta05 zawiera te zmiany.
Poprawki błędów
- Pliki AndroidManifest z ui-test-manifest i ui-tooling-data są teraz zgodne z Androidem 12 (I6f9de, b/184718994).
Wersja 1.0.0-beta04
7 kwietnia 2021 r.
androidx.compose.animation:animation:1.0.0-beta04
i androidx.compose.animation:animation-core:1.0.0-beta04
zostały opublikowane. Wersja 1.0.0-beta04 zawiera te zmiany.
Zmiany w interfejsie API
- Usunęliśmy publiczne instancje
RowScope
,ColumnScope
,BoxScope
iBoxWithConstraintsScope
. (I4e83e, b/181869067)
Wersja 1.0.0-beta03
24 marca 2021 r.
androidx.compose.animation:animation:1.0.0-beta03
i androidx.compose.animation:animation-core:1.0.0-beta03
zostały opublikowane. Wersja 1.0.0-beta03 zawiera te zmiany.
Wersja 1.0.0-beta02
10 marca 2021 r.
androidx.compose.animation:animation:1.0.0-beta02
i androidx.compose.animation:animation-core:1.0.0-beta02
zostały opublikowane. Wersja 1.0.0-beta02 zawiera te zmiany.
Poprawki błędów
- Wymuszanie ograniczeń dotyczących publicznego korzystania z eksperymentalnych interfejsów API (I6aa29, b/174531520)
Wersja 1.0.0-beta01
24 lutego 2021 r.
androidx.compose.animation:animation:1.0.0-beta01
i androidx.compose.animation:animation-core:1.0.0-beta01
zostały opublikowane. Wersja 1.0.0-beta01 zawiera te zmiany.
To pierwsza wersja Compose 1.0.0 w wersji beta.
Zmiany w interfejsie API
InteractionState
zostało zastąpione przez[Mutable]InteractionSource
- Interfejsy odpowiadają za emitowanie i zbieranie zdarzeń interakcji.
- Zamiast przekazywać wartość
interactionState = remember { InteractionState() }
do komponentów takich jakButton
iModifier.clickable()
, użyj wartościinteractionSource = remember { MutableInteractionSource() }
. - Zamiast:
Interaction.Pressed in interactionState
używaj funkcji rozszerzających w klasie InteractionSource, np. InteractionSource.collectIsPressedAsState(). - W przypadku złożonych przypadków użycia możesz użyć InteractionSource.interactions, aby obserwować strumień interakcji. Więcej informacji znajdziesz w dokumentacji i przykładach dotyczących InteractionSource.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Pakiety metod smoothScrollBy i scrollBy zmieniono na
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473) - Zmieniliśmy nazwy modyfikatorów rozmiaru. Zmieniono nazwy modyfikatorów Modifier.width/height/size na requiredWidth/requiredHeight/requiredSize. Zmieniono nazwy modyfikatorów Modifier.preferredWidth/preferredHeight/preferredSize na width/height/size. (I5b414)
- Orientacja została przeniesiona do pakietu podstawowego. VelocityTracker został przeniesiony z ui.gesture do ui.input.pointer. (Iff4a8, b/175294473)
- Klasy AnimationClockObservable i ich podklasy zostały usunięte. Klasa AnimatedFloat została usunięta. (Icde52, b/177457083)
- Modifier.draggable akceptuje teraz DraggableState zamiast zwykłej lambdy. Stan możesz utworzyć za pomocą
rememberDraggableState { delta -> }
, aby uzyskać takie samo działanie jak wcześniej (Ica70f, b/175294473). - Usunięto interfejsy API animate, animatedValue i AnimatedValue (If27bc, b/177457083)
- Usunięto AnimationEndReason.Interrupted. Jeśli animacja zostanie przerwana, zostanie zgłoszony wyjątek CancellationException. (I2cbbc, b/179695417)
- Interfejs TargetAnimation API został usunięty. (If47d1, b/177457083)
Wersja 1.0.0-alpha12
10 lutego 2021 r.
androidx.compose.animation:animation:1.0.0-alpha12
i androidx.compose.animation:animation-core:1.0.0-alpha12
zostały opublikowane. Wersja 1.0.0-alpha12 zawiera te zmiany.
Zmiany w interfejsie API
Modifier.pointerInput
wymaga teraz kluczy pamięci, aby wskazywać, kiedy korutyna wykrywania danych wejściowych wskaźnika powinna zostać ponownie uruchomiona w przypadku nowych zależności. (I849cd)- Bounds zmieniono na DpRect (I4b32a)
- Ujednolicono nazwę parametru AnimationSpec na animationSpec w całym systemie animacji. Ogranicz też Enter/ExitTransition, aby akceptował FiniteAnimationSpec. (Ie47c5, b/177457083)
- Funkcje Animatable.snapTo i Animatable.stop są teraz funkcjami zawieszania (If4288).
- Podobnie jak wcześniej usunęliśmy funkcję
state { 0 }
i teraz promujemy używanie funkcjiremember { mutableStateOf(0) }
, usuniemy funkcjęsavedInstanceState { 0 }
. Zamiast tego użyjrememberSaveable { mutableStateOf(0) }
. Będzie on automatycznie zapisywać i przywracać stan, jeśli typ użyty w MutableState można zapisać w obiekcie Bundle. Jeśli wcześniej przekazywano niestandardowy obiekt zapisujący, teraz trzeba użyć nowego przeciążenia funkcji rememberSaveable, które ma parametrstateSaver
. Użycie będzie wyglądać tak:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - Zaktualizowano sygnaturę metody Crossfade, aby była bardziej spójna z pozostałą częścią systemu animacji. (Ib05ed, b/177457083)
- Funkcja rememberSavedInstanceState() została zmieniona na rememberSaveable() i przeniesiona do pakietu androidx.compose.runtime.saveable. (I1366e, b/177338004)
- Klasa RestorableStateHolder została zmieniona na SaveableStateHolder i przeniesiona do pakietu androidx.compose.runtime.saveable. Metoda wewnętrzna RestorableStateProvider została zmieniona na SaveableStateProvider. Typ ogólny został usunięty, więc jako klucz możesz przekazać dowolny typ. Adnotacja eksperymentalna nie jest już potrzebna. (I0902e, b/174598702)
- Zaktualizowano interfejs API Modifier.animateContentSize, aby był zgodny z pozostałą częścią systemu animacji. (I0bf75, b/177457083)
- Właściwość AnimatedValue/Float została wycofana. Zamiast tego użyj Animatable. (I71345, b/177457083)
- Funkcje tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter i pressIndicaitonGestureFilter zostały wycofane. Zamiast tego użyj funkcji Modifier.clickable lub Modifier.pointerInput z funkcją detectTapGestures. (I6baf9, b/175294473)
- Wprowadzono element
InfiniteAnimationPolicy
kontekstu współprogramu, który będzie stosowany w animacjach nieskończonych. Domyślnie nie jest instalowana żadna zasada, z wyjątkiem testów przeprowadzanych w projekcieComposeTestRule
. (I50ec4, b/151940543) - Metody destrukcji i copy() zostały usunięte z kilku klas, w których były rzadko używane. (I26702, b/178659281)
- Czas odtwarzania animacji jest teraz ujednolicony do nanosekund (If776a)
- Artefakt compose:runtime-dispatch został wycofany. Klasa MonotonicFrameClock znajduje się teraz w pakiecie compose:runtime, a klasa AndroidUiDispatcher – w pakiecie compose:ui. (Ib5c36)
- Dodano elementy
Animation.isInfinite
iVectorizedAnimationSpec.isInfinite
, które wskazują, czy animacja jest nieskończona. Można go używać w implementacjach animacji, aby specjalnie je obsługiwać. Można na przykład wyświetlić specjalny komunikat „time remaining” (pozostały czas) lub w trakcie testów anulować animację, aby uniknąć nieokreślonego czasu oczekiwania na bezczynność. (Iebb05, b/151940543) - Używanie typu czasu animacji „Long” zamiast „Uptime” (Ie3aa7, b/177420019)
Wersja 1.0.0-alpha11
28 stycznia 2021 roku
androidx.compose.animation:animation:1.0.0-alpha11
i androidx.compose.animation:animation-core:1.0.0-alpha11
zostały opublikowane. Wersja 1.0.0-alpha11 zawiera te zmiany.
Zmiany w interfejsie API
- Wycofano przejście oparte na TransitionDefinition (I0ac57)
- Dodano pole etykiety dla przejść i animacji podrzędnych, które będą wyświetlane w narzędziach (I619fb).
- Funkcja animateAsState została zmieniona na animateFooAsState, gdzie Foo to typ animowanej zmiennej, np. Float, Dp, Offset itp. (Ie7e25)
- Nowa funkcja InfiniteTransition, która uruchamia dowolną liczbę animacji podrzędnych. (I1da81)
- Zmienia interfejsy parametrów stanowych Material na funkcje @Composable, które zwracają
State<T>
. Dodaje Animatable.asState(), aby ułatwić przekształcanie obiektu Animatable w obiekt State. Zmienia też animateElevation, aby było rozszerzeniem zawieszającym w Animatable. (If613c)
Poprawki błędów
- Funkcje onCommit, onDispose i onActive zostały wycofane na rzecz interfejsów SideEffect i DisposableEffect API (If760e).
- Stan początkowy w funkcji updateTransition jest teraz obsługiwany (Ifd51d).
- Do komponentów Obraz i Ikona dodaliśmy parametr opis treści. Służy do przekazywania opisu usługom ułatwień dostępu (I2ac4c).
- Funkcje invalidate i compositionReference() zostały wycofane na rzecz funkcji currentRecomposeScope i rememberCompositionReference. (I583a8)
- Wartości Duration i Uptime zostaną zastąpione wartościami Long milliseconds, a ten krok usuwa zależność danych wejściowych wskaźnika od tych klas. (Ia33b2, b/175142755, b/177420019)
- elementy klikalne, przełączane i możliwe do zaznaczenia można teraz tworzyć poza kompozycją (I0a130, b/172938345, b/175294473);
- Zmieniono funkcję wygładzania na interfejs funkcyjny (Ib14e5).
- Nowa metoda fabryczna
items(count: Int)
dla zakresu LazyColumn/LazyRow/LazyVerticalGrid.items(items: List)
iitemsIndexed(items: List)
są teraz funkcjami rozszerzającymi, więc musisz je importować ręcznie, gdy są używane. Nowe przeciążenia rozszerzeń dla tablic: items(items: Array) i itemsIndexed(Array) (I803fc, b/175562574) - Używanie TestCoroutineDispatcher w testach (I532b6)
- Usunięto PointerInputData i zmodyfikowano PointerInputChange, aby zawierał wszystkie pola PointerInputData. Uczyniono klasy PointerInputEvent i PointerInputEventData wewnętrznymi, ponieważ nie są używane w żadnym publicznym interfejsie API. (Ifff97, b/175142755)
Wersja 1.0.0-alpha10
13 stycznia 2021 r.
androidx.compose.animation:animation:1.0.0-alpha10
i androidx.compose.animation:animation-core:1.0.0-alpha10
zostały opublikowane. Wersja 1.0.0-alpha10 zawiera te zmiany.
Zmiany w interfejsie API
- Zmodyfikowano Velocity, aby zawierał części składowe i operacje matematyczne. (Ib0447)
- Zmieniono nazwę
@ExperimentalTesting
na@ExperimentalTestApi
, aby była zgodna z podobnymi adnotacjami interfejsu API w wersji eksperymentalnej (Ia4502, b/171464963). - Zmiana nazwy pozycji na DpOffset i usunięcie funkcji getDistance() (Ib2dfd)
- Usunięto publiczny interfejs Any.identityHashCode() (I025d7)
Poprawki błędów
- Nowy interfejs API oparty na korutynach
Animatable
, który zapewnia wzajemną wyłączność animacji. Nowy interfejs DecayAnimationSpec do obsługi wielowymiarowej animacji zanikania (I820f2, b/168014930) animate()
zastępuje terazanimateAsState()
, która zwracaState<T>
zamiastT
. Zapewnia to lepszą wydajność, ponieważ zakres unieważnienia można zawęzić do miejsca, w którym odczytywana jest wartość State. (Ib179e)
Wersja 1.0.0-alpha09
16 grudnia 2020 roku
androidx.compose.animation:animation:1.0.0-alpha09
i androidx.compose.animation:animation-core:1.0.0-alpha09
zostały opublikowane. Wersja 1.0.0-alpha09 zawiera te zmiany.
Zmiany w interfejsie API
- Przeniesiono Dp.VectorConverter, Position.VectorConverter itp. do pakietu animation-core i wycofano stare konwertery wektorów (If0c4b).
- Wprowadziliśmy zupełnie nowy zestaw interfejsów API przejść, które są łatwiejsze w użyciu i obsługują animacje dodawane dynamicznie oraz dynamicznie obliczane cele animacji. Te interfejsy API są oznaczone jako eksperymentalne, aby łatwo odróżnić je od interfejsu API opartego na TransitionDefinition. (Ia7fe3)
Poprawki błędów
- Funkcje lambda w modyfikatorach przesunięcia zwracają teraz IntOffset zamiast Float. (Ic9ee5, b/174137212, b/174146755)
- Wycofanie funkcji LazyColumnFor, LazyRowFor, LazyColumnForIndexed i LazyRowForIndexed. Zamiast tego używaj komponentów LazyColumn i LazyRow (I5b48c).
- W przypadku interfejsów API zawieszających dane wejściowe wskaźnika zmieniono nazwy funkcji HandlePointerInputScope na AwaitPointerEventScope i handlePointerInput() na awaitPointerEventScope(). (Idf0a1, b/175142755)
- Nowa funkcja infiniteRepeatable do tworzenia elementu InfiniteRepeatableSpec (I668e5)
- Usunięto adnotację ExperimentalPointerInput (Ia7a24)
Wersja 1.0.0-alpha08
2 grudnia 2020 r.
androidx.compose.animation:animation:1.0.0-alpha08
i androidx.compose.animation:animation-core:1.0.0-alpha08
zostały opublikowane. Wersja 1.0.0-alpha08 zawiera te zmiany.
Zmiany w interfejsie API
- Dodano sprawdzanie składni nazw i pozycji parametrów funkcji lambda, aby zapewnić zgodność ze wskazówkami dotyczącymi Compose.
Zgodnie z kontrolą składni i wskazówkami zmieniliśmy też nazwy niektórych interfejsów API, które używały
children
jako nazwy funkcji lambda na końcu, nacontent
. (Iec48e) - Usunięto wycofane wcześniej interfejsy API:
Modifier.onPositioned
zostało usunięte. UżyjModifier.onGloballyPositioned
.Modifier.onDraw
zostało usunięte. UżyjModifier.onDrawBehind
.Modifier.plus
zostało usunięte. UżyjModifier.then
.Color.Unset
zostało usunięte. UżyjColor.Unspecified
.- Klasa
PxBounds
została usunięta. Zamiast niej używaj klasyRect
. - (Ie9d02, b/172562222)
- Tymczasowo dodano opcję, która umożliwia sterowanie zegarem TestAnimationClock za pomocą zegara MonotonicFrameClock (I1403b, b/173402197)
Poprawki błędów
- Zmieniono nazwę Modifier.drawLayer na Modifier.graphicsLayer. Zaktualizowano też powiązane klasy do GraphicsLayer zgodnie z opinią rady API. (I0bd29, b/173834241)
- Dodano interfejsy API Modifier.scale/rotate jako ułatwienia dla drawLayer.
- Zmiana nazwy Modifier.drawOpacity na Modifier.alpha
- Zmiana nazwy Modifier.drawShadow na Modifier.shadow (I264ca, b/173208140)
- Pola uptime i position w klasie PointerInputData nie mogą mieć wartości null. (Id468a)
- Modyfikatory offsetPx zostały zmienione na offset. Przyjmują teraz parametry lambda zamiast stanu. (Ic3021, b/173594846)
- Nowe interfejsy API do uruchamiania animacji w korutynach (Ied662)
- Wycofaliśmy właściwości Ambients, których nazwy miały sufiks
Ambient
, i zastąpiliśmy je nowymi właściwościami z prefiksem Ambient, zgodnie z innymi właściwościami Ambients i wytycznymi interfejsu Compose API. (I33440) - Kontrola czasu w testach (TestAnimationClock i jego zastosowania) jest obecnie eksperymentalna (I6ef86, b/171378521).
- Usuwanie starego modułu ui-test i jego stubów (I3a7cb)
- Funkcja
RestorableStateHolder.withRestorableState
została zmieniona naRestorableStateProvider
(I66640) - Interfejs wyrównania został zaktualizowany i jest już funkcjonalny. (I46a07, b/172311734)
Wersja 1.0.0-alpha07
11 listopada 2020 roku
androidx.compose.animation:animation:1.0.0-alpha07
i androidx.compose.animation:animation-core:1.0.0-alpha07
zostały opublikowane. Wersja 1.0.0-alpha07 zawiera te zmiany.
Poprawki błędów
- Funkcje AmbientTextStyle, ProvideTextStyle i AmbientContentColor zostały wycofane. Zamiast tego używaj nowych wersji dostępnych w bibliotece Material. W przypadku aplikacji innych niż Material należy utworzyć własny system projektowania z motywami, które można wykorzystać we własnych komponentach. (I74acc, b/172067770)
- foundation.Text został wycofany i zastąpiony przez material.Text. Podstawowy interfejs API tekstu, który nie korzysta z wartości z motywu, znajdziesz w artykule androidx.compose.foundation.BasicText. (If64cb)
- Element MeasureResult został przeniesiony poza element MeasureScope. (Ibf96d, b/171184002)
- Kilka symboli związanych z układem zostało przeniesionych z pakietu androidx.compose.ui do pakietu androidx.compose.layout.ui. (I0fa98, b/170475424)
Wersja 1.0.0-alpha06
28 października 2020 r.
androidx.compose.animation:animation:1.0.0-alpha06
i androidx.compose.animation:animation-core:1.0.0-alpha06
zostały opublikowane. Wersja 1.0.0-alpha06 zawiera te zmiany.
Zmiany w interfejsie API
- Włącz przejścia w ComposeTestRule; usuń opcję włączania migającego kursora z ComposeTestRule. (If0de3)
Wersja 1.0.0-alpha05
14 października 2020 r.
androidx.compose.animation:animation:1.0.0-alpha05
i androidx.compose.animation:animation-core:1.0.0-alpha05
zostały opublikowane. Wersja 1.0.0-alpha05 zawiera te zmiany.
Zmiany w interfejsie API
- Nowy interfejs Animation i jego podklasy: te klasy przechowują warunki początkowe i końcowe animacji, a tym samym umożliwiają sprawdzanie wartości i prędkości tylko na podstawie czasu odtwarzania (Ie95bd, b/163329867).
Poprawki błędów
- Interfejs OnPositionedModifier został zmieniony na OnGloballyPositionedModifier, a funkcja onPositioned() na onGloballyPositioned(). (I587e8, b/169083903)
Wycofuje interfejsy contentColor() i currentTextStyle() i zastępuje je odpowiednio AmbientContentColor i AmbientTextStyle. Aktualną wartość możesz uzyskać, używając
.current
w przypadku właściwości otoczenia, tak jak w przypadku każdego innego otoczenia. Ta zmiana została wprowadzona w celu zapewnienia spójności i uniknięcia sytuacji, w której to samo zadanie można wykonać na kilka sposobów. Dodatkowo zmieniliśmy nazwy niektórych właściwości otoczenia, aby lepiej opisywały ich przeznaczenie:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Wersja 1.0.0-alpha04
1 października 2020 roku
androidx.compose.animation:animation:1.0.0-alpha04
i androidx.compose.animation:animation-core:1.0.0-alpha04
zostały opublikowane. Wersja 1.0.0-alpha04 zawiera te zmiany.
Zmiany w interfejsie API
- Oznaczanie adnotacjami rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled i textInputServiceFactory za pomocą @VisibleForTesting, przekształcanie ich w wewnętrzne interfejsy API i ukrywanie ich dokumentacji w formacie KDoc (I554eb, b/168308412)
Poprawki błędów
- Zaktualizowano wiele interfejsów API grafiki
- Zaktualizowano interfejsy API przekształceń skali i rotacji, aby używały jednego parametru Offset do reprezentowania współrzędnych punktu obrotu zamiast oddzielnych parametrów zmiennoprzecinkowych dla współrzędnych x/y w DrawScope i DrawTransform.
- Usunięto metody Rect.expandToInclude i Rect.join
- Zaktualizowano dokumentację dotyczącą promienia, aby uwzględnić kształt owalny oprócz eliptycznego.
- Dodano dokumentację, aby wskazać, że publiczny konstruktor wbudowanej klasy Radius nie powinien być wywoływany bezpośrednio, ale obiekty Radius powinny być tworzone za pomocą konstruktorów funkcji.
- Usunięto interfejsy API RoundRect do wysyłania zapytań o wartości topRight, bottomRight, bottomCenter itp.
- Wycofanie Rect.shift na rzecz Rect.translate
- Usunięto interfejsy API RoundRect.grow i Rect.shrink
- Zmiana nazwy RoundRect.outerRect na Rect.boundingRect
- Usunięto metody RoundRect.middleRect/tallMiddleRect/wideMiddleRect i Rect.isStadium
- Zmiana nazwy RoundRect.longestSide na RoundRect.maxDimension
- Zmiana nazwy RoundRect.shortestSide na RoundRect.minDimension
- Zmiana RoundRect.center na właściwość zamiast funkcji
- Zaktualizowano konstruktor RoundRect, aby korzystał z właściwości Radius zamiast z poszczególnych parametrów wartości promienia x/y.
- Usunięto interfejsy API rozmiaru, które zakładały, że jest to prostokąt o początku w punkcie 0,0
- Dodano do Radius interfejs API niszczenia
- Przeniesiono różne funkcje rozszerzenia RoundRect, aby były właściwościami.
- (I8f5c7, b/168762961)
- Komponent foundation.Box został wycofany. Zamiast tego użyj foundation.layout.Box. (Ie5950, b/167680279)
- Grupa została zmieniona na Box. Dotychczasowy komponent Box zostanie wycofany na rzecz nowego komponentu Box w pakiecie compose.foundation.layout. Nowy komponent Box układa elementy podrzędne jeden na drugim, gdy ma ich kilka. Różni się to od poprzedniego komponentu Box, który działał podobnie do komponentu Column. (I94893, b/167680279)
- Parametry dekoracji pola zostały wycofane. Jeśli chcesz dodać dekoracje lub dopełnienie do elementu Box, użyj zamiast tego modyfikatorów (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279).
- Zapobiegliśmy statycznemu importowaniu treści z zakresów układu (np. alignWithSiblings w RowScope). Zamiast tego użyj alternatywnego zakresu:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Wersja 1.0.0-alpha03
16 września 2020 roku
androidx.compose.animation:animation:1.0.0-alpha03
i androidx.compose.animation:animation-core:1.0.0-alpha03
zostały opublikowane. Wersja 1.0.0-alpha03 zawiera te zmiany.
Poprawki błędów
- W interfejsach API układu nazwy związane z grawitacją zostały zmienione na align lub alignment. (I2421a, b/164077038)
Wersja 1.0.0-alpha02
2 września 2020 r.
androidx.compose.animation:animation:1.0.0-alpha02
i androidx.compose.animation:animation-core:1.0.0-alpha02
zostały opublikowane. Wersja 1.0.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
Dodano
ManualFrameClock.hasAwaiters
, aby sprawdzić, czy zegar oczekuje na klatkę;runWithManualClock
jako zamiennikrunBlocking
podczas przeprowadzania testów, które wymagają zegara ManualFrameClock;TestUiDispatcher.Main
, który zapewnia łatwy dostęp do głównego dyspozytora interfejsu w testach.Na przykład:
@Test fun myTest() = runWithManualClock { clock -> // set some compose content withContext(TestUiDispatcher.Main) { clock.advanceClock(1000L) } if (clock.hasAwaiters) { println("The clock has awaiters") } else { println("The clock has no more awaiters") } }
Poprawki błędów
Funkcja onPreCommit została wycofana. Funkcja onCommit ma teraz działanie funkcji onPreCommit.
Funkcje onCommit i onActive są teraz wykonywane w tej samej klatce choreografa, w której wprowadzane są zmiany w kompozycji, a nie na początku następnej klatki choreografa. (I70403)
Wersja 1.0.0-alpha01
26 sierpnia 2020 r.
androidx.compose.animation:animation:1.0.0-alpha01
i androidx.compose.animation:animation-core:1.0.0-alpha01
zostały opublikowane. Wersja 1.0.0-alpha01 zawiera te zmiany.
Wersja 0.1.0-dev
Wersja 0.1.0-dev17
19 sierpnia 2020 r.
androidx.compose.animation:animation:0.1.0-dev17
i androidx.compose.animation:animation-core:0.1.0-dev17
zostały opublikowane. Wersja 0.1.0-dev17 zawiera te zmiany.
Nowe funkcje
Zmiany w interfejsie API
- Przesunięcie stało się klasą wbudowaną (Iaec70)
- IntOffset jest teraz klasą wbudowaną (Iac0bf)
- IntSize jest teraz klasą wbudowaną (I2bf42).
Funkcja kompozycyjna AnimatedVisibility animuje pojawianie się i znikanie treści podrzędnych.
Wprowadzono EnterTransition i ExitTransition, które współpracują z komponentem AnimatedVisibility, aby zapewnić 3 różne typy animacji pojawiania się i znikania: zanikanie, przesuwanie oraz rozwijanie i zwijanie treści. Różne typy animacji można łączyć, aby uzyskać bardziej spersonalizowany wygląd. (Idda11)
Wycofano PxBounds na rzecz Rect. Zaktualizowano wszystkie użycia PxBounds za pomocą funkcji rect i dodano odpowiednie adnotacje dotyczące wycofania/zastąpienia, aby ułatwić migrację. (I37038, b/162627058)
Poprawki błędów
- Nazwa
PlacementScope.placeAbsolute()
została zmieniona naPlacementScope.place()
, a poprzednia nazwaPlacementScope.place()
została zmieniona naPlacementScope.placeRelative()
. W konsekwencji metodaPlacementScope.place()
nie będzie już automatycznie odzwierciedlać pozycji w kontekstach pisanych od prawej do lewej. Jeśli chcesz to zrobić, użyj zasadyPlacementScope.placeRelative()
. (I873ac, b/162916675) - Funkcja
state { ... }
została wycofana na rzecz jawnych wywołań funkcjiremember { mutableStateOf(...) }
, aby zwiększyć przejrzystość. Zmniejsza to ogólną powierzchnię interfejsu API i liczbę koncepcji zarządzania stanem oraz pasuje do wzorcaby mutableStateOf()
delegowania właściwości klasy. (Ia5727)
Wersja 0.1.0-dev16
5 sierpnia 2020 r.
androidx.compose.animation:animation:0.1.0-dev16
i androidx.compose.animation:animation-core:0.1.0-dev16
zostały opublikowane. Wersja 0.1.0-dev16 zawiera te zmiany.
Zmiany w interfejsie API
- Wbudowane konwertery wektorowe do konwertowania wbudowanych jednostek są teraz dostępne za pomocą
Foo.VectorConverter
. np.Dp.VectorConverter
,Color.VectorConverter
,Float.VectorConverter
itp. (I3e273) - Dodanie do
Modifier.animateContentSize()
obsługi odbiornika zdarzenia zakończenia, tak aby po zakończeniu animacji zmiany rozmiaru odbiornik otrzymał powiadomienie wraz z rozmiarem początkowym i końcowym animacji. (I277b2) - Nowy modyfikator animateContentSize, który animuje zmianę rozmiaru układu modyfikatora podrzędnego (Ieffdc).
Dodano
MonotonicFrameAnimationClock
, które umożliwia używanie elementu MonotonicFrameClock jakoAnimationClockObservable
, aby wypełnić lukę między nowymi zegarami opartymi na korutynach a interfejsami API, które nadal używają starych zegarów opartych na wywołaniach zwrotnych.MonotonicFrameClock
odpowiednikManualAnimationClock
wynosi terazManualFrameClock
. (I111c7, b/161247083)
Poprawki błędów
- Zaktualizowaliśmy interfejsy API obsługujące pisanie od prawej do lewej. Dodano LayoutDirectionAmbient, którego można używać do odczytywania i zmieniania kierunku układu. Usunięto Modifier.rtl i Modifier.ltr. (I080b3)
- Wymagaj jawnego określenia typu T w przypadku transitionDefinition. (I1aded)
- Pakiet foundation.shape.corner został spłaszczony do foundation.share (I46491, b/161887429).
- Funkcja Modifier.plus została wycofana. Zamiast niej używaj funkcji Modifier.then. Słowo „wtedy” silniej sygnalizuje kolejność, a także uniemożliwia wpisanie znaku
Modifier.padding().background() + anotherModifier
, który przerywa ciąg i utrudnia czytanie (Iedd58, b/161529964). - Funkcja Modifier.drawBackground została zmieniona na Modifier.background (I13677)
Wersja 0.1.0-dev15
22 lipca 2020 r.
androidx.compose.animation:animation:0.1.0-dev15
i androidx.compose.animation:animation-core:0.1.0-dev15
zostały opublikowane. Wersja 0.1.0-dev15 zawiera te zmiany.
Aktualizacja zależności
- Aby używać wersji
0.1.0-dev15
biblioteki Compose, musisz zaktualizować zależności zgodnie z nowymi fragmentami kodu pokazanymi powyżej w sekcji Deklarowanie zależności.
Zmiany w interfejsie API
- Interfejs Transition API został zmieniony tak, aby zwracał wartość TransitionState zamiast przekazywać ją do elementów podrzędnych. Dzięki temu interfejs API jest bardziej spójny z interfejsami API animate(). (I24e38)
- Dodano parametr modyfikatora dla przenikania (I87cfe, b/159706180)
- W interfejsach API najwyższego poziomu używaj AnimationSpec zamiast AnimationBuilder, aby wyjaśnić pojęcie statycznej specyfikacji animacji.
- Ulepsz język DSL przejścia, usuwając wymaganie lambdy w przypadku tworzenia obiektów AnimationSpec, takich jak tween czy spring. Zamiast tego przyjmują one bezpośrednio parametry konstruktora.
- Zwiększenie ogólnej łatwości użycia AnimationSpec poprzez udostępnienie konstruktorów zamiast polegania na konstruktorach.
- Zmień czas trwania i opóźnienie w przypadku klatek kluczowych i animacji Tween na Int. Eliminuje to niepotrzebne rzutowanie typów i przeciążanie metod (w celu obsługi zarówno typu Long, jak i Int). (Ica0b4)
- Zastąpiono użycie IntPx przez Int. Zastąpiono IntPxPosition przez IntOffset. Zastąpiono IntPxSize wartością IntSize. (Ib7b44)
- Aby zmniejszyć liczbę klas używanych do reprezentowania informacji o rozmiarach, ujednolić użycie klasy Size zamiast PxSize. Dzięki temu możesz korzystać z zalet klasy wbudowanej, aby używać typu long do pakowania 2 wartości zmiennoprzecinkowych reprezentujących szerokość i wysokość. (Ic0191)
- Aby zmniejszyć liczbę klas używanych do reprezentowania informacji o pozycjonowaniu, ujednolić użycie klasy Offset zamiast klasy PxPosition. Dzięki temu można korzystać z zalet klasy wbudowanej, aby używać typu long do pakowania 2 wartości zmiennoprzecinkowych reprezentujących przesunięcia x i y w postaci liczb zmiennoprzecinkowych. (I3ad98)
- W ramach dużego refaktoryzacji zastąpiono użycie klasy Px w różnych klasach kompozycji, aby w przypadku parametrów pikseli używać tylko typów Dp i pierwotnych (I086f4).
- Dodano obsługę funkcji animate() dla typów Dp, Px, Size, Position, Bounds, PxPosition, PxSize, PxBounds, IntPx, IntPxSize, IntPxPosition, IntPxBounds i AnimationVector (Ib7518).
- Funkcja Crossfade akceptuje teraz opcjonalny parametr AnimationBuilder, który umożliwia konfigurowanie animacji (I6d6e0).
- Zastąpiono wszystkie użycia wartości Color, które mogą przyjmować wartość null, w interfejsie API wartościami, które nie mogą przyjmować wartości null, i zamiast wartości null użyto wartości Color.Unset (Iabaa7).
- Usunięto klasę ValueHolder. Zmieniliśmy strukturę klas AnimatedValue i AnimatedFloat, aby pole wartości animacji było abstrakcyjne, dzięki czemu podklasy mogą obserwować aktualizację wartości.
- Dodano klasy modeli dla AnimatedValue, AnimatedFloat itp.
- Dodaliśmy nowy zestaw lekkich interfejsów API @Composable do animowania przejść między wartościami. (I79530)
- Zmiany powodujące niezgodność w interfejsie API ambients. Szczegółowe informacje znajdziesz w dzienniku i
Ambient<T>
dokumentacji (I4c7ee, b/143769776). - Nowy tryb powtarzania: od tyłu. W tym trybie poprzednia iteracja jest odwracana, gdy animacja powtarza się w przypadku RepeatableSpec lub VectorizedRepeatableSpec. (Ibe0f5)
- Dodatki do interfejsu ManualAnimationClock API:
hasObservers: Boolean
i parametr konstruktoradispatchOnSubscribe: Boolean
(Iaa134) - Dodano interfejsy API do pobierania minimalnych i maksymalnych wartości w AnimatedFloat (Icd9cc).
Poprawki błędów
- Nazwa została zmieniona na
runOnIdle
(I83607)runOnIdleCompose
- Zmieniliśmy nazwy kilku interfejsów API do testowania, aby były bardziej intuicyjne. Wszystkie interfejsy API findXYZ zostały zmienione na onNodeXYZ. Wszystkie interfejsy API doXYZ zostały zmienione na performXYZ. (I7f164)
- Wprowadzono interfejsy API animacji bezstanowej niskiego poziomu. Te interfejsy API (I63bf7)
- Funkcja kompozycyjna Recompose nie jest już przydatną abstrakcją. Większość ponownego komponowania powinna następować w wyniku przypisań MutableState. W innych przypadkach zalecamy użycie funkcji
invalidate
, aby wywołać ponowne skomponowanie bieżącego zakresu. (Ifc992) - W ramach dużych zmian w kodzie zastąpiono użycie klasy Px w różnych klasach Compose, aby w przypadku parametrów pikseli korzystać tylko z jednostek Dp i typów prostych. Usunięto w całości klasę Px (I3ff33)
- W ramach dużego refaktoryzacji zastąpiono użycie klasy Px w różnych klasach kompozycji, aby w przypadku parametrów pikseli używać tylko typów Dp i pierwotnych (Id3434).
- Funkcja Crossfade może teraz działać z wartością null jako wartością początkową (Iad6a4, b/155947711).
- Zastąpiono użycie klasy Px w różnych klasach Compose w ramach dużego refaktoryzowania, aby w przypadku parametrów pikseli używać tylko typów Dp i pierwotnych (I19d02).
- Ujednolicone implementacje CanvasScope, dzięki czemu są teraz tylko DrawScope i ContentDrawScope. Zmieniono nazwę CanvasScope na DrawScope. Zaktualizowano DrawScope, aby zaimplementować interfejs Density i udostępnić LayoutDirection. Usunięto podklasę DrawScope w ContentDrawScope. Zaktualizowano Painter i PainterModifier, aby nie utrzymywały już same właściwości RTL, ponieważ DrawScope już je udostępnia bez ręcznego podawania (I1798e).
- Zaktualizowano interfejsy API Compose wyższego poziomu, które udostępniają Canvas, aby zamiast tego udostępniać CanvasScope. Eliminuje to konieczność utrzymywania przez konsumentów własnych obiektów Paint. Użytkownicy, którzy nadal potrzebują dostępu do elementu Canvas, mogą użyć metody drawCanvas, która zapewnia wywołanie zwrotne do wydawania poleceń rysowania za pomocą bazowego elementu Canvas. (I80afd)
- Dodano parametry verticalGravity i horizontalGravity odpowiednio do wiersza i kolumny. (I7dc5a)
- Moduł ui-text został zmieniony na ui-text-core (I57dec)
- Ulepszenie interfejsu DrawModifier API:
- Zmieniono zakres odbiorcy funkcji draw() na ContentDrawScope
- Usunięto wszystkie parametry funkcji draw()
- DrawScope ma taki sam interfejs jak poprzednia wersja CanvasScope.
- ContentDrawScope ma metodę drawContent() (Ibaced, b/152919067)
runOnIdleCompose
irunOnUiThread
są teraz funkcjami globalnymi, a nie metodami w ComposeTestRule. (Icbe8f)- [Mutable]State property delegate operators moved to extensions
to support Kotlin 1.4 property delegate optimizations. Aby nadal korzystać z funkcji
by state { ... }
lubby mutableStateOf(...)
, wywołujący muszą dodać importy. (I5312c) - Komponent ColoredRect został wycofany. Zamiast niej używaj zasady
Box(Modifier.preferredSize(width, height).drawBackground(color))
. (I499fa, b/152753731) - Zastąpienie operatora „Modyfikator plus” funkcjami rozszerzenia fabrycznego (I225e4)
- Wycofany komponent kompozycyjny Center. Należy go zastąpić modyfikatorem LayoutSize.Fill + LayoutAlign.Center lub jednym z kompozycji Box lub Stack z odpowiednimi modyfikatorami (Idf5e0).
- Zmieniono nazwę LayoutFlexible na LayoutWeight. Zmieniono nazwę parametru „tight” na „fill”. (If4738)
- Funkcja kompozycyjna Opacity została zastąpiona modyfikatorem drawOpacity. (I5fb62)
- Testy korzystające z AndroidComposeTestRule udostępniają teraz zegar animacji u podstaw kompozycji, który można wstrzymywać, wznawiać i ręcznie przesuwać do przodu. (Id54c5)
- Obsługa kierunku od prawej do lewej w modyfikatorze LayoutPadding (I9e8da)
- Połączyliśmy interfejsy Density i DensityScope w jeden. Zamiast ambientDensity() możesz teraz używać DensityAmbient.current. Zamiast withDensity(density) używaj tylko with(density) (I11cb1).
- Dodano metody kopiowania do różnych typów klas wbudowanych, w tym:
- Przesunięcie
- Rozmiar
- Promień
- Ruch
- TransformOrigin
- Metoda obiektu towarzyszącego Size.copy została wycofana na rzecz metody kopiowania instancji (Ife290, b/159905651)
- Klasa androidx.compose.ViewComposer została przeniesiona do androidx.ui.node.UiComposer.
Klasa androidx.compose.Emittable została usunięta. Było to zbędne w przypadku ComponentNode.
androidx.compose.ViewAdapters zostało usunięte. Nie jest to już obsługiwany przypadek użycia.
Metoda Compose.composeInto została wycofana. Zamiast tego użyj zdarzenia
setContent
lubsetViewContent
. Metoda Compose.disposeComposition została wycofana. Zamiast tego użyj metodydispose
na obiekcieComposition
zwróconym przezsetContent
. Funkcja androidx.compose.Compose.subcomposeInto została przeniesiona do androidx.ui.core.subcomposeInto. Funkcja ComponentNode#emitInsertAt została zmieniona na ComponentNode#insertAt. Funkcja ComponentNode#emitRemoveAt została zmieniona na ComponentNode#removeAt. Funkcja ComponentNode#emitMode została zmieniona na ComponentNode#move (Idef00).