Animacja w Compose
androidx.compose.animation
androidx.compose.animation.core
androidx.compose.animation.graphics
(zobacz dokumentację interfejsu API dotyczącą wszystkich pakietów compose)
Ostatnia aktualizacja | Wersja stabilna | Wersja kandydująca | Wersja Beta | Wersja alfa |
---|---|---|---|---|
13 listopada 2024 r. | 1.7.5 | - | - | 1.8.0-alpha06 |
Struktura
Compose to kombinacja 7 identyfikatorów grup Maven w ramach androidx
. Każda grupa zawiera określony podzbiór funkcji, a każda z nich ma własny zestaw informacji o wypuszczeniu.
Ta tabela zawiera informacje o grupach i linki do poszczególnych zestawów informacji o wersji.
Grupa | Opis |
---|---|
compose.animation | tworzyć animacje w aplikacjach Jetpack Compose, aby wzbogacać wrażenia użytkowników. |
compose.compiler | Przekształcaj funkcje @Composable i włącz optymalizacje za pomocą wtyczki kompilatora Kotlin. |
compose.foundation | Pisać aplikacje Jetpack Compose za pomocą gotowych elementów składowych i rozwijać podstawy, aby tworzyć własne elementy systemu projektowania. |
compose.material | Tworzenie interfejsów Jetpack Compose za pomocą gotowych komponentów Material Design. Jest to punkt wejścia na wyższym poziomie w Compose, który ma na celu udostępnianie komponentów odpowiadających komponentom opisanym na stronie www.material.io. |
compose.material3 | Twórz interfejsy Jetpack Compose za pomocą komponentów Material Design 3, czyli kolejnej generacji Material Design. Material 3 obejmuje zaktualizowane motywy i elementy oraz funkcje personalizacji Material You, takie jak dynamiczne kolory. 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 środowisko uruchomieniowe główne dla wtyczki kompilatora Compose, na które ma być nakierowany. |
compose.ui | Podstawowe elementy interfejsu tworzenia wiadomości, które są potrzebne do interakcji z urządzeniem, w tym układ, rysowanie i wprowadzanie danych. |
Deklarowanie zależności
Aby dodać zależność od Compose, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven firmy Google.
Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle
aplikacji lub modułu:
Groovy
dependencies { implementation "androidx.compose.animation:animation:1.7.5" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.animation:animation:1.7.5") } 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 zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk z gwiazdką.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.8
Wersja 1.8.0-alpha06
13 listopada 2024 r.
androidx.compose.animation:animation-*:1.8.0-alpha06
został zwolniony. Wersja 1.8.0-alpha06 zawiera te komisy.
Zmiany w interfejsie API
- Zmieniono nazwę parametru
sharedElement
zstate
nasharedContentState
, aby zachować spójność w interfejsach API elementów wspólnych. (I5694c, b/375351468) - Zestaw interfejsów API
AnimatedImageVector
jest teraz stabilny. (I7174b, b/261436267)
Wersja 1.8.0-alpha05
30 października 2024 r.
androidx.compose.animation:animation-*:1.8.0-alpha05
został zwolniony. Wersja 1.8.0-alpha05 zawiera te komisy.
Nowe funkcje
- W wersji
LazyGrid
obsługiwane jest teraz przewidywanie. Obejmuje to rozróżnianie przejść w przód i w tył w przypadku przewijania, tworzenia i usuwania elementów oraz animacji elementów. Przejście w przód jest używane jako źródło informacji o przewijaniu oraz celu animacji elementów.
Poprawki błędów
- Aktualizuj wewnętrzne stany transformacji rozmiaru
AnimatedContent
, gdy przejście zostanie ponownie utworzone. Dzięki temu informacje o docelowym rozmiarze są zawsze aktualne. (b/372512085)
Wersja 1.8.0-alpha04
16 października 2024 r.
androidx.compose.animation:animation-*:1.8.0-alpha04
został zwolniony. Wersja 1.8.0-alpha04 zawiera te komisy.
Poprawki błędów
- Naprawiono błąd, który powodował awarie niektórych krzywych wygładzających w określonych ułamkach czasu.
- Naprawiono błąd powodujący nieprawidłowe wyrównanie znaków
Modifier.animateContentSize
w językach z orientacją poziomą. (Idae6b, b/372055503)
Wersja 1.8.0-alpha03
2 października 2024 r.
androidx.compose.animation:animation-*:1.8.0-alpha03
został zwolniony. Wersja 1.8.0-alpha03 zawiera te komity.
Zmiany w interfejsie API
- Aktualizacja wersji Kotlina do 1.9 (I1a14c)
Poprawki błędów
- Rozwiązaliśmy problem z animacją rozmiaru
AnimatedContent
. Animacja zawsze będzie śledzić i rozpoczynać się od bieżącego rozmiaru, aby zapewnić ciągłość.
Wersja 1.8.0-alpha02
18 września 2024 r.
androidx.compose.animation:animation-*:1.8.0-alpha02
został zwolniony. Wersja 1.8.0-alpha02 zawiera te komity.
Wersja 1.8.0-alpha01
4 września 2024 r.
androidx.compose.animation:animation-*:1.8.0-alpha01
został zwolniony. Wersja 1.8.0-alpha01 zawiera te komity.
Nowe funkcje
- Nowy interfejs API
Modifier.animateBounds
do animowania zmian rozmiaru i pozycji w ramach zakresu wyprzedzającego. 94b9394
Zmiany w interfejsie API
- Usuwanie flag eksperymentalnych w przypadku klatek kluczowych z krzywiznami i splajnami (89e1199)
Poprawki błędów
- Pomiń logikę
placeHolderSize
, gdy nie znaleziono dopasowania (77c0160) - Ograniczenie czasu odtwarzania w
AndroidFlingSpline
w celu zapobiegania awariom spowodowanym niemonotonicznym zwiększaniem czasu odtwarzania(9d47587) - Poprawiono błąd powodujący, że
SharedTransitionScope
nie rysuje elementów w pewnych warunkach (b41077b6).
Darowizna zewnętrzna
- Zapobieganie ustawianiu przełączenia z możliwością przewijania
playTime
, gdy nie ma żadnego przełączenia w trakcie odtwarzania przez Stevena Schoena. (c2e6e7e6)
Wersja 1.7
Wersja 1.7.5
30 października 2024 r.
androidx.compose.animation:animation-*:1.7.5
został zwolniony. Wersja 1.7.5 zawiera te komitowane zmiany.
Poprawki błędów
- Naprawiono błąd powodujący nieprawidłowe wyrównanie znaków
Modifier.animateContentSize
w językach z orientacją poziomą. (Idae6b, b/372055503)
Wersja 1.7.4
16 października 2024 r.
androidx.compose.animation:animation-*:1.7.4
został zwolniony. Wersja 1.7.4 zawiera te komitowane zmiany.
Wersja 1.7.3
2 października 2024 r.
androidx.compose.animation:animation-*:1.7.3
został zwolniony. Wersja 1.7.3 zawiera te komity.
Wersja 1.7.2
18 września 2024 r.
androidx.compose.animation:animation-*:1.7.2
został zwolniony. Wersja 1.7.2 zawiera te komity.
Darowizna zewnętrzna
- Zapobieganie ustawianiu przełączalnego przejścia
playTime
, gdy nie jest uruchomione żadne przejście. Dziękuję, Steven Schoen. (c2e6e7e6)
Wersja 1.7.1
10 września 2024 r.
- Brak zmian w artefaktach na Androida. Usunięto
-desktop
artefakty i dodano-jvmStubs
oraz-linuxx64Stubs
. Żadnego z tych celów nie należy używać. Są to elementy zastępcze, które ułatwiają pracę Jetbrains Compose.
Wersja 1.7.0
4 września 2024 r.
androidx.compose.animation:animation-*:1.7.0
został zwolniony.
Ważne zmiany od wersji 1.6.0
Ważne zmiany w wersji 1.7.0 opisane są w tym poście na blogu.
Nowe interfejsy API przejścia elementów współdzielonych
- Nowe interfejsy API przejścia do współdzielonego elementu czekają na Twoje opinie i testy. Te nowe eksperymentalne interfejsy API umożliwiają tagowanie układów jako udostępnionych w drzewie układu za pomocą podanych modyfikatorów, co powoduje płynne zmiany granic, gdy jeden zestaw udostępnionych treści kończy się, a pojawia się inny. (Icb0b9)
- Nowe parametry
scaleInSharedContentToBounds
iscaleOutSharedContentToBounds
do skalowania treści wsharedBounds
(I731c1) - Eksperymentalna
SharedTransitionScope
jest teraz interfejsem, a nie klasą. (Iaf856) - Nowe
resizeModes
(ScaleToBounds
iRemeasureToBounds
) dlasharedBounds
, aby wybrać między skalowaniem a ponownym pomiarem. Poprzednie interfejsy APIscaleIn/OutSharedContentToBounds
zostały wycofane. (I0d41a)
Ulepszenia istniejących interfejsów API:
- Nowa funkcja
Modifier.animateContentSize
, która przyjmuje dodatkowy parametr do dopasowywania treści niestandardowych. (I5623a, b/269803907) - Nowa opcja eksperymentalna
DeferredTargetAnimation
do animowania rozmiaru, położenia lub dowolnego innego celu, który jest nieznany podczas instancjonowania. (I60745) SeekableTransitionState
zastępujesnapTo()
wartościąseekTo()
i dodajesnapTo()
, który natychmiast zmienia stan na stan docelowy bez żadnej animacji.- Teraz możesz przekazać do parametru
periodicBias
wartość zmiennoprzecinkową (float), dzięki czemu początkowa i końcowa prędkość stycznej będą równe.keyframesWithSpline
Przydatne w przypadku powtarzalnych animacji z użyciem krzywych. Współczynnik wskazuje, o ile każda prędkość (początkowa i końcowa) zostanie zmieniona, aby uzyskać okresowość. (Ic1e6c, b/292114811)
Te interfejsy API stały się stabilne lub zostały usunięte:
- Interfejs
AnimatedVisibilityScope.transition
jest teraz stabilnym interfejsem API. Stabilność została też poprawiona w przypadkuModifier.animateEnterExit(..)
. (I6c1d1) ApproachLayoutModifierNode
iModifier.approachLayout
są teraz stabilne, a noweisMeasurementApproachInProgress()
iisPlacementApproachInProgress()
zastępują odpowiednio stareisMeasurementApproachComplete()
iisPlacementApproachComplete()
.- Usunięto przestarzały modyfikator
intermediateLayout
. (I3e91c) - Interfejsy API
LookaheadScope
działają stabilnie. (I21507)
Wersja 1.7.0-rc01
21 sierpnia 2024 r.
androidx.compose.animation:animation-*:1.7.0-rc01
został zwolniony. Wersja 1.7.0-rc01 zawiera te komity.
Wersja 1.7.0-beta07
7 sierpnia 2024 r.
androidx.compose.animation:animation-*:1.7.0-beta07
został zwolniony. Wersja 1.7.0-beta07 zawiera te komity.
Poprawki błędów
- Rozwiązano problem z
SharedTransitionScope
nierysowaniem elementów nakładki podczas przejścia w pewnych warunkach, co zwykle dotyczy korzystania z Nawigacji. (Id65ab, b/347520198)
Wersja 1.7.0-beta06
24 lipca 2024 r.
androidx.compose.animation:animation-*:1.7.0-beta06
został zwolniony. Wersja 1.7.0-beta06 zawiera te komity.
Poprawki błędów
- Rozwiązano problem z wyciekaniem stanów przejścia w
SeekableTransition
przez prawidłowe oczyszczanie obserwacji zSnapshotStateObserver
po zakończeniu przejścia. (b9c7182) - Rozwiązaliśmy problemy z przypadkami szczególnymi, w których przejścia podrzędne nie były prawidłowo oznaczane jako ukończone po zakończeniu przejścia nadrzędnego. (dc42216)
Wersja 1.7.0-beta05
10 lipca 2024 r.
androidx.compose.animation:animation-*:1.7.0-beta05
został zwolniony. Wersja 1.7.0-beta05 zawiera te komisy.
Poprawki błędów
- Właściwość przejścia
totalDurationNanos
można teraz prawidłowo odczytać w elementachsnapshotFlow
.
Wersja 1.7.0-beta04
26 czerwca 2024 r.
androidx.compose.animation:animation-*:1.7.0-beta04
został zwolniony. Wersja 1.7.0-beta04 zawiera te komity.
Wersja 1.7.0-beta03
12 czerwca 2024 r.
androidx.compose.animation:animation-*:1.7.0-beta03
został zwolniony. Wersja 1.7.0-beta03 zawiera te zatwierdzenia.
Wersja 1.7.0-beta02
29 maja 2024 r.
androidx.compose.animation:animation-*:1.7.0-beta02
został zwolniony. Wersja 1.7.0-beta02 zawiera te komity.
Wersja 1.7.0-beta01
14 maja 2024 r.
androidx.compose.animation:animation-*:1.7.0-beta01
został zwolniony. Wersja 1.7.0-beta01 zawiera te komity.
Zmiany w interfejsie API
- Nowe
resizeModes
(ScaleToBounds
iRemeasureToBounds
) dlasharedBounds
, aby wybrać między skalowaniem a ponownym pomiarem. Poprzednie interfejsy APIscaleIn/OutSharedContentToBounds
zostały wycofane. (I0d41a)
Darowizna zewnętrzna
- Eksperymentalny
SharedTransitionScope
jest teraz interfejsem, a nie klasą autorstwa Stevena Schoena. (Iaf856, b/338415048, b/338414702)
Wersja 1.7.0-alpha08
1 maja 2024 r.
androidx.compose.animation:animation-*:1.7.0-alpha08
został zwolniony. Wersja 1.7.0-alpha08 zawiera te komity.
Zmiany w interfejsie API
- Interfejsy API
LookaheadScope
działają stabilnie. (I21507)
Darowizna zewnętrzna
- Wyraźny czas rozpoczęcia animacji po
SeekableTransitionState
animuje/miga przez Stevena Schoena (1ca89529)
Wersja 1.7.0-alpha07
17 kwietnia 2024 r.
androidx.compose.animation:animation-*:1.7.0-alpha07
został zwolniony. Wersja 1.7.0-alpha07 zawiera te komity.
Nowe funkcje
- Nowe interfejsy API przejścia do współdzielonego elementu czekają na Twoje opinie i testy. Te nowe eksperymentalne interfejsy API umożliwiają tagowanie układów jako udostępnionych w drzewie układu za pomocą podanych modyfikatorów, co powoduje płynne zmiany granic, gdy jeden zestaw udostępnionych treści kończy się, a pojawia się inny. (Icb0b9)
- Nowe parametry
scaleInSharedContentToBounds
iscaleOutSharedContentToBounds
do skalowania treści wsharedBounds
(I731c1)
Zmiany w interfejsie API
- Interfejs
AnimatedVisibilityScope.transition
jest teraz stabilnym interfejsem API. Stabilność została też poprawiona w przypadkuModifier.animateEnterExit(..)
. (I6c1d1) ApproachLayoutModifierNode
iModifier.approachLayout
są teraz stabilne, a noweisMeasurementApproachInProgress()
iisPlacementApproachInProgress()
zastępują odpowiednio stareisMeasurementApproachComplete()
iisPlacementApproachComplete()
.- Usunięto przestarzały modyfikator
intermediateLayout
. (I3e91c) - Teraz możesz przekazać do parametru
periodicBias
wartość zmiennoprzecinkową (float), dzięki czemu początkowa i końcowa prędkość stycznej będą równe.keyframesWithSpline
Przydatne w przypadku powtarzalnych animacji z użyciem krzywych. Współczynnik wskazuje, o ile każda prędkość (początkowa i końcowa) zostanie zmieniona, aby uzyskać okresowość. (Ic1e6c, b/292114811)
Poprawki błędów
- Naprawiono krzywe przejścia z przestrzeleniem i niedosięgnięciem, które wcześniej były ograniczone do 0,1 (I38747).
Wersja 1.7.0-alpha06
3 kwietnia 2024 r.
androidx.compose.animation:animation-*:1.7.0-alpha06
został zwolniony. Wersja 1.7.0-alpha06 zawiera te komisy.
Nowe funkcje
- Dodaliśmy obsługę animacji pojawiania się i znikania elementów w wersjach
LazyColumn
iLazyRow
. Wcześniej można było dodawać modyfikatorModifier.animateItemPlacement()
, aby obsługiwać animacje umieszczania (przestawiania). Wycofaliśmy ten modyfikator i wprowadziliśmy nowy, nieeksperymentalny modyfikator o nazwieModifier.animateItem()
, który umożliwia obsługę wszystkich 3 typów animacji: pojawiania się (w postępowaniu), znikania (w postępowaniu) i przestawiania. (I2d7f7, b/330152398, b/150812265)
Poprawki błędów
- Zwiększona wydajność interfejsu API
updateTransition
.
Wersja 1.7.0-alpha05
20 marca 2024 r.
androidx.compose.animation:animation-*:1.7.0-alpha05
został zwolniony. Wersja 1.7.0-alpha05 zawiera te komity.
Zmiany w interfejsie API
SeekableTransitionState
zastępujesnapTo()
wartościąseekTo()
i dodajesnapTo()
, który natychmiast zmienia stan na stan docelowy bez żadnej animacji.
Wersja 1.7.0-alpha04
6 marca 2024 roku
androidx.compose.animation:animation-*:1.7.0-alpha04
został zwolniony. Wersja 1.7.0-alpha04 zawiera te komity.
Zmiany w interfejsie API
- Nowy interfejs API
Path.reverse()
do odwracania kierunku ścieżki (I36348)
Wersja 1.7.0-alpha03
21 lutego 2024 r.
androidx.compose.animation:animation-*:1.7.0-alpha03
został zwolniony. Wersja 1.7.0-alpha03 zawiera te commity.
Nowe funkcje
- Nowa funkcja
Modifier.animateContentSize
, która przyjmuje dodatkowy parametr do dopasowywania treści niestandardowych. (I5623a, b/269803907) - Nowa opcja eksperymentalna
DeferredTargetAnimation
do animowania rozmiaru, położenia lub dowolnego innego celu, który jest nieznany podczas instancjonowania. (I60745)
Wersja 1.7.0-alpha02
7 lutego 2024 r.
androidx.compose.animation:animation-*:1.7.0-alpha02
został zwolniony. Wersja 1.7.0-alpha02 zawiera te commity.
Poprawki błędów
- Naprawka dotycząca zgodności dla
KeyframesSpec
. (I2bdf3, b/322214617) - Rozwiązaliśmy problem z nieprawidłowym resetowaniem funkcji
Modifier.animateContentSize
w komponencieLazyList
. (I070512, b/322525716) - Rozwiązano problem z funkcją
IllegalStateException
w funkcjiKeyframesSpec
podczas używania sygnatur czasowych spoza zakresu. (I341b8, b/322839811)
Wersja 1.7.0-alpha01
24 stycznia 2024 r.
androidx.compose.animation:animation-*:1.7.0-alpha01
został zwolniony. Wersja 1.7.0-alpha01 zawiera te commity.
Wersja 1.6
Wersja 1.6.8
12 czerwca 2024 r.
androidx.compose.animation:animation-*:1.6.8
został zwolniony. Wersja 1.6.8 zawiera te komisy.
Wersja 1.6.7
1 maja 2024 r.
androidx.compose.animation:animation-*:1.6.7
został zwolniony. Wersja 1.6.7 zawiera te komity.
Wersja 1.6.6
17 kwietnia 2024 r.
androidx.compose.animation:animation-*:1.6.6
został zwolniony. Brak zmian od poprzedniej wersji
Wersja 1.6.5
3 kwietnia 2024 r.
androidx.compose.animation:animation-*:1.6.5
został zwolniony. Wersja 1.6.5 zawiera te komity.
Wersja 1.6.4
20 marca 2024 r.
androidx.compose.animation:animation-*:1.6.4
został zwolniony. Wersja 1.6.4 zawiera te komitowane zmiany.
Wersja 1.6.3
6 marca 2024 roku
androidx.compose.animation:animation-*:1.6.3
został zwolniony. Wersja 1.6.3 zawiera te komitowane zmiany.
Wersja 1.6.2
21 lutego 2024 r.
androidx.compose.animation:animation-*:1.6.2
został zwolniony. Wersja 1.6.2 zawiera te commity.
Wersja 1.6.1
7 lutego 2024 r.
androidx.compose.animation:animation-*:1.6.1
został zwolniony. Wersja 1.6.1 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawka dotycząca zgodności dla
KeyframesSpec
. (I2bdf3, b/322214617)
Wersja 1.6.0
24 stycznia 2024 r.
androidx.compose.animation:animation-*:1.6.0
został zwolniony. Wersja 1.6.0 zawiera te zatwierdzenia.
Wersja 1.6.0-rc01
10 stycznia 2024 r.
androidx.compose.animation:animation-*:1.6.0-rc01
został zwolniony. Wersja 1.6.0-rc01 zawiera te zatwierdzenia.
Wersja 1.6.0-beta03
13 grudnia 2023 r.
androidx.compose.animation:animation-*:1.6.0-beta03
został zwolniony. Wersja 1.6.0-beta03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Tymczasowo usunięto
scaleInToFitContainer
iscaleOutToFitContainer
zAnimatedContentTransitionScope
, ponieważ wymagają przewidywania. Będą one dostępne, gdy funkcja przewidywania będzie domyślnie włączona lub gdy użytkownicy wyrażą zgodę na jej używanie w kolejnych wersjach.
Wersja 1.6.0-beta02
29 listopada 2023 r.
androidx.compose.animation:animation-*:1.6.0-beta02
został zwolniony. Wersja 1.6.0-beta02 zawiera te commity.
Wersja 1.6.0-beta01
15 listopada 2023 r.
androidx.compose.animation:animation-*:1.6.0-beta01
został zwolniony. Wersja 1.6.0-beta01 zawiera te commity.
Zmiany w interfejsie API
- Aby była bardziej jednoznaczna, nazwa
ExitTransition.Hold
została zmieniona naExitTransition.KeepUntilTransitionsFinished
. (I1c490) - Możesz teraz używać funkcji
keyframesWithSpline
do interpolowania dowolnej wartości wymiaru N za pomocą linii monotonnych. Jest to szczególnie przydatne do interpolowania wartości pozycyjnych, takich jakOffset
,IntOffset
iDpOffset
. Dodano jako eksperymentalny interfejs API.
Poprawki błędów
- Dodano obsługę renderowania gradientu Sweep w
ArcLine
. (I4d5bb) - Zaimplementuj metody equals i hashcode dla klasy
PageSize.Fixed
. (Ie3ede, b/300134276) - Rozwiązano problem ze zgodnością binarną związany z zmianą w przypadku wcięcia okna. (Iee695)
- Usuń warstwę główną materiału w przypadku elementu lub przycisku Material3, ponieważ mikrotesty pokazują lepszą wydajność bez niej. (I55555)
Wersja 1.6.0-alpha08
18 października 2023 r.
androidx.compose.animation:animation-*:1.6.0-alpha08
został zwolniony. Wersja 1.6.0-alpha08 zawiera te commity.
Zmiany w interfejsie API
- Wycofano
KeyframesSpecConfig#with
na rzeczKeyframesSpecConfig#using
, który zachowuje wzór konstruktora. (I1d769)
Wersja 1.6.0-alpha07
4 października 2023 roku
androidx.compose.animation:animation-*:1.6.0-alpha07
został zwolniony. Wersja 1.6.0-alpha07 zawiera te commity.
Zmiany w interfejsie API
- Stałe i przewijane karty mają teraz warianty główny i dodatkowy. Te wartości są poprawnie mapowane na kolory i zachowanie wskaźnika zgodnie z definicją w Material3.
PrimaryScrollableTabRow
iSecondaryScrollableTabRow
teraz pokazują stan przewijania. (Iec8f5, b/260572337)
Wersja 1.6.0-alpha06
20 września 2023 r.
androidx.compose.animation:animation-*:1.6.0-alpha06
został zwolniony. Wersja 1.6.0-alpha06 zawiera te commity.
Wersja 1.6.0-alpha05
6 września 2023 r.
androidx.compose.animation:animation-*:1.6.0-alpha05
został zwolniony. Wersja 1.6.0-alpha05 zawiera te commity.
Zmiany w interfejsie API
- Dodano
PathEasing
, aby umożliwić przekazywanie dowolnej ścieżki do krzywej wygaszania. (Idb4b9)
Wersja 1.6.0-alpha04
23 sierpnia 2023 r.
androidx.compose.animation:animation-*:1.6.0-alpha04
został zwolniony. Wersja 1.6.0-alpha04 zawiera te commity.
Zmiany w interfejsie API
- Dodaj
SeekableTransitionState
, aby umożliwić deweloperom kontrolowanie postępów migracji. (I8e69d)
Wersja 1.6.0-alpha03
9 sierpnia 2023 r.
androidx.compose.animation:animation-*:1.6.0-alpha03
został zwolniony. Wersja 1.6.0-alpha03 zawiera te commity.
Zmiany w interfejsie API
- Nowy typ przejścia wejścia/wyjścia, który skaluje zawartość na podstawie rozmiaru animowanego kontenera podczas animacji wejścia i wyjścia.
LookaheadScope
Funkcja komponowania i interfejs są teraz stabilne. (Ifb2ce)
Wersja 1.6.0-alpha02
26 lipca 2023 r.
androidx.compose.animation:animation-*:1.6.0-alpha02
został zwolniony. Wersja 1.6.0-alpha02 zawiera te commity.
Zmiany w interfejsie API
- Nowa opcja
ExitTransition.Hold
umożliwia wyświetlanie treści wychodzących wAnimatedContent
do czasu zakończenia przejść wejścia i wyjścia. (I5984f) - Dodatkowe adnotacje określające dozwolone dane wejściowe dla komponentów (I51109)
Wersja 1.6.0-alpha01
21 czerwca 2023 r.
androidx.compose.animation:animation-*:1.6.0-alpha01
został zwolniony. Wersja 1.6.0-alpha01 zawiera te commity.
Nowe funkcje
- Umożliw, aby
Modifier.animateContentSize
iAnimatedVisibility
były w pełni zintegrowane z systemem lookahead, zgłaszając rozmiar docelowy w przeszukaniu.
Zmiany w interfejsie API
- Nowa właściwość w funkcji
IntrinsincMeasureScope
i jej implementacjach (np.MeasureScope
) do wskazywania, czy bieżący pomiar jest pomiarem z wyprzedzeniem. (I7a812)
Poprawki błędów
- Usunięto alokacje z animacji wiosennych. (Ie9431)
- Zmieniono nazwę parametru wartości w funkcji Enum.valueOf (Ia9b89)
- więcej wyjątków wyrzucanych z funkcji enum valueOf (I818fe)
Wersja 1.5
Wersja 1.5.4
18 października 2023 r.
androidx.compose.animation:animation-*:1.5.4
został zwolniony. Wersja 1.5.4 zawiera te zatwierdzenia.
Wersja 1.5.3
4 października 2023 roku
androidx.compose.animation:animation-*:1.5.3
został zwolniony. Ta wersja nie zawiera zmian
Wersja 1.5.2
27 września 2023 r.
androidx.compose.animation:animation-*:1.5.2
został zwolniony. Wersja 1.5.2 zawiera te zatwierdzenia.
Wersja 1.5.1
6 września 2023 r.
androidx.compose.foundation:foundation-*:1.5.1
został zwolniony. Wersja 1.5.1 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązano problem z polami tekstowymi, które wyświetlają klawiaturę i są możliwe do edycji, gdy wartość
readOnly
to prawda. Naprawiliśmy też błąd polegający na tym, że klawiatura nie wyświetlała się, gdy wartośćreadOnly
zmieniła się z prawdy na fałsz podczas skupienia. (I34a19, b/246909589)
Wersja 1.5.1
6 września 2023 r.
androidx.compose.animation:animation-*:1.5.1
został zwolniony. Wersja 1.5.1 zawiera te zatwierdzenia.
Wersja 1.5.0
9 sierpnia 2023 r.
androidx.compose.animation:animation-*:1.5.0
został zwolniony. Wersja 1.5.0 zawiera te commity.
Wersja 1.5.0-rc01
26 lipca 2023 r.
androidx.compose.animation:animation-*:1.5.0-rc01
został zwolniony. Wersja 1.5.0-rc01 zawiera te commity.
Poprawki błędów
Rozwiązaliśmy problem, który powodował, że wywołanie funkcji
.value
dla prymitywnego typu stanu (np.MutableIntState
) powodowało wyświetlenie ostrzeżenia lint z nieprawidłową poprawką. Podczas inspekcji zostanie zalecona migracja do właściwej usługi. (Iba953, b/287279257)Dostępna jest opcjonalna inspekcja, która zaleca przeniesienie wywołań
mutableStateOf()
do odpowiednich typów specjalistycznych dla prymitywów. Identyfikator lint toAutoboxingStateCreation
. Wcześniej ta kontrola była domyślnie włączona we wszystkich projektach. Aby wyświetlić to ostrzeżenie w edytorze Android Studio i w wyjściach lint projektu, zmień jego poziom ważności z informacyjnego na ostrzeżenie (lub wyższy), deklarującwarning "AutoboxingStateCreation"
w konfiguracjibuild.gradle
lubbuild.gradle.kts
w module, jak pokazano (I34f7e):android { lint { warning "AutoboxingStateCreation" } ... }
Wersja 1.5.0-beta03
28 czerwca 2023 r.
androidx.compose.animation:animation-*:1.5.0-beta03
został zwolniony. Wersja 1.5.0-beta03 zawiera te commity.
Wersja 1.5.0-beta02
7 czerwca 2023 r.
androidx.compose.animation:animation-*:1.5.0-beta02
został zwolniony. Wersja 1.5.0-beta02 zawiera te commity.
Wersja 1.5.0-beta01
24 maja 2023 r.
androidx.compose.animation:animation-*:1.5.0-beta01
został zwolniony. Wersja 1.5.0-beta01 zawiera te commity.
Zmiany w interfejsie API
- Usunięto przypisania w ramach rekompozycji, 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.
androidx.compose.animation:animation-*:1.5.0-alpha04
został zwolniony. Wersja 1.5.0-alpha04 zawiera te commity.
Zmiany w interfejsie API
- Aby umożliwić większą kontrolę nad czasem przeniesienia, w
AnimatedContent
udostępniono terazContentKey
. (Ic069b)
Wersja 1.5.0-alpha03
19 kwietnia 2023 r.
androidx.compose.animation:animation-*:1.5.0-alpha03
został zwolniony. Wersja 1.5.0-alpha03 zawiera te commity.
Nowe funkcje
- Nowe domyślne działanie typu
SubcomposeLayout
w kontekścieLookaheadScope
. Umożliwia to prawidłowe działanie animacji wyprzedzających w przypadku elementówSubcomposeLayouts
, które nie mają slotów warunkowych (np.TabRow
,Scaffold
,BoxWithConstraints
itp.).
Zmiany w interfejsie API
- Nowa domyślna wartość
intermediateMeasurePolicy
, która ponownie używa polityki pomiaru z przewidywania, umożliwia domyślne korzystanie z podtypówSubcomposeLayout
bez slotów warunkowych, takich jakScaffold
,TabRow
iBoxWithConstraints
. (Id84c8) - Zmień nazwę infix fun with na
togetherWith
, aby połączyć przejścia wejścia i wyjścia. Nowy elementAnimatedContentScope
jako odbiorca lambda treści. (Ic39ae)
Wersja 1.5.0-alpha02
5 kwietnia 2023 r.
androidx.compose.animation:animation-*:1.5.0-alpha02
został zwolniony. Wersja 1.5.0-alpha02 zawiera te commity.
Nowe funkcje
- Nowy eksperymentalny interfejs API do obsługi funkcji lookahead w
SubcomposeLayout
. Pozwoli to aplikacjiSubcomposeLayout
na prawidłowe działanie w ramachLookaheadScope
. Wkrótce udostępnimy więcej wstępnie zaimplementowanej obsługi określonych podtypówSubcomposeLayout
.
Zmiany w interfejsie API
- Nowy interfejs API
SubcomposeLayout
, który przyjmuje dodatkową zasadę dotyczącą pośrednich pomiarów w celu obsługi logiki pomiarów/układu podczas animacji z wyprzedzeniem. (I017d3)
Wersja 1.5.0-alpha01
22 marca 2023 r.
androidx.compose.animation:animation-*:1.5.0-alpha01
został zwolniony. Wersja 1.5.0-alpha01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Interfejsy API
AnimatedContent
są teraz stabilne. NazwaAnimatedContentScope
została zmieniona naAnimatedContentTransitionScope
. Interfejsy APIscaleIn
iscaleOut
są teraz stabilne. (Iaf54e)
Wersja 1.4
Wersja 1.4.3
3 maja 2023 r.
Usługi 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 zmiana numeru wersji).
Wersja 1.4.2
19 kwietnia 2023 r.
Funkcje 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ą publikowane bez zmian. Wersja 1.4.2 zawiera te zatwierdzenia.
Wersja 1.4.1
5 kwietnia 2023 r.
Funkcje 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ą publikowane bez zmian. Wersja 1.4.1 zawiera te zatwierdzenia.
Wersja 1.4.0
22 marca 2023 r.
Funkcje 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ą dostępne. Wersja 1.4.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.3.0
- Etykieta narzędzi jest obsługiwana w r
ememberInfiniteTransition
i wszystkich funkcjach rozszerzenia wInfiniteTransition
i Transition (np.InfiniteTransition#animateColor
) (I56ef7)
Wersja 1.4.0-rc01
8 marca 2023 r.
Funkcje 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ą publikowane bez zmian. Wersja 1.4.0-rc01 zawiera te zatwierdzenia.
Wersja 1.4.0-beta02
22 lutego 2023 roku
Funkcje 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ą publikowane bez zmian. Wersja 1.4.0-beta02 zawiera te zatwierdzenia.
Wersja 1.4.0-beta01
8 lutego 2023 r.
Funkcje 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ą publikowane bez zmian. Wersja 1.4.0-beta01 zawiera te commity.
Wersja 1.4.0-alpha05
25 stycznia 2023 r.
Funkcje 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ą dostępne. Wersja 1.4.0-alpha05 zawiera te commity.
Zmiany
- od ostatniej wersji alfa nie wprowadzono żadnych zmian w bibliotekach animacji, tylko podniesiono numer wersji;
Wersja 1.4.0-alpha04
11 stycznia 2023 r.
Funkcje 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ą dostępne. Wersja 1.4.0-alpha04 zawiera te commity.
Nowe funkcje
- Etykieta narzędzi jest obsługiwana w funkcji
rememberInfiniteTransition
i we wszystkich funkcjach rozszerzenia w funkcjiInfiniteTransition
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.
Funkcje 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ą dostępne. Wersja 1.4.0-alpha03 zawiera te commity.
Zmiany w interfejsie API
- W testach UI korzystających z reguły Compose wznowienia kontynuacji podczas wywołań
withFrameNanos
nie będą wysyłane, dopóki nie zakończą się wszystkie wywołaniawithFrameNanos
. Jest to zgodne z działaniem funkcji komponowania podczas normalnego działania. Testy, które korzystają ze starego zachowania, mogą jednak nie działać. Ta zmiana powinna dotyczyć tylko kodu, który bezpośrednio wywołuje funkcjewithFrameNanos
lubwithFrameMillis
, i zawiera logikę spoza wywołania zwrotnego przekazaną do tych funkcji, którą może być konieczne przeniesienie do wywołań zwrotnych. Przykłady zmian w teście animacji znajdziesz w tym CL. - Do konstruktora i funkcji fabrycznej
TestMonotonicFrameClock
dodano opcjonalny parametronPerformTraversals: (Long) -> Unit
, który umożliwia uruchamianie kodu po wywołaniach zwrotnychwithFrameNanos
, ale przed wznowieniem korzystania z funkcji coroutine wywołujących. (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.
Funkcje 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ą dostępne. Wersja 1.4.0-alpha02 zawiera te commity.
Zmiany w interfejsie API
- Dodaj
ToolingState
, aby umożliwić narzędziom zmianę wewnętrznych stanów Composable (Ie6614).
Wersja 1.4.0-alpha01
24 października 2022 r.
Funkcje 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ą dostępne. Wersja 1.4.0-alpha01 zawiera te commity.
Poprawki błędów
- Poprawka nieprawidłowej animacji przerwania w AnimatedContent (b/238662479)
Wersja 1.3
Wersja 1.3.3
11 stycznia 2023 r.
Funkcje 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ą dostępne. Wersja 1.3.3 zawiera te zatwierdzenia.
- Brak zmian od wersji 1.3.2.
Wersja 1.3.2
7 grudnia 2022 r.
Funkcje 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ą dostępne. Wersja 1.3.2 zawiera te commity.
Poprawki błędów
- Zaktualizowano, aby obsługiwać androidx.compose.ui 1.3.2
Wersja 1.3.1
9 listopada 2022 r.
Funkcje 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ą dostępne. Wersja 1.3.1 zawiera te zatwierdzenia.
Wersja 1.3.0
24 października 2022 r.
Funkcje 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ą dostępne. Wersja 1.3.0 zawiera te commity.
Ważne zmiany od wersji 1.2.0
- Stabilizacja nowego zestawu funkcji łagodnego przejścia
Wersja 1.3.0-rc01
5 października 2022 r.
Funkcje 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ą dostępne. Wersja 1.3.0-rc01 zawiera te commity.
Wersja 1.3.0-beta03
21 września 2022 r.
Funkcje 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ą dostępne. Wersja 1.3.0-beta03 zawiera te zatwierdzenia.
- Brak zmian od wersji 1.3.0-beta02.
Wersja 1.3.0-beta02
7 września 2022 roku
Funkcje 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ą dostępne. Wersja 1.3.0-beta02 zawiera te zatwierdzenia.
- Usunięto Kotlin.experimental z opcji kompilatora, ponieważ jest on przestarzały.
Wersja 1.3.0-beta01
24 sierpnia 2022 r.
Funkcje 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ą dostępne. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
Wersja 1.3.0-alpha03
10 sierpnia 2022 r.
Funkcje 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ą dostępne. Wersja 1.3.0-alpha03 zawiera te commity.
Zmiany w interfejsie API
- Nowy parametr w
Crossfade
,animateAsState
iAnimatable
dla etykiety narzędzi (Iac08a) - Dodano funkcję
atFraction
do definiowania klatek kluczowych w ułamku sekundy zamiast w określonym czasie trwania. (I20c76, b/232059455)
Wersja 1.3.0-alpha02
27 lipca 2022 roku
Funkcje 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ą dostępne. Wersja 1.3.0-alpha02 zawiera te commity.
Wersja 1.3.0-alpha01
29 czerwca 2022 r.
Funkcje 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ą dostępne. Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Nowa funkcja
LookaheadLayout
, która obsługuje przetwarzanie w przyszłości przed rzeczywistym pomiarem lub układem. Umożliwia to wstępny przeliczenie układu, gdy ulegnie on zmianie, a także pozwala na zastosowanie w post-lookahead measure/layout wstępnie obliczonych rozmiarów/pozycji, aby animować rozmiary i pozycje w kierunku celu.SubcomposeLayouts
nie są jeszcze obsługiwane, ale będzie można z nich korzystać w jednej z przyszłych wersji. (I477f5)
Wersja 1.2
Wersja 1.2.1
10 sierpnia 2022 r.
Funkcje 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ą dostępne. Wersja 1.2.1 zawiera te zatwierdzenia.
Wersja 1.2.0
27 lipca 2022 roku
Funkcje 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ą dostępne. Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
- Animacja w edytorze obsługuje teraz ustawienie „Skala długości animacji” w opcjach dla deweloperów.
- duża liczba nowych eksperymentalnych krzywych wypełnienia;
- Usługa
AnimatedImageVector
obsługuje teraz atrybutyrepeatCount
irepeatMode
Wersja 1.2.0-rc03
29 czerwca 2022 r.
Funkcje 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ą dostępne. Wersja 1.2.0-rc03 zawiera te zatwierdzenia.
- Brak zmian od wersji 1.2.0-rc02.
Wersja 1.2.0-rc02
22 czerwca 2022 r.
Funkcje 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ą dostępne. Wersja 1.2.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Usunięto adnotację
ExperimentalEasingApi
w funkcjach wygładzania (Ied441)
Wersja 1.2.0-rc01
15 czerwca 2022 r.
Funkcje 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ą dostępne. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Interfejsy w bibliotekach kompozytowych są teraz tworzone za pomocą domyślnych metod interfejsu JDK 8 (I5bcf1).
Wersja 1.2.0-beta03
1 czerwca 2022 r.
Funkcje 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ą dostępne. Wersja 1.2.0-beta03 zawiera te commity.
Zmiany w interfejsie API
- Dodano eksperymentalne krzywe wygaszania dla animacji (I64a38).
Wersja 1.2.0-beta02
18 maja 2022 r.
Funkcje 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ą dostępne. Wersja 1.2.0-beta02 zawiera te commity.
Wersja 1.2.0-beta01
11 maja 2022 roku
Funkcje 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ą dostępne. Wersja 1.2.0-beta01 zawiera te commity.
- To pierwsza wersja beta 1.2. Nie ma żadnych zmian od ostatniej wersji alfa.
Wersja 1.2.0-alpha08
20 kwietnia 2022 r.
Funkcje 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ą dostępne. Wersja 1.2.0-alpha08 zawiera te zatwierdzenia.
Wersja 1.2.0-alpha07
6 kwietnia 2022 roku
Funkcje 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ą dostępne. Wersja 1.2.0-alpha07 zawiera te zatwierdzenia.
Zmiany w interfejsie API
AnimatedImageVector
obsługuje terazrepeatCount
irepeatMode
(Ia3e75, b/199304067).
Wersja 1.2.0-alpha06
23 marca 2022 r.
Funkcje 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ą dostępne. Wersja 1.2.0-alpha06 zawiera te commity.
Zmiany w interfejsie API
- Zaktualizowano analizowanie obiektów do rysowania wektorowych, aby umożliwić automatyczne lustrzane odbicie treści
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ły odpowiedniej składanej adnotacji
@VectorComposable
zamiast@UiComposable
(I942bc).
Wersja 1.2.0-alpha05
9 marca 2022 r.
Funkcje 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ą dostępne. Wersja 1.2.0-alpha05 zawiera te commity.
Zmiany w interfejsie API
- Hurra! Animacja w edytorze obsługuje teraz ustawienie „Skala długości animacji” w opcjach dla deweloperów. (I5a4fc, b/161675988)
Wersja 1.2.0-alpha04
23 lutego 2022 r.
Funkcje 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ą dostępne. Wersja 1.2.0-alpha04 zawiera te commity.
Wersja 1.2.0-alpha03
9 lutego 2022 r.
Funkcje 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ą dostępne. Wersja 1.2.0-alpha03 zawiera te komisy.
Wersja 1.2.0-alpha02
26 stycznia 2022 r.
Funkcje 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ą dostępne. Wersja 1.2.0-alpha02 zawiera te commity.
Wersja 1.2.0-alpha01
12 stycznia 2022 r.
Funkcje 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ą dostępne. Wersja 1.2.0-alpha01 zawiera te commity.
Zmiany w interfejsie API
- Aby załadować plik zasobów
<animated-vector>
, użyj poleceniaAnimatedImageVector.animatedVectorResource
zamiastanimatedVectorResource
.- Aby renderować element
AnimatedImageVector
, użyj operatorarememberAnimatedVectorResource
zamiastAnimatedImageVector#painterFor
. (I9c300)
- Aby renderować element
Poprawki błędów
- Dodaj metody toString do klas Animatable i AnimationResult. (Icd3a6)
Aktualizacje zależności
- Teraz zależy od Kotlina
1.6.10
.
Wersja 1.1
Wersja 1.1.1
23 lutego 2022 r.
Funkcje 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ą dostępne. Wersja 1.1.1 zawiera te zatwierdzenia.
Poprawki błędów
- Napraw
NullPointerException
wandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
(aosp/1947059, b/206677462). - Naprawiono awarię spowodowaną przez zawartość schowka podczas odczytu ze schowka na Androidzie. (I06020, b/197769306)
- Naprawiono RTL w
LazyVerticalGrid
(aosp/1931080, b/207510535).
Wersja 1.1.0
9 lutego 2022 r.
Funkcje 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ą dostępne. Wersja 1.1.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.0.0
- stabilna obsługa efektu przewijania do końca w Androidzie 12,
- Ulepszone dopasowywanie rozmiaru dotyku
- Pamiętaj, że w wersji Compose 1.0 komponenty Material Design będą rozszerzać swoją przestrzeń układu, aby spełniać wytyczne Material Design dotyczące rozmiaru docelowego elementu dotykowego. Na przykład docelowy element dotykowy przycisku będzie miał minimalny rozmiar 48 x 48 dp, nawet jeśli ustawisz mniejszy rozmiar przycisku. Dzięki temu komponenty Compose będą działać tak samo jak komponenty Material Design, co zapewni spójność, jeśli użyjesz widoków i Compose. Ta zmiana zapewnia też, że podczas tworzenia interfejsu użytkownika za pomocą komponentów Compose Material zostaną spełnione minimalne wymagania dotyczące dostępności docelowych elementów dotykowych.
- stabilna obsługa kolumny nawigacji,
- przekształciliśmy kilka wcześniej eksperymentalnych interfejsów API w stabilne.
- Obsługa nowszych wersji Kotlina
Wersja 1.1.0-rc03
26 stycznia 2022 r.
Funkcje 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ą dostępne. Wersja 1.1.0-rc03 zawiera te commity.
Poprawki błędów
- Zaktualizowano, aby obsługiwać Compose Material 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
są dostępne. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Aby załadować plik zasobów
<animated-vector>
, użyj poleceniaAnimatedImageVector.animatedVectorResource
zamiastanimatedVectorResource
.- Aby renderować element
AnimatedImageVector
, użyj operatorarememberAnimatedVectorResource
zamiastAnimatedImageVector#painterFor
. (I9c300)
- Aby renderować element
Wersja 1.1.0-beta04
1 grudnia 2021 r.
Funkcje 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ą dostępne. Wersja 1.1.0-beta04 zawiera te commity.
Nowe funkcje
- Zaktualizowano, aby zapewnić zgodność z Kotlin
1.6.0
Wersja 1.1.0-beta03
17 listopada 2021 r.
Funkcje 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ą dostępne. Wersja 1.1.0-beta03 zawiera te commity.
Zmiany w interfejsie API
- Dodano nowy modyfikator Modifier.onPlaced, aby umożliwić obserwowanie zmiany położenia. W związku z obserwowaną zmianą miejsca docelowego można wprowadzić dodatkowe zmiany w przesunięciu modyfikatora podrzędnego. (I558fd)
Nowe wsparcie dla klucza treści w funkcji Przejścia. ContentKey będzie używany do sprawdzania równości przez system animacji. Dlatego niestandardowe porównywanie stanów można uzyskać, podając odpowiedni klucz treści dla różnych stanów.
Klucz treści 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.
Funkcje 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ą dostępne. Wersja 1.1.0-beta02 zawiera te commity.
Poprawki błędów
- Nowe interfejsy API animacji do obsługi narzędzi. W szczególności umożliwiają one narzędziom sprawdzenie animacji i ich konfiguracji w sekcji Przejścia. (I4116e)
Wersja 1.1.0-beta01
27 października 2021 roku
Funkcje 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ą dostępne. Wersja 1.1.0-beta01 zawiera te commity.
Zmiany w interfejsie API
- Nowe interfejsy API animacji do obsługi narzędzi. W szczególności umożliwiają one narzędziom sprawdzenie animacji i ich konfiguracji w sekcji Przejścia. (I4116e)
Wersja 1.1.0-alpha06
13 października 2021 r.
Funkcje 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ą dostępne. Wersja 1.1.0-alpha06 zawiera te commity.
Wersja 1.1.0-alpha05
29 września 2021 r.
Funkcje 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ą dostępne. Wersja 1.1.0-alpha05 zawiera te commity.
Zmiany w interfejsie API
Interfejsy API
EnterTransition
,ExitTransition
i niektóre interfejsyAnimatedVisibility
są już stabilne. FunkcjaMutableTransitionState.isIdle
nie jest już eksperymentalna. (I5072d)Znacząca zmiana: funkcje lambda 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.
Funkcje 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ą dostępne. Wersja 1.1.0-alpha04 zawiera te commity.
Wersja 1.1.0-alpha03
1 września 2021 roku
Funkcje 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ą dostępne. Wersja 1.1.0-alpha03 zawiera te commity.
Nowe funkcje
- Zaktualizowano Compose
1.1.0-alpha03
, aby zależało od Kotlina1.5.30
. (I74545)
Wersja 1.1.0-alpha02
18 sierpnia 2021 r.
Funkcje 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ą dostępne. Wersja 1.1.0-alpha02 zawiera te commity.
Zmiany w interfejsie API
- Parametr StartOffset jest teraz obsługiwany w przypadku elementów repeatable i infiniteRepeatable jako sposób opóźnienia czasu rozpoczęcia lub przewinięcia animacji przed jej rozpoczęciem. Ten przesunięcie początkowe nie zostanie powtórzone (Ic679f, b/195079908)
- Nowy przekształcenie 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.
Funkcje 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ą dostępne. Wersja 1.1.0-alpha01 zawiera te commity.
Zmiany w interfejsie API
- Interfejs
AnimatedImageVector
i powiązane z nim 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
są dostępne. Wersja 1.0.5 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono problem ze śledzeniem awarii w przypadku 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
są dostępne. Wersja 1.0.4 zawiera te zatwierdzenia.
Aktualizacje zależności
- Zaktualizowano zależność od Kotlina
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
są dostępne. Wersja 1.0.3 zawiera te zatwierdzenia.
Aktualizacje zależności
- Zaktualizowano zależność od Kotlina
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
są dostępne. Wersja 1.0.2 zawiera te zatwierdzenia.
Zaktualizowano, aby obsługiwać wersję 1.0.2
aplikacji 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
są dostępne. Wersja 1.0.1 zawiera te zatwierdzenia.
Aktualizacje zależności
- Zaktualizowano, aby zależało od Kotlina
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
są dostępne. Wersja 1.0.0 zawiera te zatwierdzenia.
Najważniejsze funkcje wersji 1.0.0
To pierwsza stabilna wersja Compose. Więcej informacji znajdziesz na oficjalnym blogu Compose Release.
Znane problemy
Jeśli używasz Android 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 wyższej w pliku
build.gradle
. Ten problem zostanie rozwiązany w następnej wersji Android 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
są dostępne. Wersja 1.0.0-rc02 zawiera te zatwierdzenia.
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
są dostępne. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
- Urządzenie
InfiniteAnimationPolicy
zostało przeniesione do jednostki organizacyjnejandroidx.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
są dostępne. Wersja 1.0.0-beta09 zawiera te commity.
Zmiany w interfejsie API
- Nowa kompozycja
AnimatedContent
. Zarządza zmianami treści za pomocą dostosowywalnychContentTransform
, gdy nowe treści docelowe są dodawane, a pierwotne treści są usuwane. Aby uzyskać niepowtarzalny wygląd i odczucie, możesz użyć różnych kombinacji przejść w ramach i poza nim. W ramach przekształcania treściAnimatedContent
automatycznie animuje swój rozmiar, aby pasował do przychodzących treści. (I2c3df) - Użytkownik
ManualFrameClock
został usunięty. Jeśli chcesz sterować animacjami, użyj zamiast tegocomposeTestRule.mainClock
. (I3c3e8, b/189951065)
Dodano reguły profilu
W tej wersji dodaliśmy reguły profilu do tych modułów tworzenia wiadomości (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
Co to są reguły profilu?
Reguły profilu biblioteki są określone w pliku tekstowym
baseline-prof.txt
znajdującym się w katalogusrc/main
lub równoważnym. Plik określa regułę na wiersz, gdzie reguła w tym przypadku jest wzorcem dopasowywania do metod lub klas w bibliotece. Składnia tych reguł jest superzbiorem czytelnego dla człowieka formatu profilu ART, który jest używany podczas korzystania zadb shell profman --dump-classes-and-methods ...
. Te reguły mogą mieć jedną z 2 form, aby kierować się na metody lub klasy.Reguła metody będzie miała ten wzór:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Reguła klasy będzie miała ten wzór:
<CLASS_DESCRIPTOR>
Tutaj
<FLAGS>
to co najmniej jeden z znakówH
,S
lubP
, który wskazuje, czy ta metoda powinna być oznaczona jako „Aktywna”, „Uruchamianie” lub „Po uruchomieniu”.<CLASS_DESCRIPTOR>
to deskryptor klasy, do której należy docelowa metoda. Na przykład klasaandroidx.compose.runtime.SlotTable
miałaby opisLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
to sygnatura metody, która zawiera nazwę, typy parametrów i typ zwracany metody. Na przykład metodafun isPlaced(): Boolean
w klasieLayoutNode
ma sygnaturęisPlaced()Z
.Te wzorce mogą zawierać symbole wieloznaczne (
**
,*
i?
), aby jedno reguła obejmowała wiele metod lub klas.
Do czego służą zasady?
Metoda z flagą
H
wskazuje, że jest to metoda „gorąca” i należy ją skompilować z wyprzedzeniem.Metoda z flagą
S
wskazuje, że jest to metoda wywoływana podczas uruchamiania i powinna zostać skompilowana wcześniej, aby uniknąć kosztów kompilacji i interpretacji metody podczas uruchamiania.Metoda z flagą
P
wskazuje, że jest wywoływana po uruchomieniu.Klasa obecna w tym pliku wskazuje, że jest używana podczas uruchamiania i powinna być wstępnie przydzielona w pniu, aby uniknąć kosztów wczytywania klasy.
Jak to działa?
- Biblioteki mogą definiować te reguły, które zostaną zapakowane w elementy AAR. Gdy skompilowana aplikacja zawiera te elementy, reguły są scalane, a scalane reguły są używane do tworzenia kompaktowego binarnego profilu ART, który jest specyficzny dla aplikacji. ART może następnie wykorzystać ten profil, gdy aplikacja zostanie zainstalowana na urządzeniach, aby z wyprzedzeniem skompilować określony podzbiór aplikacji w celu poprawy jej wydajności, zwłaszcza podczas pierwszego uruchomienia. Pamiętaj, że nie będzie to miało wpływu na aplikacje z możliwością debugowania.
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
są dostępne. Wersja 1.0.0-beta08 zawiera te commity.
Poprawki błędów
- Teraz funkcje
detectDragGesures
,detectVerticalGestures
idetectHorizontalGestures
będą automatycznie przetwarzać zmiany pozycji, więc nie trzeba wywoływać funkcji change.consumePositionChange w obsługach zwrotnych onDrag (I42fc4, b/185096350, b/187320697) Modifier.onGloballyPositioned()
zostało zmienione, 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 na to, jakie współrzędne zostaną zgłoszone. (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
są dostępne. Wersja 1.0.0-beta07 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Nowy interfejs API
AnimatedVisibility
, który obsługuje widoczność określoną wMutableTransitionState
. Dzięki temu stany animacji można obserwować na zewnątrzAnimatedVisibility
za pomocącurrentState
iisIdle
.- Nowe wsparcie dotyczące przenoszenia kont dzieci w Transition
- Obsługa niestandardowej animacji przejścia z wyjścia na wejście w AnimatedVisibility za pomocą AnimationScope.transition
- Nowy modyfikator animateEnterExit, dostępny dla wszystkich elementów podrzędnych AnimatedVisibility
- Wycofano interfejsy API AnimatedVisibility, 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
są dostępne. Wersja 1.0.0-beta06 zawiera te zatwierdzenia.
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
są dostępne. Wersja 1.0.0-beta05 zawiera te commity.
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
są dostępne. Wersja 1.0.0-beta04 zawiera te commity.
Zmiany w interfejsie API
- Usunięto publiczne wystąpienia parametrów
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
są dostępne. Wersja 1.0.0-beta03 zawiera te komitowane 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
są dostępne. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Wdrożenie ograniczeń dotyczących publicznego używania 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
są dostępne. Wersja 1.0.0-beta01 zawiera te commity.
To pierwsza wersja Compose 1.0.0 w wersji beta.
Zmiany w interfejsie API
- Wartość
InteractionState
została zastąpiona wartością[Mutable]InteractionSource
- Interfejsy odpowiadają za emitowanie i zbieranie zdarzeń interakcji.
- Zamiast przekazywania wartości
interactionState = remember { InteractionState() }
do komponentów takich jakButton
iModifier.clickable()
, użyj wartościinteractionSource = remember { MutableInteractionSource() }
. - Zamiast:
Interaction.Pressed in interactionState
użyj funkcji rozszerzenia w źródle interakcji, np. InteractionSource.collectIsPressedAsState(). - W skomplikowanych przypadkach możesz używać parametru InteractionSource.interactions do obserwowania strumienia interakcji. Więcej informacji znajdziesz w dokumentacji i przykładach dotyczących źródła interakcji.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Pakiety metod smoothScrollBy i scrollBy zostały zmienione na
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473) - Zmieniliśmy nazwy modyfikatorów rozmiaru. Zmienne width/height/size zostały przemianowane na requiredWidth/requiredHeight/requiredSize. Nazwa Modifier.preferredWidth/preferredHeight/preferredSize została zmieniona na width/height/size. (I5b414)
- Orientacja została przeniesiona do pakietu podstawy. Moduł VelocityTracker został przeniesiony z ui.gesture do ui.input.pointer. (Iff4a8, b/175294473)
- Klasa AnimationClockObservable i jej podklasy zostały usunięte. AnimatedFloat został usunięty. (Icde52, b/177457083)
- Funkcja Modifier.draggable przyjmuje teraz typ DraggableState zamiast prostej funkcji lambda. Możesz utworzyć stan za pomocą funkcji
rememberDraggableState { delta -> }
, aby uzyskać takie samo zachowanie jak wcześniej (Ica70f, b/175294473) - Interfejsy API animate, animatedValue i AnimatedValue zostały usunięte (If27bc, b/177457083)
- Parametr AnimationEndReason.Interrupted został usunięty. Jeśli animacja zostanie przerwana, zostanie rzucony 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
są dostępne. Wersja 1.0.0-alpha12 zawiera te commity.
Zmiany w interfejsie API
Modifier.pointerInput
wymaga teraz kluczy zapamiętania, aby wskazać, kiedy coroutine wykrywania wejścia wskaźnika powinna zostać ponownie uruchomiona w przypadku nowych zależności. (I849cd)- Nazwa Bounds została zmieniona na DpRect (I4b32a).
- W całym systemie animacji zmodyfikowano nazwę parametru AnimationSpec na animationSpec. Ogranicz też animację wejścia/wyjścia, aby akceptowała specyfikację animacji FiniteAnimationSpec. (Ie47c5, b/177457083)
- Funkcje Animatable.snapTo i Animatable.stop są teraz funkcjami zawieszania (If4288)
- Podobnie jak w przypadku usunięcia kompozytowego komponentu
state { 0 }
i promocji komponenturemember { mutableStateOf(0) }
, usuniemy komponentsavedInstanceState { 0 }
. Zamiast tego użyj funkcjirememberSaveable { mutableStateOf(0) }
, która automatycznie zapisuje i przywraca stan, jeśli typ użyty w MutableState może być przechowywany w pakiecie. Jeśli wcześniej przekazywałeś niestandardowy obiekt zapisywania, teraz musisz użyć nowej przeciążonej funkcji rememberSaveable, która ma parametrstateSaver
. Użycie będzie wyglądać tak:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - Zaktualizowano sygnaturę metody przejścia płynnego, aby była bardziej spójna z pozostałymi elementami systemu animacji. (Ib05ed, b/177457083)
- Metoda rememberSavedInstanceState() została przemianowana na rememberSaveable() i przeniesiona do pakietu androidx.compose.runtime.saveable. (I1366e, b/177338004)
- Klasa RestorableStateHolder została przemianowana na SaveableStateHolder i przeniesiona do pakietu androidx.compose.runtime.saveable. Metoda wewnętrzna RestorableStateProvider została przemianowana na SaveableStateProvider. Typ ogólny został usunięty, więc możesz przekazać dowolny typ jako klucz. Eksperymentalne oznaczenia nie są już potrzebne. (I0902e, b/174598702)
- Zaktualizowano interfejs API Modifier.animateContentSize, aby był spójny z pozostałymi elementami systemu animacji. (I0bf75, b/177457083)
- Element AnimatedValue/Float został wycofany. Zamiast tego użyj interfejsu Animatable. (I71345, b/177457083)
- Filtry tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter i pressIndicaitonGestureFilter zostały wycofane. Zamiast tego użyj Modifier.clickable lub Modifier.pointerInput z funkcją detectTapGestures. (I6baf9, b/175294473)
- Wprowadziliśmy element
InfiniteAnimationPolicy
kontekstu coroutine, który będzie stosowany w nieskończonych animacjach. Domyślnie nie jest instalowana żadna zasada, z wyjątkiem testów z użyciemComposeTestRule
. (I50ec4, b/151940543) - Metody destrukturyzacji i copy() zostały usunięte z kilku klas, w których były rzadko używane. (I26702, b/178659281)
- Czas odtwarzania w animacji jest teraz nieskończony do nanosekund (If776a)
- Element compose:runtime-dispatch został wycofany. MonotonicFrameClock znajdziesz teraz w komponencie compose:runtime, a AndroidUiDispatcher – w komponencie compose:ui. (Ib5c36)
- Dodano
Animation.isInfinite
iVectorizedAnimationSpec.isInfinite
, które sygnalizują, czy animacja jest nieskończona. Można go wykorzystać w implementacjach animacji, aby zapewnić specjalne ich traktowanie. Możesz na przykład wyświetlić specjalny komunikat „Czas pozostały do…” lub podczas testów anulować animację, aby uniknąć oczekiwania na nieskończony czas. (Iebb05, b/151940543) - Użycie typu animacji Długo zamiast Czas działania (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
są dostępne. Wersja 1.0.0-alpha11 zawiera te commity.
Zmiany w interfejsie API
- Wycofanie przejścia opartego na TransitionDefinition (I0ac57)
- Dodano pole etykiety dla przejść i animacji podrzędnych, które mają być wyświetlane w narzędziach (I619fb)
- Funkcja animateAsState została zastąpiona przez animateFooAsState, gdzie Foo to typ zmiennej, której dotyczy animacja, np. Float, Dp, Offset itp. (Ie7e25)
- Nowa animacja InfiniteTransition, która może zawierać dowolną liczbę podrzędnych animacji. (I1da81)
- Zmiana interfejsów parametrów stanu Material, aby zawierały funkcje @Composable zwracające
State<T>
. Dodaje funkcję Animatable.asState(), która ułatwia konwertowanie obiektu Animatable na obiekt State. Zmienia też animateElevation na zawieszone rozszerzenie w Animatable. (If613c)
Poprawki błędów
- Interfejsy onCommit, onDispose i onActive zostały wycofane na rzecz interfejsów SideEffect i DisposableEffect (If760e).
- Stan początkowy w updateTransition jest teraz obsługiwany (Ifd51d)
- Do obrazu i ikony dodano parametr opisu treści. Służy do przekazywania opisu usług ułatwień dostępu (I2ac4c).
- Funkcje invalidate i compositionReference() zostały wycofane na rzecz funkcji currentRecomposeScope i rememberCompositionReference. (I583a8)
- Czas trwania i czas działania zostaną zastąpione wartością Długie milisekundy. Ten krok usuwa zależność od wejścia wskaźnika w tych klasach. (Ia33b2, b/175142755, b/177420019)
- Teraz można tworzyć elementy klikalne, przełączalne i wybierane poza kompozycją (I0a130, b/172938345, b/175294473).
- Zmiana interfejsu wygładzania na interfejs funkcjonalny (Ib14e5)
- Nowa metoda fabryczna
items(count: Int)
dla zakresu LazyColumn/LazyRow/LazyVerticalGrid. Funkcjeitems(items: List)
iitemsIndexed(items: List)
są teraz funkcjami rozszerzenia, więc musisz je ręcznie importować. Nowe przeciążenia rozszerzeń dla tablic: items(items: Array) i itemsIndexed(Array) (I803fc, b/175562574) - Korzystanie z TestCoroutineDispatcher w testach (I532b6)
- Usunięto typ danych PointerInputData i zmodyfikowano typ danych PointerInputChange, aby zawierał on wszystkie pola typu danych PointerInputData. Zdarzenie PointerInputEvent i zdarzenie PointerInputEventData są teraz wewnętrzne, 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
są dostępne. Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmodyfikowano funkcję Velocity, aby zawierała elementy składowe i operacje matematyczne. (Ib0447)
- Zmieniono nazwę
@ExperimentalTesting
na@ExperimentalTestApi
, aby zachować spójność z podobnymi adnotacjami interfejsów eksperymentalnych (Ia4502, b/171464963). - Zmieniono nazwę pozycji na DpOffset i usunięto funkcję getDistance() (Ib2dfd).
- Usunięto publiczny interfejs API Any.identityHashCode() (I025d7)
Poprawki błędów
- Nowy interfejs API oparty na korobonach
Animatable
, który zapewnia wzajemną wykluczalność animacji. Nowy specyfikacja animacji zanikania, która obsługuje animacje zanikania wielowymiarowe (I820f2, b/168014930) - Wartość
animate()
została zastąpiona wartościąanimateAsState()
, która zwraca wartośćState<T>
zamiastT
. Dzięki temu można uzyskać lepszą wydajność, ponieważ zakres unieważnienia można zawęzić do miejsca, w którym odczytana 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
są dostępne. Wersja 1.0.0-alpha09 zawiera te commity.
Zmiany w interfejsie API
- Przeniesienie klasy Dp.VectorConverter, Position.VectorConverter itp. do pakietu animation-core i wycofanie starych klas VectorConveters (If0c4b).
- Wprowadziliśmy zupełnie nowy zestaw interfejsów Transition API, który jest łatwiejszy w użyciu i obsługuje dynamicznie dodawane animacje oraz dynamicznie obliczane cele animacji. Te interfejsy API są oznaczone jako eksperymentalne, aby ułatwić odróżnienie ich od interfejsu API opartego na TransitionDefinition. (Ia7fe3)
Poprawki błędów
- Lambda w modyfikatorach przesunięcia zwraca teraz IntOffset zamiast Float. (Ic9ee5, b/174137212, b/174146755)
- Wycofanie funkcji LazyColumnFor, LazyRowFor, LazyColumnForIndexed i LazyRowForIndexed. Zamiast tego użyj LazyColumn i LazyRow (I5b48c)
- W przypadku zawieszania interfejsów API związanych z wskaźnikiem zmieniono nazwy: HandlePointerInputScope na AwaitPointerEventScope i handlePointerInput() na awaitPointerEventScope(). (Idf0a1, b/175142755)
- Nowa funkcja infiniteRepeatable do tworzenia specyfikacji nieskończonej powtarzalności (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
są dostępne. Wersja 1.0.0-alpha08 zawiera te commity.
Zmiany w interfejsie API
- Dodano sprawdzanie lint pod kątem nazw i pozycji parametrów funkcji kompozytowych lambda, aby sprawdzić zgodność z wytycznymi Compose.
Zgodnie z instrukcjami i sprawdzaniem błędów niektóre interfejsy API, które używają nazwy
children
jako nazwy funkcji lambda na końcu, zostały przeniesione docontent
. (Iec48e) - Usunięto wycofane wcześniej interfejsy API:
- Karta
Modifier.onPositioned
została usunięta, użyj kartyModifier.onGloballyPositioned
. - Karta
Modifier.onDraw
została usunięta, użyj kartyModifier.onDrawBehind
. - Karta
Modifier.plus
została usunięta, użyj kartyModifier.then
. - Karta
Color.Unset
została usunięta, użyj kartyColor.Unspecified
. - Klasa
PxBounds
została usunięta. Zamiast niej używaj klasyRect
. - (Ie9d02, b/172562222)
- Karta
- Tymczasowo dodano opcję, która pozwala sterować TestAnimationClock za pomocą MonotonicFrameClock (I1403b, b/173402197).
Poprawki błędów
- Zmieniliśmy nazwę Modifier.drawLayer na Modifier.graphicsLayer. Zaktualizowaliśmy też powiązane klasy na GraphicsLayer zgodnie z opiniami Rady API. (I0bd29, b/173834241)
- Dodano interfejsy API Modifier.scale/rotate do ułatwienia korzystania z drawLayer.
- Zmieniono nazwę Modifier.drawOpacity na Modifier.alpha.
- Zmieniono nazwę Modifier.drawShadow na Modifier.shadow (I264ca, b/173208140).
- Ustawienie pól uptime i position w danych PointerInputData tak, aby nie mogły być puste. (Id468a)
- Modyfikatory offsetPx zostały przemianowane na offset. Teraz zamiast stanu przyjmują one parametry lambda. (Ic3021, b/173594846)
- Nowe interfejsy API do uruchamiania animacji w korobodach (Ied662)
- wycofane ambienty o nazwach zawierających sufiks
Ambient
i zastąpione nowymi właściwościami z prefiksem Ambient zgodnie z innymi wytycznymi dotyczącymi ambientów i interfejsu Compose API; (I33440) - Kontrola czasu w testach (TestAnimationClock i jego użycia) jest teraz eksperymentalna (I6ef86, b/171378521).
- Usuwanie starego modułu testu UI i jego zastępników (I3a7cb)
- Funkcja
RestorableStateHolder.withRestorableState
została przemianowana naRestorableStateProvider
(I66640) - Interfejs wyrównywania został zaktualizowany i stał się 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
są dostępne. Wersja 1.0.0-alpha07 zawiera te commity.
Poprawki błędów
- Podstawowe atrybuty AmbientTextStyle, ProvideTextStyle i AmbientContentColor zostały wycofane. Zamiast tego użyj nowych wersji dostępnych w bibliotece Material. W przypadku aplikacji, które nie są zgodne z Material Design, należy utworzyć własne motywy tematyczne, które można wykorzystać w komponentach. (I74acc, b/172067770)
- Komponent foundation.Text został wycofany i zastąpiony komponentem material.Text. Interfejs API tekstowy podstawowy, który nie używa wartości z motywu, znajdziesz w bibliotece androidx.compose.foundation.BasicText. (If64cb)
- MeasureResult został przeniesiony z MeasureScope. (Ibf96d, b/171184002)
- Kilka symboli związanych z układem zostało przeniesionych z androidx.compose.ui do 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
są dostępne. Wersja 1.0.0-alpha06 zawiera te commity.
Zmiany w interfejsie API
- Włącz przejścia w komponencie ComposeTestRule. Usuń z niego opcję włączania migającego kursora. (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
są dostępne. Wersja 1.0.0-alpha05 zawiera te commity.
Zmiany w interfejsie API
- Nowy interfejs Animation i podklasy: te klasy przechowują warunki początkowe i końcowe animacji, dzięki czemu umożliwiają wysyłanie zapytań dotyczących wartości i prędkości tylko w ramach czasu odtwarzania (Ie95bd, b/163329867)
Poprawki błędów
- Zmiana nazwy metody OnPositionedModifier na OnGloballyPositionedModifier oraz metody onPositioned() na onGloballyPositioned(). (I587e8, b/169083903)
Wycofane zostaną interfejsy API contentColor() i currentTextStyle(), a zamiast nich zostaną wprowadzone odpowiednio ambienty AmbientContentColor i AmbientTextStyle. Do bieżącej wartości możesz uzyskać dostęp, używając wartości
.current
w przypadku właściwości ambient, tak jak w przypadku innych wartości ambient. Ta zmiana została wprowadzona w celu zapewnienia spójności i uniknięcia konieczności korzystania z różnych sposobów na osiągnięcie tego samego celu. Dodatkowo zmienia nazwy niektórych właściwości środowiska, aby lepiej opisywać ich przeznaczenie. Nowe nazwy:- 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
są dostępne. Wersja 1.0.0-alpha04 zawiera te commity.
Zmiany w interfejsie API
- Dodała adnotacje do rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled i textInputServiceFactory z dodatkiem @VisibleForTesting, aby uczynić je wewnętrznym interfejsem API i ukryć ich kdoc (I554eb, b/168308412).
Poprawki błędów
- Zaktualizowano wiele interfejsów API do obsługi grafiki.
- Zaktualizowane interfejsy API do skalowania i obrotu, aby używały pojedynczego parametru Offset zamiast oddzielnych parametrów typu float dla współrzędnych x/y w DrawScope i DrawTransform
- Usunięto metody Rect.expandToInclude i Rect.join
- Zaktualizowano dokumentację Radius, aby zawierała informacje o elipsy w dodatku do eliptyczne
- Dodano dokumentację, aby wskazać, że publicznego konstruktora w ramach klasy Inline Radius nie należy wywoływać bezpośrednio, ale zamiast tego instancje obiektów Radius należy tworzyć za pomocą konstruktorów funkcji.
- Usunięto interfejsy API RoundRect do zapytań topRight, bottomRight, bottomCenter itp.
- Wycofanie funkcji Rect.shift na rzecz funkcji Rect.translate
- Usunięto interfejsy API RoundRect.grow i Rect.shrink
- Zmieniono nazwę RoundRect.outerRect na Rect.boundingRect.
- Usunięto metody RoundRect.middleRect/tallMiddleRect/wideMiddleRect i Rect.isStadium
- Zmieniono nazwę RoundRect.longestSide na RoundRect.maxDimension.
- Zmieniono nazwę RoundRect.shortestSide na RoundRect.minDimension.
- Zmiana funkcji RoundRect.center na właściwość zamiast funkcji
- Zaktualizowano konstruktor RoundRect, aby używał właściwości Radius zamiast poszczególnych parametrów wartości promienia x/y.
- Usunięto interfejsy API dotyczące rozmiaru, które zakładały, że jest to prostokąt z początkiem w punkcie 0,0.
- Dodano do Radius interfejs API do niszczenia
- Przeniesienie różnych funkcji rozszerzenia RoundRect do właściwości
- (I8f5c7, b/168762961)
- Element foundation.Box został wycofany. Zamiast tego użyj elementu foundation.layout.Box. (Ie5950, b/167680279)
- Grupa została przemianowana na Box. Dotychczasowe pole Box zostanie wycofane na rzecz nowego pola Box w komponencie compose.foundation.layout. Nowa ramka układa elementy podrzędne jeden na drugim, gdy ma ich kilka. Wcześniej działała ona podobnie jak kolumna. (I94893, b/167680279)
- Parametry dekoracji pudełka zostały wycofane. Jeśli chcesz użyć dekoracji lub wypełnienia w pudełku, użyj modyfikatorów (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- Zablokowaliśmy importowanie statyczne zawartości zakresów układu (np. alignWithSiblings w RowScope). Zamiast tego należy użyć opcji z wyraźnym zakresem:
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
są dostępne. Wersja 1.0.0-alpha03 zawiera te commity.
Poprawki błędów
- W interfejsach API dotyczących układu nazwy metod związanych 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
są dostępne. Wersja 1.0.0-alpha02 zawiera te commity.
Zmiany w interfejsie API
Dodano
ManualFrameClock.hasAwaiters
, aby sprawdzić, czy coś oczekuje na ramkę z tego zegara;runWithManualClock
jako zamiennikrunBlocking
podczas wykonywania testów, które wymagają zegara ManualFrameClock;TestUiDispatcher.Main
, który zapewnia łatwy dostęp do głównego rozsyłarki interfejsu użytkownika 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
Metoda onPreCommit została wycofana. Metoda onCommit ma teraz zachowanie takie jak onPreCommit.
Teraz funkcje onCommit i onActive są wykonywane w tym samym interwale, w którym są wprowadzane zmiany w kompozycji, a nie na początku następnego interwału. (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
są dostępne. Wersja 1.0.0-alpha01 zawiera te commity.
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
są dostępne. Wersja 0.1.0-dev17 zawiera te commity.
Nowe funkcje
Zmiany w interfejsie API
- Offset stał się klasą wbudowaną (Iaec70)
- IntOffset jest teraz klasą wbudowaną (Iac0bf)
- IntSize jest teraz klasą wbudowaną (I2bf42).
Element AnimatedVisibilty animuje pojawianie się i znikanie treści.
Wprowadziliśmy przejścia wejścia i wyjścia, które współpracują z komponewalnym komponentem AnimatedVisibilty, aby zapewnić 3 różne typy animacji pojawiania się i znikania: znikanie, przesuwanie i rozszerzanie/zwężanie zawartości. Różne typy animacji można łączyć, aby uzyskać bardziej niepowtarzalny wygląd i styl. (Idda11)
PxBounds jest nieużywany na rzecz Rect. Zaktualizowano wszystkie przypadki użycia PxBounds na rect i dodano odpowiednie adnotacje wycofywania/zastępowania, 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 rezultacie metodaPlacementScope.place()
nie będzie już automatycznie odzwierciedlać pozycji w kontekście od prawej do lewej. W takim przypadku użyj zamiast tego polaPlacementScope.placeRelative()
. (I873ac, b/162916675) - Właściwość
state { ... }
została wycofana na rzecz wywołań funkcjiremember { mutableStateOf(...) }
, aby zwiększyć przejrzystość. Dzięki temu zmniejsza się ogólna powierzchnia interfejsu API i liczba pojęć związanych z zarządzaniem stanem oraz dopasowuje się do wzoruby mutableStateOf()
dotyczącego 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
są dostępne. Wersja 0.1.0-dev16 zawiera te commity.
Zmiany w interfejsie API
- Wbudowane konwertery wektorów do konwertowania wbudowanych jednostek są teraz dostępne w sekcji
Foo.VectorConverter
. np.Dp.VectorConverter
,Color.VectorConverter
,Float.VectorConverter
itp. (I3e273) - Obsługa listenera end w
Modifier.animateContentSize()
, tak aby po zakończeniu animacji zmiany rozmiaru został on powiadomiony wraz z rozmiarem początkowym i końcowym animacji. (I277b2) - Nowy modyfikator animateContentSize, który animuje zmianę rozmiaru układu w modyfikatorze podrzędnym (Ieffdc)
Dodano
MonotonicFrameAnimationClock
, który umożliwia użycie MonotonicFrameClock jakoAnimationClockObservable
, aby wypełnić lukę między nowymi zegarami opartymi na korobonach a interfejsami API, które nadal używają starych zegarów opartych na wywołaniu zwrotnym.MonotonicFrameClock
jest teraz odpowiednikiemManualAnimationClock
.ManualFrameClock
(I111c7, b/161247083)
Poprawki błędów
- Zaktualizowano interfejsy API obsługujące tekst od prawej do lewej. Dodano atrybut LayoutDirectionAmbient, który umożliwia odczytywanie i zmienianie kierunku układu. Zmienniki Modifier.rtl i Modifier.ltr zostały usunięte. (I080b3)
- Wymagaj jawnego określenia typu T w przypadku transitionDefinition. (I1aded)
- Pakiet foundation.shape.corner został uproszczony do foundation.share (I46491, b/161887429)
- Interfejs Modifier.plus został wycofany. Zamiast niego używaj interfejsu Modifier.then. „Then” ma silniejszy sygnał dotyczący kolejności, ale jednocześnie uniemożliwia wpisanie
Modifier.padding().background() + anotherModifier
, co powoduje przerwanie łańcucha i utrudnia czytanie (Iedd58, b/161529964) - Modifier.drawBackground został przemianowany 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
są dostępne. Wersja 0.1.0-dev15 zawiera te commity.
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ł stan przejścia (TransitionState) zamiast przekazywać go do elementów podrzędnych. Dzięki temu interfejs API jest bardziej spójny z interfejsami animate(). (I24e38)
- Dodano parametr modyfikatora dla funkcji Przenikanie (I87cfe, b/159706180)
- Aby wyjaśnić pojęcie specyfikacji animacji statycznej, w interfejsach API najwyższego poziomu używaj AnimationSpec zamiast AnimationBuilder.
- Ulepszenie DSL przejścia przez usunięcie wymagań lambda dotyczących tworzenia specyfikacji animacji, takich jak tween czy spring. Zamiast tego używają parametrów konstruktora.
- Ułatwienie korzystania z klasy AnimationSpec przez udostępnienie konstruktorów zamiast polegania na budowniczych
- Zmień czas trwania i opóźnienie kluczowych klatek oraz Tween na Int. Pozwoli to wyeliminować niepotrzebne konwersje typu i przeciążenie metody (w przypadku obsługi zarówno Long, jak i Int). (Ica0b4)
- Zastąpiono użycie funkcji IntPx za pomocą funkcji Int. Zastąpiono funkcję IntPxPosition za pomocą funkcji IntOffset. Zmienna IntPxSize została zastąpiona zmienną IntSize. (Ib7b44)
- Aby skonsolidować liczbę klas używanych do reprezentowania informacji o rozmiarze, zamiast klasy PxSize użyj klasy Size. Daje to korzyści płynące z klasy wbudowanej, która wykorzystuje typ long do pakowania 2 wartości zmiennoprzecinkową, aby reprezentować szerokość i wysokość jako zmiennoprzecinkową. (Ic0191)
- Aby skonsolidować liczbę klas używanych do reprezentowania informacji o pozycjonowaniu, zamiast klasy PxPosition użyj klasy Offset. Daje to korzyści płynące z klasy wbudowanej, która wykorzystuje typ long do pakowania 2 wartości zmiennoprzecinekowych, aby reprezentować przesunięcia X i Y jako zmiennoprzecinkowe. (I3ad98)
- W ramach dużego refactoringu zastąpiliśmy użycie klasy Px w różnych kompozytowych klasach, aby polegać tylko na typach Dp i pierwotnych w przypadku parametrów pikseli (I086f4)
- Dodano obsługę funkcji animate() w przypadku właściwości Dp, Px, Size, Position, Bounds, PxPosition, PxSize, PxBounds, IntPx, IntPxSize, IntPxPosition, IntPxBounds i AnimationVector (Ib7518).
- Przejście akceptuje teraz opcjonalny parametr AnimationBuilder, który umożliwia konfigurowanie animacji (I6d6e0)
- Zastąpiono wszystkie przypadki użycia typu Color w interfejsie API, w których wartość może być null, wartością nienullową, oraz użyto Color.Unset zamiast null (Iabaa7).
- Usunięto klasę ValueHolder. Zrestrukturyzowano klasy AnimatedValue i AnimatedFloat, aby pole wartości animacji było abstrakcyjne, dzięki czemu podklasy mogą obserwować aktualizację wartości.
- Dodano klasy modelu dla AnimatedValue, AnimatedFloat itp.
- Dodano nowy zestaw lekkiego interfejsu API @Composable do animowania wartości. (I79530)
- Zmiany w interfejsie API ambients. Szczegółowe informacje znajdziesz w logach i dokumentacji
Ambient<T>
(I4c7ee, b/143769776). - Nowy tryb powtarzania: Odwrotnie. Ten tryb odwraca poprzednią iterację, gdy animacja powtarza się w RepeatableSpec lub VectorizedRepeatableSpec. (Ibe0f5)
- Dodatki do interfejsu API w ManualAnimationClock:
hasObservers: Boolean
i parametr konstruktoradispatchOnSubscribe: Boolean
(Iaa134). - Dodano interfejsy API do uzyskiwania minimalnych i maksymalnych wartości w AnimatedFloat (Icd9cc).
Poprawki błędów
- Nazwa
runOnIdleCompose
została zmieniona narunOnIdle
(I83607) - Zmieniliśmy nazwy kilku interfejsów API do testowania, aby były bardziej intuicyjne. Wszystkie interfejsy findXYZ zostały przemianowane na onNodeXYZ. Wszystkie interfejsy doXYZ zostały przemianowane na performXYZ. (I7f164)
- Wprowadziliśmy interfejsy API animacji bezstanowej niskiego poziomu. Te interfejsy API (I63bf7)
- Komponent Recompose nie jest już przydatną abstrakcją. Większość ponownych skompilowań powinna nastąpić w wyniku przypisania stanu zmiennego. W przypadku innych wartości zalecamy użycie funkcji
invalidate
, aby wywołać ponowne skompilowanie bieżącego zakresu. (Ifc992) - W ramach dużego refactoringu zastąpiliśmy użycie klasy Px w różnych klasach kompozytowych, aby w przypadku parametrów pikseli używać tylko typu dp i typów prymitywnych. Usunięto całą klasę Px (I3ff33)
- W ramach dużego refactoringu zastąpiliśmy użycie klasy Px w różnych kompozytowych klasach, aby polegać tylko na typach Dp i typach prymitywnych w przypadku parametrów pikseli (Id3434).
- Funkcja przejścia płynnego może teraz działać z wartością początkową null (Iad6a4, b/155947711)
- W ramach dużego refactoringu zastąpiliśmy użycie klasy Px w różnych kompozytowych klasach, aby polegać tylko na typach Dp i typach prymitywnych w przypadku parametrów pikseli (I19d02)
- Zbiorcze CanvasScope zostały scalone, więc teraz są tylko zbiorcze zakresy rysowania i zbiorczy zakresu rysowania treści. Zbiórczy CanvasScope został przemianowany na Zbiórcze zakresy rysowania. Zaktualizowano DrawScope w celu implementacji interfejsu Density i zapewnienia kierunku układu. Usunięto podklasę DrawScope w ContentDrawScope. Painter i PainterModifier zostały zaktualizowane tak, aby nie utrzymywać własności RTL, ponieważ DrawScope zapewnia ją już bez ręcznego podawania (I1798e).
- Zaktualizowano interfejsy API wyższego poziomu, które udostępniają canvas, tak aby zamiast tego udostępniały CanvasScope. Dzięki temu użytkownicy nie muszą już samodzielnie zarządzać obiektami w Paint. Użytkownicy, którzy nadal potrzebują dostępu do Canvas, mogą użyć metody rozszerzenia drawCanvas, która zapewnia wywołanie zwrotne do wydawania poleceń rysowania do Canvas. (I80afd)
- Dodano parametry verticalGravity i horizontalGravity odpowiednio do wiersza i kolumny. (I7dc5a)
- Nazwa modułu ui-text została zmieniona na ui-text-core (I57dec).
- Ulepszenie interfejsu DrawModifier API:
- Zmiana zakresu odbiornika dla metody draw() ContentDrawScope
- Usunięto wszystkie parametry w metodzie draw().
- DrawScope ma ten sam interfejs co poprzedni CanvasScope
- ContentDrawScope ma metodę drawContent() (Ibaced, b/152919067).
- Funkcje
runOnIdleCompose
irunOnUiThread
są teraz funkcjami globalnymi zamiast metodami w komponencie ComposeTestRule. (Icbe8f) - [Zmienne]Operatory delegujące właściwości stanu zostały przeniesione do rozszerzeń, aby umożliwić optymalizację delegowania właściwości w wersji Kotlin 1.4. Aby nadal korzystać z
by state { ... }
lubby mutableStateOf(...)
, dzwoniący muszą dodać importy. (I5312c) - Obiekt ColoredRect został wycofany. Zamiast tego użyj
Box(Modifier.preferredSize(width, height).drawBackground(color))
. (I499fa, b/152753731) - Zastąpiono operator Modifier plus funkcjami rozszerzenia fabrycznego (I225e4).
- Wycofany komponent Center. Należy go zastąpić modyfikatorem LayoutSize.Fill + LayoutAlign.Center lub jednym z komponowanych elementów Box lub Stack z odpowiednimi modyfikatorami (Idf5e0).
- Zmieniono nazwę LayoutFlexible na LayoutWeight. Parametr tight został przemianowany na fill. (If4738)
- Funkcja kompozytowa Opacity została zastąpiona modyfikatorem drawOpacity. (I5fb62)
- Testy korzystające z AndroidComposeTestRule zawierają teraz animację zegara w korzenia kompozycji, która umożliwia wstrzymanie, wznowienie i ręczne przewijanie. (Id54c5)
- Obsługa kierunku od prawej do lewej w modyfikatorze LayoutPadding (I9e8da)
- Density i DensityScope zostały połączone w jeden interfejs. Zamiast ambientDensity() możesz teraz użyć DensityAmbient.current. Zamiast withDensity(gęstość) wpisz tylko with(gęstość) (I11cb1)
- Dodano metody kopiowania do różnych typów wbudowanych klas, w tym:
- Przesunięcie
- Rozmiar
- Promień
- Ruch
- TransformOrigin
- Wycofana metoda obiektu towarzyszącego Size.copy na rzecz metody kopiowania instancji (Ife290, b/159905651)
- Interfejs androidx.compose.ViewComposer został przeniesiony do androidx.ui.node.UiComposer. Interfejs androidx.compose.Emittable został usunięty. Był on zbędny w porównaniu z ComponentNode.
androidx.compose.ViewAdapters został usunięty. Nie są one już obsługiwane.
Metoda Compose.composeInto została wycofana. Użyj w zamian pola
setContent
lubsetViewContent
. Metoda Compose.disposeComposition została wycofana. Zamiast tego użyj metodydispose
w obiekcieComposition
zwracanym przez funkcjęsetContent
. Funkcja androidx.compose.Compose.subcomposeInto została przeniesiona do androidx.ui.core.subcomposeInto. Metoda ComponentNode#emitInsertAt została przemianowana na ComponentNode#insertAt. Metoda ComponentNode#emitRemoveAt została przemianowana na ComponentNode#removeAt. Metoda ComponentNode#emitMode została przemianowana na ComponentNode#move (Idef00)