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 |
---|---|---|---|---|
30 października 2024 r. | 1.7.5 | - | - | 1.8.0-alpha05 |
Struktura
Compose to kombinacja 7 identyfikatorów grup Maven w ramach androidx
. Każda grupa zawiera docelowy podzbiór funkcji, z których każda ma własny zestaw informacji o wersji.
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.buildr | 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ść w Compose, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Google Maven.
Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle
aplikacji lub modułu:
Odlotowe
dependencies { implementation "androidx.compose.animation:animation:1.7.0" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.animation:animation:1.7.0") } 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ć Jetpack. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową bibliotekę, przejrzyj istniejące problemy 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-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
- Zaktualizuj stany wewnętrzne przekształcenia rozmiaru elementu
AnimatedContent
po odtworzeniu przejścia. 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-alfa04 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono błąd, który powodował awarie niektórych krzywych wygładzających w określonych ułamkach czasu.
- Naprawiliśmy błąd, który powodował nieprawidłowe dopasowanie tekstu (
Modifier.animateContentSize
od prawej do lewej). (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 interfejsu 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
- Zapobiegaj ustawianiu przejścia
playTime
, gdy Steven Schoen nie wykonuje żadnego przejścia. (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.
Usługa androidx.compose.animation:animation-*:1.7.4
została zwolniona. Wersja 1.7.4 zawiera te zatwierdzenia.
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 opisaliśmy 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
Ta opcja jest przydatna w przypadku powtarzalnych animacji utworzonych z wykorzystaniem splinii. 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 są 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 zatwierdzenia.
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 zatwierdzenia.
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.
Usługa androidx.compose.animation:animation-*:1.7.0-beta05
została zwolniona. 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.
Usługa androidx.compose.animation:animation-*:1.7.0-beta03
została zwolniona. 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
- Eksperymentalna funkcja
SharedTransitionScope
to teraz interfejs, a nie klasa 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
LookaheadScope
interfejs API został stabilny. (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.
Usługa androidx.compose.animation:animation-*:1.7.0-alpha07
została zwolniona. Wersja 1.7.0-alpha07 zawiera te komity.
Nowe funkcje
- Nowe interfejsy API do przenoszenia elementów udostępnionych czekają na Ciebie i Twoją opinię. 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 wycofany 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
- Obsługa animacji wyglądu i znikania elementów została dodana do
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
- Funkcja
SeekableTransitionState
zastępuje elementsnapTo()
elementemseekTo()
i dodaje elementsnapTo()
, 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-alfa03 zawiera te zatwierdzenia.
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 resetowaniem urządzenia
Modifier.animateContentSize
w przypadku aplikacjiLazyList
. (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 zatwierdzenia.
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.
Usługa androidx.compose.animation:animation-*:1.6.5
została zwolniona. 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 interfejsu 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 zatwierdzenia.
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.
Usługa androidx.compose.animation:animation-*:1.6.0-alpha08
została zwolniona. Wersja 1.6.0-alpha08 zawiera te commity.
Zmiany interfejsu 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 wariant główny i dodatkowy. Są one prawidłowo zmapowane na kolor i działanie wskaźników 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-alfa05 zawiera te zatwierdzenia.
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-alfa03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Nowy typ przejścia wejścia/wyjścia, który skaluje treść na podstawie rozmiaru kontenera animowanego w animacji wejścia i wyjścia.
LookaheadScope
Funkcja komponowania i interfejs są teraz stabilne. (Ifb2ce)
Wersja 1.6.0-alpha02
26 lipca 2023 r.
Usługa androidx.compose.animation:animation-*:1.6.0-alpha02
została zwolniona. Wersja 1.6.0-alfa02 zawiera te zatwierdzenia.
Zmiany interfejsu 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-alfa01 zawiera te zatwierdzenia.
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 przydziały ze wiosennych animacji. (Ie9431)
- Zmieniono nazwę parametru wartości w funkcji Enum.valueOf (Ia9b89)
- więcej zgłoszonych wyjątków od wartości wyliczeniowej (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 zatwierdzenia.
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 zatwierdzenia.
Poprawki błędów
Rozwiązaliśmy problem, który powodował, że wywołanie funkcji
.value
w stanie podstawowym (takim jakMutableIntState
) powodowało wyświetlenie ostrzeżenia o Lingu 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.
Usługa androidx.compose.animation:animation-*:1.5.0-beta03
została zwolniona. 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 zatwierdzenia.
Wersja 1.5.0-beta01
24 maja 2023 r.
Usługa androidx.compose.animation:animation-*:1.5.0-beta01
została zwolniona. 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.
Usługa androidx.compose.animation:animation-*:1.5.0-alpha03
została zwolniona. Wersja 1.5.0-alfa03 zawiera te zatwierdzenia.
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 interfejsu 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ę zabawy w przyrostku na
togetherWith
, aby łączyć przejścia między wejściami i wyjściami. Nowy użytkownikAnimatedContentScope
jako odbiornik treści lambda. (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.
androidx.compose.animation:animation:1.4.3
, androidx.compose.animation:animation-core:1.4.3
i androidx.compose.animation:animation-graphics:1.4.3
zostały opublikowane bez zmian (tylko skompletowanie 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 rozszerzeń wInfiniteTransition
i przejściu (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.
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
zostały udostępnione. Wersja 1.4.0-alfa03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- W testach interfejsu użytkownika z użyciem reguły tworzenia kontynuacje wznawiane w trakcie wywołań zwrotnych
withFrameNanos
będą wysyłane dopiero po zakończeniu wykonywania wszystkich wywołań zwrotnych klatek. 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 znajdziesz w opisie zmian w testach animacji w tej liście zmian. - 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-alfa02 zawiera te zatwierdzenia.
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
- Naprawianie nieprawidłowej animacji przerwy w projekcie 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.
androidx.compose.animation:animation:1.3.2
, androidx.compose.animation:animation-core:1.3.2
i androidx.compose.animation:animation-graphics:1.3.2
zostały udostępnione. 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.
androidx.compose.animation:animation:1.3.1
, androidx.compose.animation:animation-core:1.3.1
i androidx.compose.animation:animation-graphics:1.3.1
zostały udostępnione. 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 wprowadzone od wersji 1.2.0
- Stabilizacja nowego zestawu funkcji łagodnego przejścia
Wersja 1.3.0-rc01
5 października 2022 r.
androidx.compose.animation:animation:1.3.0-rc01
, androidx.compose.animation:animation-core:1.3.0-rc01
i androidx.compose.animation:animation-graphics:1.3.0-rc01
zostały udostępnione. Wersja 1.3.0-rc01 zawiera te zatwierdzenia.
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-alfa03
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 usługach
Crossfade
,animateAsState
iAnimatable
dla etykiety narzędzi (Iac08a) - Dodaliśmy funkcję
atFraction
do definiowania klatek kluczowych na ułamku zamiast w określonym czasie. (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 interfejsu 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
androidx.compose.animation:animation:1.2.0
, androidx.compose.animation:animation-core:1.2.0
i androidx.compose.animation:animation-graphics:1.2.0
zostały udostępnione. 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.
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
zostały udostępnione. 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
z funkcji 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 zatwierdzenia.
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
- Zaktualizowaliśmy analizę analizy obiektów rysowanych wektorowych, aby zapewnić obsługę automatycznego odbicia lustrzanego w celu odwrócenia zawartości w elemencie
VectorPainter
, jeśli obecny układ to RTL. (I79cd9, b/185760237)
Poprawki błędów
- Zaktualizowano interfejsy API grafiki wektorowej, tak aby używały prawidłowej adnotacji kompozycyjnej
@VectorComposable
zamiast@UiComposable
(I942bc)
Wersja 1.2.0-alpha05
9 marca 2022 r.
androidx.compose.animation:animation:1.2.0-alpha05
, androidx.compose.animation:animation-core:1.2.0-alpha05
i androidx.compose.animation:animation-graphics:1.2.0-alpha05
zostały udostępnione. Wersja 1.2.0-alpha05 zawiera te commity.
Zmiany w interfejsie API
- Hurra! Animacja tworzenia wiadomości obsługuje teraz ustawienie „Skala czasu trwania animacji” w Opcjach programisty. (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-alfa03 zawiera te zatwierdzenia.
Wersja 1.2.0-alfa02
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.
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
zostały udostępnione. Wersja 1.2.0-alfa01 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
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)
- Poprawiono 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,
- Ulepszenia rozmiaru docelowego elementu dotykowego
- 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 zostanie powiększony do minimalnych rozmiarów 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, by obsługiwała 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
zostały udostępnione. 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.
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
zostały udostępnione. Wersja 1.1.0-beta04 zawiera te commity.
Nowe funkcje
- Zaktualizowano, aby była zgodna z platformą 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
- Dodaliśmy nowy modyfikator Modifier.onPlaced, który umożliwia obserwowanie zmian miejsca docelowego. W związku z tym na podstawie zaobserwowanej zmiany miejsca docelowego można wprowadzić dodatkowe zmiany w przesunięciu modyfikatora podrzędnego. (I558fd)
Nowa obsługa ContentKey w przenikaniu. ContentKey będzie używany do sprawdzania równości w systemie animacji. Dlatego niestandardowe różnice w stanach można uzyskać przez określenie odpowiednich wartości contentKey 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.
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
zostały udostępnione. Wersja 1.1.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Nowe interfejsy API animacji do obsługi narzędzi. Umożliwiają one narzędziu sprawdzanie animacji i ich konfiguracji w przejściach. (I4116e)
Wersja 1.1.0-beta01
27 października 2021 roku
androidx.compose.animation:animation:1.1.0-beta01
, androidx.compose.animation:animation-core:1.1.0-beta01
i androidx.compose.animation:animation-graphics:1.1.0-beta01
zostały udostępnione. 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.
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
zostały udostępnione. Wersja 1.1.0-alfa06 zawiera te zatwierdzenia.
Wersja 1.1.0-alpha05
29 września 2021 r.
androidx.compose.animation:animation:1.1.0-alpha05
, androidx.compose.animation:animation-core:1.1.0-alpha05
i androidx.compose.animation:animation-graphics:1.1.0-alpha05
zostały udostępnione. 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
też 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 interfejsu API
- Element StartOffset jest teraz obsługiwany w trybie powtarzalnym i nieskończonym powtarzalnym, co umożliwia opóźnienie rozpoczęcia lub przyspieszenie 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.
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
zostały udostępnione. Wersja 1.1.0-alfa01 zawiera te zatwierdzenia.
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
zostały udostępnione. 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 na podstawie usługi Kotlin
1.5.31
Wersja 1.0.3
29 września 2021 r.
androidx.compose.animation:animation:1.0.3
i androidx.compose.animation:animation-core:1.0.3
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
zostały udostępnione. Wersja 1.0.2 zawiera te zatwierdzenia.
Zaktualizowano, aby obsługiwała wersję 1.0.2
Utwórz. 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 jest pierwsza stabilna wersja Compose. Więcej informacji znajdziesz na oficjalnym blogu wersji Compose.
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 rozwiązać ten problem, tymczasowo zwiększ wartość parametru minSdkVersion w pliku
build.gradle
do wartości 24 lub nowszej. Ten problem zostanie naprawiony w następnej wersji Androida Studio Bumblebee i AGP7.1
. (b/194289155)
Wersja 1.0.0-rc02
14 lipca 2021 roku
androidx.compose.animation:animation:1.0.0-rc02
i androidx.compose.animation:animation-core:1.0.0-rc02
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
- Nowy element kompozycyjny
AnimatedContent
. Zarządza zmianami treści za pomocą dostosowywalnychContentTransform
, gdy nowe treści docelowe są dodawane, a pierwotne treści są usuwane. Różne kombinacje przejść wejścia i wyjścia pozwalają uzyskać niestandardowy wygląd i styl strony. 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.tekst
- 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
wLayoutNode
ma podpisisPlaced()Z
.Aby jedna reguła obejmowała wiele metod lub klas, mogą one zawierać symbole wieloznaczne (
**
,*
i?
).
Do czego służą reguły?
Metoda z flagą
H
wskazuje, że jest to metoda „hot” i należy ją skompilować wcześniej.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ługuj niestandardową animację wyjścia/wejścia w animacji widoczności 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 interfejsu API
- Instancje publiczne
RowScope
,ColumnScope
,BoxScope
,BoxWithConstraintsScope
zostały usunięte. (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 zatwierdzenia.
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
- Egzekwuj ograniczenia dotyczące publicznego korzystania z eksperymentalnych interfejsów API (I6aa29, b/174531520)
Wersja 1.0.0-beta01
24 lutego 2021 r.
androidx.compose.animation:animation:1.0.0-beta01
i androidx.compose.animation:animation-core:1.0.0-beta01
zostały udostępnione. 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 InteractionSource.
- (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. Przeniesiono aplikację VelocirtTracker z obszaru ui.gesture do witryny ui.input.pointer. (Iff4a8, b/175294473)
- Klasa AnimationClockObservable i jej podklasy zostały usunięte. Element 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) - Usunęliśmy interfejsy API animate, animacjaValue, AnimatedValue (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-alfa12 zawiera te zatwierdzenia.
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).
- Ujednolicono nazwę parametru AnimationSpec z animowaną specyfikacją w systemie animacji. 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 niego użyj parametrurememberSaveable { mutableStateOf(0) }
. Zostanie on automatycznie zapisany i przywrócony, 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 podpis metody Przenikanie, aby był bardziej spójny z resztą 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. Nazwa metody wewnętrznej RestorableStateProvider została zmieniona na SaveableStateProvider. Typ ogólny został usunięty, więc można było przekazywać jako klucz „Dowolny”. 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)
- Parametr AnimatedValue/Float został wycofany. Zamiast tego użyj interfejsu Animatable. (I71345, b/177457083)
- Parametry tapConsentFilter, doubleTapStepFilter, longPressConsentFilter i PressIndicaitonTrackingFilter zostały wycofane. Zamiast tego użyj Modifier.clickable lub Modifier.pointerInput z funkcją detectTapGestures. (I6baf9, b/175294473)
- Wprowadziliśmy współrzędny element kontekstu
InfiniteAnimationPolicy
, który będzie stosowany w nieskończoność animacji. 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 compose:runtime, a AndroidUiDispatcher w 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 interfejsu API
- Przejście na podstawie definicji przejścia zostało wycofane (I0ac57)
- Dodano pole etykiety umożliwiające przejście i animacje podrzędne wyświetlane w narzędziach (I619fb).
- animateAsState to teraz animateFooAsState, gdzie Foo to typ animowanej zmiennej, 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 długimi milisekundami, a ten krok eliminuje zależność danych wejściowych wskaźnika do tych klas. (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-alfa10 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) - Metoda
animate()
została zastąpiona przezanimateAsState()
, która zwracaState<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
zostały udostępnione. Wersja 1.0.0-alfa09 zawiera te zatwierdzenia.
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 danych wejściowych wskaźnika zmieniliśmy nazwę 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 ze sprawdzaniem lintowania i wskazówkami przenieśliśmy też niektóre interfejsy API, używając nazwy
children
jako nazwy końcowej lambdy docontent
. (Iec48e) - Usunięto wycofane wcześniej interfejsy API:
- Karta
Modifier.onPositioned
została usunięta, użyj kartyModifier.onGloballyPositioned
. - Usunięto:
Modifier.onDraw
. Użyj:Modifier.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ę pozwalającą, by zegar TestAnimationClock był wywoływany przez MonotonicFrameClock (I1403b, b/173402197)
Poprawki błędów
- Zgodnie z opiniami Rady ds. API zmodyfikowaliśmy też nazwę Modifier.drawLayer na Modifier.graphicsLayer. Wraz z opiniami rady ds. API zaktualizowaliśmy też powiązane klasy na GraphicsLayer. (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 współrzędnych (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)
- Nazwa funkcji
RestorableStateHolder.withRestorableState
została zmieniona 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
zostały udostępnione. 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. Zmiana ta została wprowadzona w celu zachowania spójności i uniknięcia korzystania z wielu 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
- Adnotacja rootAnimationClockFactory, powiązaniasEnabled,blinkingCursorEnabled i textInputServiceFactory z użyciem @VisibleForTesting, ustaw wewnętrzny interfejs API i ukryj ich plik kdoc (I554eb, b/168308412)
Poprawki błędów
- Zaktualizowano wiele interfejsów Graphics API.
- 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.
- Usunęliśmy interfejsy RoundRect API do wysyłania zapytań dotyczących górnych praw, dolnych, dolnej, środkowej części itp.
- Wycofano Rect.shift na rzecz 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.
- Do aplikacji Radius dodano interfejs API destrukcyjny
- Przeniesienie różnych funkcji rozszerzenia RoundRect do właściwości
- (I8f5c7, b/168762961)
- Element foundation.Box został wycofany. Zamiast niej 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
zostały udostępnione. 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
Wrzesień 2, 2020
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
zostały udostępnione. Wersja 0.1.0-dev17 zawiera te commity.
Nowe funkcje
Zmiany interfejsu API
- Offset stał się klasą wbudowaną (Iaec70)
- IntOffset jest teraz klasą wbudowaną (Iac0bf)
- IntSize jest teraz klasą wbudowaną (I2bf42).
Animowana widoczność kompozycyjna animuje wygląd i znikanie treści podrzędnych.
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 w polu „PxBounds” i dodano odpowiednie wycofanie/zastąpienie adnotacjami, aby wspomóc 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 zatwierdzenia.
Zmiany w interfejsie API
- Wbudowane konwertery wektorowe służące do konwersji jednostek wbudowanych są teraz dostępne w usłudze
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
Odpowiednik klasyManualAnimationClock
to terazManualFrameClock
. (I111c7, b/161247083)
Poprawki błędów
- Interfejsy API do obsługi tekstu od prawej do lewej zostały zaktualizowane. 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
zostały udostępnione. Wersja 0.1.0-dev15 zawiera te zatwierdzenia.
Aktualizacja zależności
- Aby używać funkcji Compose
0.1.0-dev15
, 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 przejścia (I87cfe, b/159706180)
- Użyj AnimationSpec zamiast AnimationBuilder w interfejsach API najwyższego poziomu, aby wyjaśnić koncepcję specyfikacji animacji statycznej.
- Ulepsz przejście DSL, usuwając wymaganie lambda przy tworzeniu specyfikacji animacji, takich jak starsze czy sprężyna. 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).
- Zastąpiono użycie klasy Px w różnych klasach tworzenia w ramach dużej refaktoryzacji, która polegała wyłącznie na używaniu w parametrach pikseli tylko typów Dp i typów podstawowych (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)
- Wszystkie przypadki użycia koloru, które mogą przyjmować wartości null w interfejsie API, zastąpiono wartością niedopuszczającą wartości null i ustawiono wartość Color.Unset zamiast wartości 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ę, ponieważ animacja powtarza się w obiektach 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. Nazwy wszystkich interfejsów API doXYZ zostały zmienione 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. Cała klasa Px została usunięta (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).
- Przenikanie może teraz działać z wartością początkową null (Iad6a4, b/155947711)
- Zastąpiono użycie klasy Px w różnych klasach tworzenia w ramach dużej refaktoryzacji polegającej na używaniu w parametrach pikseli tylko typów Dp i typów podstawowych (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 grawitacji pionowego i poziomego do wierszy i kolumn. (I7dc5a)
- Nazwa modułu ui-text została zmieniona na ui-text-core (I57dec).
- Ulepsz interfejs 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 pola
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ę Układ Elastyczny na Układ Weight. 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 trybu nieaktywnego() możesz teraz używać obiektu DensityAmbient.current. Zamiast opcji Gęstość(gęstość) tylko za pomocą(gęstości) (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)
- Aplikacja androidx.compose.ViewComposer została przeniesiona do androidx.ui.node.UiComposer.
androidx.compose.Emittable została usunięta. 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)