Materiał tworzenia wiadomości
androidx.compose.material
androidx.compose.material.icons
Zapoznaj się z dokumentacją interfejsu API dotyczącą wszystkich pakietów tworzenia.
Najnowsza aktualizacja | Wersja stabilna | Kandydat do wydania | Wersja Beta | Wydanie alfa |
---|---|---|---|---|
4 września 2024 r. | 1.7.0 | - | - | 1.8.0-alfa01 |
Struktura
Narzędzie Compose to połączenie 7 identyfikatorów grup Maven w ramach usługi androidx
. Każda grupa
zawiera docelowy podzbiór funkcji, z których każda ma własny zestaw wersji;
notatek.
W tej tabeli opisano grupy i linki do poszczególnych zestawów informacji o wersji.
Grupa | Opis |
---|---|
compose.animation, | Twórz animacje w aplikacjach Jetpack Compose, aby wzbogacać wrażenia użytkowników. |
compose.buildr | Przekształcaj funkcje @Composable i optymalizuj funkcje za pomocą wtyczki kompilatora Kotlin. |
compose.foundation | Twórz aplikacje w Jetpack Compose, używając gotowych do użycia elementów składowych, i rozbuduj podstawy, aby tworzyć własne elementy systemu. |
compose.material, | Twórz interfejsy Jetpack Compose z gotowymi do użycia komponentami Material Design. Jest to punkt wejścia wyższego poziomu w Composer, który ma dostarczać komponenty pasujące do tych opisanych na www.material.io. |
compose.material3, | Twórz interfejsy Jetpack Compose z komponentami Material Design 3, które stanowią kolejną wersję Material Design. Material 3 ma zaktualizowane motywy i komponenty oraz funkcje personalizacji Material You, takie jak dynamiczne kolory, i został zaprojektowany tak, aby był spójny z nowym stylem wizualnym i interfejsem systemu na Androidzie 12. |
compose.runtime, | Podstawowe elementy składowe modelu programowania i zarządzania stanem w usłudze Compose oraz podstawowe środowisko wykonawcze, na które ma być kierowana wtyczka kompilatora Compose. |
compose.ui, | Podstawowe elementy interfejsu tworzenia wiadomości niezbędne do interakcji z urządzeniem, w tym układ, rysowanie i wprowadzanie tekstu. |
Deklarowanie zależności
Aby dodać zależność w Compose, musisz dodać repozytorium Google Maven do w projektach AI. Zapoznaj się z repozytorium Google Maven. .
Dodaj zależności artefaktów, których potrzebujesz w pliku build.gradle
aplikacji lub modułu:
Odlotowe
dependencies { implementation "androidx.compose.material:material:1.7.1" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.7.1") } 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. Daj nam znać, jeśli odkryjesz nowe problemy jak ulepszyć tę bibliotekę. Przyjrzyj się istniejące problemy w tej bibliotece, zanim utworzysz nową. Możesz zagłosować nad istniejącym problemem przez klikając przycisk gwiazdki.
Zobacz dokumentację narzędzia Issue Tracker. .
Wersja 1.8
Wersja 1.8.0-alpha01
4 września 2024 r.
Usługa androidx.compose.material:material-*:1.8.0-alpha01
została zwolniona. Wersja 1.8.0-alfa01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano nowy kreator
NavGraphBuilder.bottomSheet
do tworzenia planszy dolnej z bezpiecznymi argumentami (I28589, I777db, b/351858980).
Wersja 1.7
Wersja 1.7.0
4 września 2024 r.
Usługa androidx.compose.material:material-*:1.7.0
została zwolniona. Wersja 1.7.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.6.0
- Komponenty materiałowe zostały przeniesione do nowych interfejsów API Ripple i nie są już wysyłane do
RippleTheme
. - Komponenty materiałowe, które wcześniej akceptowały wartość
MutableInteractionSource
, a ustawienie domyślne toremember { MutableInteractionSource() }
, teraz akceptują wartość null dla elementuMutableInteractionSource
i domyślnie mają wartość null. Jeśli nie podnosisz danych ani nie używaszMutableInteractionSource
, musisz przekazać wartość null. Dzięki temu niektóre komponenty mogą leniwie tworzyć instancję tylko wtedy, gdy to konieczne, co zwiększa wydajność. Zalecamy też wprowadzenie podobnych zmian we własnych komponentach. BottomDrawer
,ModalBottomSheet
,BackdropScaffold
i standardowa dolna strona zostały awansowane do stabilnego interfejsu API.
Wersja 1.7.0-rc01
21 sierpnia 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-rc01
została zwolniona. Wersja 1.7.0-rc01 zawiera te zatwierdzenia.
Wersja 1.7.0-beta07
7 sierpnia 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-beta07
została zwolniona. Wersja 1.7.0-beta07 zawiera te zatwierdzenia.
Wersja 1.7.0-beta06
24 lipca 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-beta06
została zwolniona. Wersja 1.7.0-beta06 zawiera te zatwierdzenia.
Wersja 1.7.0-beta05
10 lipca 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-beta05
została zwolniona. Wersja 1.7.0-beta05 zawiera te zatwierdzenia.
Wersja 1.7.0-beta04
26 czerwca 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-beta04
została zwolniona. Wersja 1.7.0-beta04 zawiera te zatwierdzenia.
Wersja 1.7.0-beta03
12 czerwca 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-beta03
została zwolniona. Wersja 1.7.0-beta03 zawiera te zatwierdzenia.
Wersja 1.7.0-beta02
29 maja 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-beta02
została zwolniona. Wersja 1.7.0-beta02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Aktualizacja interfejsu API do określania stylu linków: przenieś
TextLinkStyles
doTextStyle
i usuniętoTextDefaults
z materiału (I5477b)
Wersja 1.7.0-beta01
14 maja 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-beta01
została zwolniona. Wersja 1.7.0-beta01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zaktualizowaliśmy interfejs API pod kątem pobierania w tekście linków o tematyce Material. W tym celu usunęliśmy metody z
TextDefaults
do tworzenia tematycznychLinkAnnotations
i analizuj kod HTML za pomocą linków tematycznych. Zamiast tego dodaliśmy klasęTextLinkStyles
, która pozwala na określenie stylu linków jako parametr funkcji Text composable. (I31b93)
Wersja 1.7.0-alpha08
1 maja 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-alpha08
została zwolniona. Wersja 1.7.0-alfa08 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Rozwiąż problem z końcówką
backgroundColor
, który nie występuje w tabelachTextFieldDecorationBox
iOutlinedTextFieldDecorationBox
. Pola dekoracji obsługują teraz parametrshape
. (I371c2, b/307694651) - Tabela
RippleConfiguration#isEnabled
została usunięta, a domenaLocalRippleConfiguration
może mieć wartość null. Aby wyłączyć Echo, zamiast podawaćRippleConfiguration
zisEnabled = false
, podajnull
dlaLocalRippleConfiguration
. (I22725) - Oprócz zwykłego stylu linków tekstowych, po najechaniu kursorem na element lub podświetleniu, linki tekstowe mają opcję stylu po naciśnięciu. Każda z metod
TextDefaults
ma argumentpressedStyle
, który to potwierdza. (Ic473f, b/139312671)
Poprawki błędów
OutlinedTextField
dopełnienie u góry etykiety uwzględnia teraz systemowy rozmiar czcionki. (Idc781).
Wersja 1.7.0-alpha07
17 kwietnia 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-alpha07
została zwolniona. Wersja 1.7.0-alfa07 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Oprócz normalnego stylu, najechania kursorem i zaznaczenia linki tekstowe otrzymały opcję stylizacji stanu naciśniętego. (I5f864, b/139312671)
- Dodano obiekt
TextDefaults
, który zawiera metody tworzenia obiektuLinkAnnotation
i analizy ciągu z tagami HTML, który powoduje zastosowanie wartościMaterialTheme
do linków. (I98532, b/139312671)
Wersja 1.7.0-alpha06
3 kwietnia 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-alpha06
została zwolniona. Wersja 1.7.0-alfa06 zawiera te zatwierdzenia.
Ogłoszenie
- Ta grupa Maven nie wymaga już używania tej samej wersji każdego artefaktu w
androidx.compose.material
. Użytkownicy mogą mieszać i dopasowywać wersje bibliotek podstawowych Compose (Ie5fba)
Zmiany interfejsu API
- Przeniesiono więcej wartości
ModalDrawer
iBottomDrawer
do obiektuDrawerDefaults
. (IB5b2e)
Wersja 1.7.0-alpha05
20 marca 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-alpha05
została zwolniona. Wersja 1.7.0-alfa05 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Flaga
ScaffoldSubcomposeInMeasureFix
została usunięta. (I67363)
Wersja 1.7.0-alpha04
6 marca 2024 roku
Usługa androidx.compose.material:material-*:1.7.0-alpha04
została zwolniona. Wersja 1.7.0-alfa04 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaliśmy nowy artefakt
androidx.compose.material:material-navigation
, który obsługuje również dolne arkusze jako miejsca docelowe podczas korzystania z tworzenia nawigacji. Zastępuje ona bibliotekę materiałów nawigacyjnych w aplikacji Accompanist. (D65d57, b/180247978)
Wersja 1.7.0-alpha03
21 lutego 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-alpha03
została zwolniona. Wersja 1.7.0-alfa03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Wersja
BottomDrawer
została zmieniona z eksperymentalnej na stabilną.BottomDrawerState
udostępnia teraz postęp jako funkcję, co pozwala na wysyłanie zapytań o postęp między określonymi celami.BottomDrawerState
umożliwia teraz dostosowywanie specyfikacji animacji, aconfirmStateChange
nie jest już parametrem lambda na końcu. (I9c029, b/261423850) - Wersja
BackdropScaffold
została zmieniona z eksperymentalnej na stabilną. Specyfikacja animacji to teraz specyfikacjatween
, zgodnie z wytycznymi. ParametrsnackbarHost
elementuBackdropScaffold
nie jest już ostatnim parametrem, który pozwala uniknąć nieporozumień z końcowymi wartościami lambda.BackdropScaffoldState
udostępnia interfejs APIprogress(from, to)
do sprawdzania postępu między kotwicami. (I73f48, b/261423218) - Standardowe dolne arkusze zostały przekształcone z eksperymentalnej na stabilną. Wycofane konstruktory zostały usunięte. Specyfikacja animacji to teraz specyfikacja dla starszych dzieci (zgodnie z wytycznymi). (I3c1a8, b/278692145, b/261409034)
- Modalne plansze dolne zostały zmienione z eksperymentalnej na stabilną. Wycofane konstruktory zostały usunięte. Specyfikacja animacji to teraz specyfikacja
tween
, zgodnie z wytycznymi. (Ic53f4, b/278692145, b/266780235, b/261409034)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował awarię pakietu
BackdropScaffold
w określonych sytuacjach w połączeniu z zasadąLookaheadScope
. (I51396) - W celu zwiększenia wydajności usunięto składnię wewnątrz elementu
BottomSheetScaffold
. Rozwiązaliśmy problem, który powodował awarię pakietuBottomSheetScaffold
w określonych sytuacjach w połączeniu z zasadąLookaheadScope
. (I2f90c) - Usunięto składową składnię
ModalBottomSheetLayout
, aby poprawić wydajność. (I7a025)
Wersja 1.7.0-alpha02
7 lutego 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-alpha02
została zwolniona. Wersja 1.7.0-alfa02 zawiera te zatwierdzenia.
Wersja 1.7.0-alpha01
24 stycznia 2024 r.
Usługa androidx.compose.material:material-*:1.7.0-alpha01
została zwolniona. Wersja 1.7.0-alfa01 zawiera te zatwierdzenia.
Zmiany w działaniu
- Komponenty materiałowe zostały przeniesione do nowych interfejsów API Ripple i nie są już wysyłane do
RippleTheme
.
Zmiany interfejsu API
Interfejsy
rememberRipple
iRippleTheme
zostały wycofane ze środowiska Material-FarpRippleConfiguration
Komponenty materiałowe, które wcześniej akceptowały
MutableInteractionSource
i domyślnie zapamiętywały wartość{ MutableInteractionSource() }
, teraz akceptują wartośćMutableInteractionSource
z wartością null i domyślnie mają wartość null. Jeśli nie podnosisz danych ani nie używaszMutableInteractionSource
, musisz przekazać wartość null. Dzięki temu niektóre komponenty mogą leniwie tworzyć instancję tylko wtedy, gdy to konieczne, co zwiększa wydajność. Zalecamy też wprowadzenie podobnych zmian we własnych komponentach.
Wersja 1.6
Wersja 1.6.8
12 czerwca 2024 r.
Usługa androidx.compose.material:material-*:1.6.8
została zwolniona. Wersja 1.6.8 zawiera te zatwierdzenia.
Wersja 1.6.7
1 maja 2024 r.
Usługa androidx.compose.material:material-*:1.6.7
została zwolniona. Wersja 1.6.7 zawiera te zatwierdzenia.
Wersja 1.6.6
17 kwietnia 2024 r.
Usługa androidx.compose.material:material-*:1.6.6
została zwolniona. Brak zmian od ostatniej wersji.
Wersja 1.6.5
3 kwietnia 2024 r.
Usługa androidx.compose.material:material-*:1.6.5
została zwolniona. Wersja 1.6.5 zawiera te zatwierdzenia.
Wersja 1.6.4
20 marca 2024 r.
Usługa androidx.compose.material:material-*:1.6.4
została zwolniona. Wersja 1.6.4 zawiera te zatwierdzenia.
Wersja 1.6.3
6 marca 2024 roku
Usługa androidx.compose.material:material-*:1.6.3
została zwolniona. Wersja 1.6.3 zawiera te zatwierdzenia.
Poprawki błędów
- Popraw regresję w elemencie
ExposedDropdownMenu
, aby ponownie można było ją zaznaczyć. (c0e0ed, b/323694447)
Wersja 1.6.2
21 lutego 2024 r.
Usługa androidx.compose.material:material-*:1.6.2
została zwolniona. Wersja 1.6.2 zawiera te zatwierdzenia.
Wersja 1.6.1
7 lutego 2024 r.
Usługa androidx.compose.material:material-*:1.6.1
została zwolniona. Wersja 1.6.1 zawiera te zatwierdzenia.
Wersja 1.6.0
24 stycznia 2024 r.
Usługa androidx.compose.material:material-*:1.6.0
została zwolniona. Wersja 1.6.0 zawiera te zatwierdzenia.
Wersja 1.6.0-rc01
10 stycznia 2024 r.
Usługa androidx.compose.material:material-*:1.6.0-rc01
została zwolniona. Wersja 1.6.0-rc01 zawiera te zatwierdzenia.
Wersja 1.6.0-beta03
13 grudnia 2023 r.
Usługa androidx.compose.material:material-*:1.6.0-beta03
została zwolniona. Wersja 1.6.0-beta03 zawiera te zatwierdzenia.
Wersja 1.6.0-beta02
29 listopada 2023 r.
Usługa androidx.compose.material:material-*:1.6.0-beta02
została zwolniona. Wersja 1.6.0-beta02 zawiera te zatwierdzenia.
Wersja 1.6.0-beta01
15 listopada 2023 r.
Usługa androidx.compose.material:material-*:1.6.0-beta01
została zwolniona. Wersja 1.6.0-beta01 zawiera te zatwierdzenia.
Wersja 1.6.0-alpha08
18 października 2023 r.
Usługa androidx.compose.material:material-*:1.6.0-alpha08
została zwolniona. Wersja 1.6.0-alfa08 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Wycofanie funkcji
materialIcon
na rzecz jej przeciążenia, które przyjmuje parametrautoMirror
. (IA338d).
Poprawki błędów - Automatyczne zwiększanie wysokości elementu nawigacji w przypadku dużej ilości treści. (0c4ecc, b/272336962)
Wersja 1.6.0-alpha07
4 października 2023 roku
Usługa androidx.compose.material:material-*:1.6.0-alpha07
została zwolniona. Wersja 1.6.0-alfa07 zawiera te zatwierdzenia.
- Aktualizacje zależności
Wersja 1.6.0-alpha06
20 września 2023 r.
Usługa androidx.compose.material:material-*:1.6.0-alpha06
została zwolniona. Wersja 1.6.0-alfa06 zawiera te zatwierdzenia.
Wyjątkowa zmiana w działaniu
- Usunięto funkcję panelu
BottomSheetScaffold
. Aby korzystać z poprzedniej funkcji, umieśćBottomSheetScaffold
w szufladzie kompozycyjnej. Przykład znajdziesz w sekcjiBottomSheetScaffoldWithDrawerSample
. (I1dcc8).
Zmiany interfejsu API
- Dodaliśmy tymczasową flagę pozwalającą kontrolować, czy Scaffold powinien mierzyć elementy podrzędne podczas pomiaru czy umieszczania. Domyślnie będzie to mierzone. Jeśli masz problemy z nowym sposobem działania, zgłoś problem. (If6e3b).
Wersja 1.6.0-alpha05
6 września 2023 r.
Usługa androidx.compose.material:material-*:1.6.0-alpha05
została zwolniona. Wersja 1.6.0-alfa05 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaliśmy obsługę automatycznie powielanych ikon podczas renderowania w układach od prawej do lewej. Ikony w modułach material-icons-core i material-ikony rozszerzone zawierają teraz dodatkowe zestawy ikon do obsługi automatycznego odbicia lustrzanego, jeśli pozwala na to ikona. Nowe zestawy będą miały przedrostek
Icons.AutoMirrored.Filled...
itp. i przytrzymaj ikony, które będą się automatycznie wyświetlać w układach od prawej do lewej. Zobacz listę ikon Material, aby poznać listę ikon, które mogą (i powinny) być automatycznie powielane.
Zmiany interfejsu API
- Dodaliśmy obsługę automatycznie powielanych ikon podczas renderowania w układach od prawej do lewej. Ikony w modułach material-icons-core i material-ikony rozszerzone zawierają teraz dodatkowe zestawy ikon do obsługi automatycznego odbicia lustrzanego, jeśli pozwala na to ikona. Nowe zestawy będą miały przedrostek
Icons.AutoMirrored.Filled...
itp. i przytrzymaj ikony, które będą się automatycznie wyświetlać w układach od prawej do lewej. Zobacz listę ikon Material, aby poznać listę ikon, które mogą (i powinny) być automatycznie powielane. Podane wcześniej właściwości tych ikon zostały oznaczone jako wycofane i zapewniamy sugestie dotyczące blokowania ich, co pomoże w migracji. Jeśli nie ma specjalnej obsługi powielania ikon w zapisie od prawej do lewej, zalecamy migrację do nowego zestawu ikon. Na przykład poleIcons.Filled.ArrowBack
należy poddać refaktoryzacji naIcons.AutoMirrored.Filled.ArrowBack
. (I4b511)
Wersja 1.6.0-alpha04
23 sierpnia 2023 r.
Usługa androidx.compose.material:material-*:1.6.0-alpha04
została zwolniona. Wersja 1.6.0-alfa04 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że niektóre komponenty korzystające z funkcji
Subcomposition
(np.BottomSheetScaffold
) w Scaffold w obiekcieLookaheadScope
zbyt wcześnie próbowały odczytywać swój rozmiar. (If2c5d). - Poprawiono obliczenie
offset
dlaDropdownMenu
, więc odsunięcia x zależą wyłącznie od kierunku układu lokalnego. Odsunięcia y nie będą już cofane, gdy menu znajdzie się u dołu ekranu. (Iccc74, b/294103942) - Zoptymalizowaliśmy elementy wewnętrzne układu
BottomSheetScaffold
i naprawiliśmy potencjalny problem z elementemBottomSheetScaffold
wewnątrz elementuLookaheadLayout
. (ic0afa)
Wersja 1.6.0-alpha03
9 sierpnia 2023 r.
Usługa androidx.compose.material:material-*:1.6.0-alpha03
została zwolniona. Wersja 1.6.0-alfa03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Komponenty Material2 mają teraz oddzielny interfejs API do przekazywania interfejsu
windowInsets
na potrzeby obsługi aplikacji od krawędzi do krawędzi w Androidzie. W przeciwieństwie do komponentów material3 komponenty material2 domyślnie nie obsługują wkładek, dlatego wartość powinna być przekazywana ręcznie. Wskazówki znajdziesz w odpowiednich przykładach. (I655e8)
Wersja 1.6.0-alpha02
26 lipca 2023 r.
Usługa androidx.compose.material:material-*:1.6.0-alpha02
została zwolniona. Wersja 1.6.0-alfa02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Przenosimy zależność gęstości na poziom komponentu. Dotyczy to komponentów opartych na arkuszu
SwipeToDismiss
i komponentach opartych na arkuszu. Użyj nowego dostępnego przeciążenia, w którym gęstość jest parametrem. (I1846e) - Dodatkowe adnotacje do określania dozwolonych danych wejściowych do elementów kompozycyjnych (I51109)
- Zaktualizowano pliki interfejsu API, aby dodać adnotacje o pomijaniu zgodności (I8e87a, b/287516207)
- Dodano nowe wyrównanie rozpoczęcia dla języka
FabPosition
(Ib7aea, b/170592777) - Interfejs
TextFieldColorsWithIcons
w Material 2 został wycofany i zastąpiony przez interfejsTextFieldColors
. Podczas zastępowania wartościleadingIconColor
lubtrailingIconColor
zastąp też przeciążenie funkcjąinteractionSource
. (Id57ed, b/199377790)
Wersja 1.6.0-alpha01
21 czerwca 2023 r.
Usługa androidx.compose.material:material-*:1.6.0-alpha01
została zwolniona. Wersja 1.6.0-alfa01 zawiera te zatwierdzenia.
Zmiany w działaniu
includeFontPadding
to terazfalse
domyślnie w typografii Material 2. Domyślny styl wysokości wiersza również został zmieniony naTrim.None
iAlignment.Center
, a do elementówTextStyle
w tabeliTypography
dodaliśmy wyraźnelineHeight
(w sp). Aby dostosować te wartości, zapoznaj się z dokumentacją interfejsu API, a szczegółowe omówienie tych zmian znajdziesz w poście na blogu. (Icabc3, I3f801, I04c03)
Zmiany interfejsu API
- Interfejsy API
Swipeable
Material zostały wycofane. Zapoznaj się z interfejsami APIAnchoredDraggable
Foundation, które są zoptymalizowane zarówno pod kątem prostych, jak i złożonych przypadków użycia. (I732e0)
Poprawki błędów
BottomSheetState
,ModalBottomSheetState
iBottomDrawerState
udostępniają teraz właściwość postępu wskazująca postęp między bieżącą (umieszczoną) kotwicą i najbliższą kotwicą w kierunku przesuwania. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Wersja 1.5
Wersja 1.5.4
18 października 2023 r.
Usługa androidx.compose.material:material-*:1.5.4
została zwolniona. Wersja 1.5.4 zawiera te zatwierdzenia.
Wersja 1.5.3
4 października 2023 roku
Usługa androidx.compose.material:material-*:1.5.3
została zwolniona. Ta wersja nie zawiera żadnych zmian
Wersja 1.5.2
27 września 2023 r.
Usługa androidx.compose.material:material-*:1.5.2
została zwolniona. Wersja 1.5.2 zawiera te zatwierdzenia.
Wersja 1.5.1
6 września 2023 r.
Pakiet androidx.compose.material:material-*:1.5.1
został udostępniony bez zmian. Wersja 1.5.1 zawiera te zatwierdzenia.
Wersja 1.5.0
9 sierpnia 2023 r.
Usługa androidx.compose.material:material-*:1.5.0
została zwolniona. Wersja 1.5.0 zawiera te zatwierdzenia.
Ważne zmiany wprowadzone od wersji 1.4.0
Zmiany interfejsu API
- Wprowadzono zmiany w interfejsach API przesuwanych1 w
BottomSheetScaffold
. Nazwa parametruconfirmStateChange
użytkownikaBottomSheetState
została zmieniona naconfirmValueChange
. Poleprogress
jest teraz wyświetlane jako wartość zmiennoprzecinkowa.animateTo
isnapTo
są wewnętrzne. Zamiast nich używaj kolumnexpand()
icollapse()
. Usuniętodirection
ioverflow
. Elementoffset
został zastąpiony tekstemrequireOffset()
. I323b4 - Oznacz funkcję
snapTo
w panelu jako nieeksperymentalny interfejs API. (Ib9c18, b/261425368) - Dodaliśmy parametr koloru ścieżki dla okrągłych wskaźników postępu oraz parametr limitu kreski dla okrągłych i liniowych wskaźników postępu. (Ie668c, b/216325962, b/222964817)
- Zmieniono nazwę elementów
ModalBottomSheetState
,ModalBottomSheetState.Saver
iconfirmStateChange
użytkownikarememberModalBottomSheetState
naconfirmValueChange
. (IB48d1) - Dodaj
Modifier.minimumInteractiveComponentSize
. Można go użyć, by zarezerwować rozmiar co najmniej 48 dp, aby jednoznacznie rozróżnić interakcje dotykowe, gdy element byłby mniejszy. (I33f58, b/258495559) - Wprowadzono zmiany w przesuwanych interfejsach API w
ModalBottomSheetLayout
. Parametr animateToModalBottomSheetState
nie przyjmuje już parametruanimationSpec
, a wyświetlone przesunięcie może teraz mieć wartość null. Użyj funkcjirequireOffset
, aby wymagać przesunięcia. (Ia2e79). - Dodawanie adnotacji
@JvmDefaultWithCompatibility
(I8f206) - Zmiany wprowadzone w przesuwanych interfejsach API w
animateTo
ModalDrawer. DrawerState
zostały zastąpione metodami otwierania i zamykania, a przesunięcie umożliwia teraz wartość null. Użyj funkcjirequireOffset
, aby wymagać przesunięcia. (I3de9e). - Zaktualizowaliśmy panele i panele, tak aby prawidłowo opóźniały naciśnięcia, gdy gesty mogą stać się zdarzeniami przewijania.
- Dodano parametr
minLines
do obiektu Material3 Text orazTextField
iOutlinedTextField
, który umożliwia ustawienie minimalnej wysokości komponentu w zależności od liczby linii (I4af1d).
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że interfejs
pullRefresh
nie zużywał prędkości, przez co wyświetlane było dalekie przewinięcie. Zmieniono też podpis interfejsu API funkcji lambdaonRelease
w elemencieModifier.pullRefresh
, aby zwracał liczbę zmiennoprzecinkową dla prędkości wykorzystania (I7db65, b/266874741). BottomSheetState
,ModalBottomSheetState
iBottomDrawerState
udostępniają teraz właściwość postępu wskazująca postęp między bieżącą (umieszczoną) kotwicą i najbliższą kotwicą w kierunku przesuwania. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)- Naprawiono działanie zamknięcia
AlertDialog
, które pojawiało się pod działaniem potwierdzenia, gdy działania nakładały się na siebie, by pasowały do szerokości okna. Ta poprawka pozwala dostosować implementację do specyfikacji Material Design. (I029de, b/235454277) - Gdy zasada
gesturesEnabled
ma wartość Fałsz,BottomSheetScaffold
nie będzie już korzystać z zagnieżdżonego przewijania. (I634f3, b/215403277) - Naprawiono błąd, który powodował awarię pliku
BottomSheetScaffold
po udostępnieniu pustej treści w boksach. (Ib24a5, b/235588730) - Naprawiono
PullRefreshIndicator
przechwytujące kliknięcia/zdarzenia wskaźnika. (2494256, b/271777421) - Rozwiązaliśmy problem, który powodował awarię pliku
ModalBottomSheetLayout
w przypadku krawędzi wielkości liter po zmianie orientacji. Animacje układu (np.Modifier.animateContentSize
) w zawartości arkusza działają teraz płynnie. (I2f981, b/266780234)
Wersja 1.5.0-rc01
26 lipca 2023 r.
Usługa androidx.compose.material:material-*:1.5.0-rc01
została zwolniona. Wersja 1.5.0-rc01 zawiera te zatwierdzenia.
Wersja 1.5.0-beta03
28 czerwca 2023 r.
Usługa androidx.compose.material:material-*:1.5.0-beta03
została zwolniona. Wersja 1.5.0-beta03 zawiera te zatwierdzenia.
Poprawki błędów
BottomSheetState
,ModalBottomSheetState
iBottomDrawerState
udostępniają teraz właściwość postępu wskazująca postęp między bieżącą (umieszczoną) kotwicą i najbliższą kotwicą w kierunku przesuwania. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Wersja 1.5.0-beta02
7 czerwca 2023 r.
Usługa androidx.compose.material:material-*:1.5.0-beta02
została zwolniona. Wersja 1.5.0-beta02 zawiera te zatwierdzenia.
Wersja 1.5.0-beta01
24 maja 2023 r.
Usługa androidx.compose.material:material-*:1.5.0-beta01
została zwolniona. Wersja 1.5.0-beta01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Przesunięcie elementów
DrawerState
iBottomDrawerState
nie może już dopuszczać wartości null. Zamiast tego zwracają wartośćFloat.NaN
, aby wskazać brak przesunięcia. (IE9855) - Dodano opcję przekazywania w polu
ScrollState
podczas tworzenia elementówDropdownMenu
lubExposedDropdownMenu
do kontrolowania stanu przewijania w pionie wyświetlanych elementów menu. (Idb009, b/185304441) - Dodaj obsługę włączania/wyłączania gestu
ModalBottomSheetLayout
, aby użytkownik mógł skonfigurować go na potrzeby bardziej polecanej planszy dolnej (I40af0) - Dodano parametr koloru do elementu
BasicText
, aby umożliwić sprawne animowanie lub ustawianie koloru tekstu. (Iffd88, b/246961787) - Zmieniamy nazwę właściwości Semantyka
isContainer
naisTraversalGroup
(I121f6).
Poprawki błędów
- Naprawiono działanie zamknięcia
AlertDialog
, które pojawiało się pod działaniem potwierdzenia, gdy działania nakładały się na siebie, by pasowały do szerokości okna. Ta poprawka pozwala dostosować implementację do specyfikacji Material Design. (I029de, b/235454277)
Wersja 1.5.0-alpha04
10 maja 2023 r.
Usługa androidx.compose.material:material-*:1.5.0-alpha04
została zwolniona. Wersja 1.5.0-alfa04 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Przenosimy zależność gęstości na poziom komponentu. Dotyczy to tych komponentów:
BottomDrawer
,ModalBottomSheetLayout
,BottomSheetScaffold
,Switch
iModalDrawer
. Użyj nowego dostępnego przeciążenia, w którym gęstość jest parametrem. (I8fbd8)
Wersja 1.5.0-alpha03
19 kwietnia 2023 r.
Usługa androidx.compose.material:material-*:1.5.0-alpha03
została zwolniona. Wersja 1.5.0-alfa03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zaktualizuj interfejsy wewnętrzne
BottomDrawer
, aby używały nowych interfejsów APISwipeableV2
. Z tego powoduBottomDrawerState
będzie teraz mieć zdefiniowane tylko interfejsy API na poziomie klasy, nie odziedziczy metod/właściwości z klasySwipeableState
. Używamy kompozycji z wewnętrznym elementemSwipeableV2State
. Przesunięcie jest teraz właściwością zmiennoprzecinkową, która może dopuszczać null. Do bieżącej wartości i celu przesuwania wciąż można uzyskać dostęp za pomocą właściwości currentValue i targetValue. Poprzednie metody na poziomie klasy, takie jak open/expand/close i właściwości takie jakisOpen/isClosed
, nadal są obsługiwane. (Iad40c, b/178529942, b/220676296)
Poprawki błędów
- Zaktualizowano elementy wewnętrzne komponentu Przełącz. Przełącznik wyświetla teraz podgląd najbliższego (stanu docelowego) podczas przeciągania. (Id90d4).
- Animowana zawartość arkusza (np.
Modifier.animateContentSize
w zawartości arkusza) wBottomSheetScaffold
została zoptymalizowana i działa już płynnie. (Ia913c, b/270518202, b/254446195) - Gdy
gesturesEnabled
ma wartośćfalse
,BottomSheetScaffold
nie będzie już wyświetlać zagnieżdżonego przewijania. (I634f3, b/215403277)
Wersja 1.5.0-alpha02
5 kwietnia 2023 r.
Usługa androidx.compose.material:material-*:1.5.0-alpha02
została zwolniona. Wersja 1.5.0-alfa02 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono błąd, który powodował awarię pliku
BottomSheetScaffold
po udostępnieniu pustej treści w boksach. (Ib24a5, b/235588730) - Naprawia
PullRefreshIndicator
przechwytujące kliknięcia / zdarzenia wskaźnika (2494256, b/271777421)
Wersja 1.5.0-alpha01
22 marca 2023 r.
Usługa androidx.compose.material:material-*:1.5.0-alpha01
została zwolniona. Wersja 1.5.0-alfa01 zawiera te zatwierdzenia.
Poprawki błędów
- Dodaj przykład zmiany przepływu grupy elementów. Zaktualizuj poziome dopełnienie między elementami podrzędnymi w próbce grupy elementów z jedną wierszem, aby pasowało do specyfikacji. (I3B155)
- Rozwiązaliśmy problem, który powodował awarię pliku
ModalBottomSheetLayout
w przypadku krawędzi wielkości liter po zmianie orientacji. Animacje układu (np.Modifier.animateContentSize
) w zawartości arkusza działają teraz płynnie. (I2f981, b/266780234)
Wersja 1.4
Wersja 1.4.3
3 maja 2023 r.
Wersja androidx.compose.material:material-*:1.4.3
została udostępniona bez zmian (tylko zwiększenie liczby wersji).
Wersja 1.4.2
19 kwietnia 2023 r.
Usługa androidx.compose.material:material-*:1.4.2
została zwolniona. Wersja 1.4.2 zawiera te zatwierdzenia.
Wersja 1.4.1
5 kwietnia 2023 r.
Usługa androidx.compose.material:material-*:1.4.1
została zwolniona. Wersja 1.4.1 zawiera te zatwierdzenia.
Wersja 1.4.0
22 marca 2023 r.
Usługa androidx.compose.material:material-*:1.4.0
została zwolniona. Wersja 1.4.0 zawiera te zatwierdzenia.
Ważne zmiany wprowadzone od wersji 1.3.0
Zmiany interfejsu API
- Dodaj
Modifier.minimumInteractiveComponentSize
. Można go użyć, by zarezerwować rozmiar co najmniej 48 dp, aby jednoznacznie rozróżnić interakcje dotykowe, gdy element byłby mniejszy. (I33f58, b/258495559) - Wprowadzono zmiany w przesuwanych interfejsach API w
ModalDrawer
. MetodaanimateTo
wDrawerState
została zastąpiona metodami otwarcia i zamknięcia, a przesunięcie umożliwia teraz wartość null. Użyj funkcjirequireOffset
, aby wymagać przesunięcia. (I3de9e). - Dodano parametr
minLines
do obiektu Material3 Text orazTextField
iOutlinedTextField
, który umożliwia ustawienie minimalnej wysokości komponentu w zależności od liczby linii (I4af1d). - Do komponentów
BasicText
iBasicTextField
dodaliśmy parametrminLines
. Pozwala ustawić minimalną wysokość elementów kompozycyjnych w postaci liczby wierszy (I24294, b/122476634)
Wersja 1.4.0-rc01
8 marca 2023 r.
Pakiet androidx.compose.material:material-*:1.4.0-rc01
został udostępniony bez zmian. Wersja 1.4.0-rc01 zawiera te zatwierdzenia.
Wersja 1.4.0-beta02
22 lutego 2023 roku
Usługa androidx.compose.material:material-*:1.4.0-beta02
została zwolniona. Wersja 1.4.0-beta02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Wprowadzono zmiany w przesuwanych interfejsach API w
BottomSheetScaffold
. Nazwa parametruconfirmStateChange
użytkownikaBottomSheetState
została zmieniona naconfirmValueChange
. Poleprogress
jest teraz wyświetlane jako wartość zmiennoprzecinkowa.animateTo
isnapTo
są wewnętrzne. Zamiast nich używaj kolumnexpand()
icollapse()
. Usuniętodirection
ioverflow
. Elementoffset
został zastąpiony tekstemrequireOffset()
. (I323b4)
Poprawki błędów
- Usunęliśmy role semantyczne z platform, które można kliknąć i zaznaczyć, oraz zaktualizowaliśmy komponenty, które korzystały z tych elementów do ustawiania ról za pomocą atrybutu modyfikator.semantics (Ibb4ba).
- Drobna aktualizacja rozszerzonych ikon Material Design, które ulepszają wypełnione ikony
desktop_mac
,directions
ikitchen
. (I65f5e)
Wersja 1.4.0-beta01
8 lutego 2023 r.
Usługa androidx.compose.material:material-*:1.4.0-beta01
została zwolniona. Wersja 1.4.0-beta01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Rozwiązaliśmy problem, który powodował, że interfejs
pullRefresh
nie zużywał prędkości, przez co wyświetlane było dalekie przewinięcie. Zmieniono też podpis interfejsu API funkcji lambdaonRelease
w elemencieModifier.pullRefresh
, aby zwracał liczbę zmiennoprzecinkową dla prędkości wykorzystania (I7db65, b/266874741). - Metoda pobierania właściwości
LocalMinimuTouchTargetEnforcement
została przywrócona i oznaczona jako wycofana oraz przekierowująca doLocalMinimumInteractiveComponentEnforcement
. (I60dd5)
Wersja 1.4.0-alpha05
25 stycznia 2023 r.
Usługa androidx.compose.material:material-*:1.4.0-alpha05
została zwolniona. Wersja 1.4.0-alfa05 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że stan
ModalBottomSheetLayout's HalfExpanded
był nieprawidłowo obliczany i arkusz wydawał się pływający. (I8c615, b/265610459) - Naprawiliśmy błąd w
ModalBottomSheetLayout
, który w pewnych okolicznościach powodował awarię arkusza po przejściu z ukrytego do widocznego. (Ia9265, b/265444789)
Wersja 1.4.0-alpha04
11 stycznia 2023 r.
Usługa androidx.compose.material:material-*:1.4.0-alpha04
została zwolniona. Wersja 1.4.0-alfa04 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano we właściwości semantyki
IsContainer
na platformach. Ta właściwość zostanie użyta w późniejszej zmianie, która określa kolejność przechodzenia między elementami na podstawie semantycznego znaczenia elementów takich jak powierzchnie. (I63379) - Oznacz funkcję
snapTo
w panelu jako nieeksperymentalny interfejs API. (Ib9c18, b/261425368) - Dodaliśmy parametr koloru ścieżki dla okrągłych wskaźników postępu oraz parametr limitu kreski dla okrągłych i liniowych wskaźników postępu. (Ie668c, b/216325962, b/222964817)
- Zmieniono nazwę elementów
ModalBottomSheetState
,ModalBottomSheetState.Saver
iconfirmStateChange
użytkownikarememberModalBottomSheetState
naconfirmValueChange
. (IB48d1) - Większa dopuszczalność zwracanych wartości null wycofanych funkcji ukrytych (Ibf7b0)
- Dodaj
Modifier.minimumInteractiveComponentSize
. Można go użyć, by zarezerwować rozmiar co najmniej 48 dp, aby jednoznacznie rozróżnić interakcje dotykowe, gdy element byłby mniejszy. (I33f58, b/258495559) - Wprowadzono zmiany w przesuwanych interfejsach API w
ModalBottomSheetLayout
.animateTo
w elemencieModalBottomSheetState
nie przyjmuje już parametruanimationSpec
, a widoczna wartość wymiaruoffset
może mieć teraz wartość null. Użyj zasadyrequireOffset
, aby wymagać uprawnieniaoffset
. (Ia2e79).
Poprawki błędów
- Arkusz elementu
ModalBottomSheetLayout
ma teraz maksymalną szerokość 640 dp. (I71a4f, b/234927577) - Rozwiązaliśmy problem, który powodował, że usługa
rememberPullRefreshState
nie aktualizowała przez pewien czas elementówrefreshThreshold
irefreshingOffset
. (Ifed10, b/263159832) - Postęp w przypadku wskaźników postępu jest teraz prawidłowo ograniczony do oczekiwanego zakresu. (I8a7eb, b/262262727)
- Jeśli element
ModalBottomSheetState
nie otrzymał jeszcze żadnych kotwic, w przypadku wywołaniasnapTo
lubanimateTo
zaktualizujecurrentValue
bez animacji, zamiast zgłaszać wyjątek. (I2c91b) - Naprawiono stan włączenia w implementacji
FilterChip
Material 2. (Id326a, b/261329817) - Naprawiono błąd, który powodował awarię
ModalBottomSheetLayout
przy obróceniu z pionowej do poziomej orientacji ekranu (HalfExpanded
). Upewnij się, że przekazujesz prawidłowyinitialValue
, na przykład sprawdzając konfigurację. (Ie8df7, b/182882364) - Rozwiązaliśmy problem, który powodował awarię pliku
ModalBottomSheetLayout
, jeśli zawartość arkusza była pusta.ModalBottomSheetLayout
zezwala teraz na pustą zawartość arkusza. Jeśli zawartość arkusza jest pusta, będzie mieć tylko stan Ukryty. (Ic2288, b/200980998, b/216693030)
Znany problem
- Podczas aktualizowania z
androidx.compose.foundation:1.4.0-alpha03
doandroidx.compose.foundation:1.4.0-alpha04
może wystąpić błądjava.lang.NoSuchFieldError
. Tutaj został zgłoszony problem. Poprawka została przesłana i będzie dostępna w następnej aktualizacji Utwórz. Aby obejść ten problem, zaktualizuj bibliotekiandroidx.compose.material
iandroidx.compose.material3
do najnowszej wersji(1.1.0-alfa04) lub przywróć pakietandroidx.compose.foundation
do wersji 1.4.0-alfa03.
Wersja 1.4.0-alpha03
7 grudnia 2022 r.
Usługa androidx.compose.material:material-*:1.4.0-alpha03
została zwolniona. Wersja 1.4.0-alfa03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodawanie adnotacji
@JvmDefaultWithCompatibility
(I8f206) - Wprowadzono zmiany w interfejsach API
Swipeable
wModalDrawer
. PoleanimateTo
metodyDrawerState
zostało zastąpione metodamiopen
iclose
, a przesunięcie może teraz przyjmować wartości null. Użyj funkcjirequireOffset
, aby wymagać przesunięcia. (I3de9e). - Dodano interfejs API modyfikatora do wysyłania zapytań o informacje o przewijaniu elementów nadrzędnych. (I2ba9d, b/203141462)
- Używany w
Clickable
do prawidłowego opóźnienia interakcji polegającej na naciśnięciu, gdy gesty mogą stać się zdarzeniami przewijania. - Naprawiono błąd
Clickables
w zakresie nieprawidłowego opóźniania echa w przypadku użycia wewnątrz elementuScrollable ViewGroup
. - Zaktualizowaliśmy panele i panele, tak aby prawidłowo opóźniały naciśnięcia, gdy gesty mogą stać się zdarzeniami przewijania.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że usługa
PullRefreshIndicator
mogła blokować się po wywołaniu funkcjionRefresh
, jeśli stan odświeżania nie zmienił się na prawda. (IE2416, b/248274004)
Aktualizacje zależności
- Interfejs tworzenia wiadomości i materiał tworzenia wiadomości zależą teraz od cyklu życia wersji 2.5.1. (I05ab0, b/258038814)
Wersja 1.4.0-alpha02
9 listopada 2022 r.
Usługa androidx.compose.material:material-*:1.4.0-alpha02
została zwolniona. Wersja 1.4.0-alfa02 zawiera te zatwierdzenia.
Zmiany interfejsu API
awaitFirstDown
iwaitForUpOrCancellation
akceptują terazPointerEventPass
, co zapewnia większą elastyczność. (I7579a, b/212091796)- Dodano parametr
minLines
do obiektu Material3 Text orazTextField
iOutlinedTextField
, który umożliwia ustawienie minimalnej wysokości komponentu w zależności od liczby linii (I4af1d). - Do parametrów
BasicTex
t iBasicTextField
dodano parametrminLines
. Pozwala ustawić minimalną wysokość tych elementów kompozycyjnych w postaci liczba wierszy (I24294, b/122476634)
Wersja 1.4.0-alpha01
24 października 2022 r.
Usługa androidx.compose.material:material-*:1.4.0-alpha01
została zwolniona. Wersja 1.4.0-alfa01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano nową metodę (
awaitEachGesture()
) do wykrywania gestów. Jej działanie jest podobne doforEachGesture()
, ale pętla gestów działa w całości w obrębieAwaitPointerEventScope
, więc zdarzenia nie mogą zostać utracone między iteracjami. - Funkcja
forEachGesture()
została wycofana i zastąpionaawaitEachGesture()
, ponieważ umożliwia utratę zdarzeń pomiędzy gestami. (Iffc3f, b/251260206)
Wersja 1.3
Wersja 1.3.1
9 listopada 2022 r.
Usługa androidx.compose.material:material-*:1.3.1
została zwolniona. Wersja 1.3.1 zawiera te zatwierdzenia.
Wersja 1.3.0
24 października 2022 r.
Usługa androidx.compose.material:material-*:1.3.0
została zwolniona. Wersja 1.3.0 zawiera te zatwierdzenia.
Ważne zmiany wprowadzone od wersji 1.2.0
Niezwykła zmiana w działaniu
- Maksymalna obsługiwana wysokość w oknach i wyskakujących okienkach została zmniejszona do 8 dp.
Zmiany interfejsu API
- Dodaj do tworzenia wiadomości komponent pull, aby odświeżyć (I29168).
- Zmień nazwę parametru z wartości na wartość w RangeSlider (I3b79a).
Wersja 1.3.0-rc01
5 października 2022 r.
Usługa androidx.compose.material:material-*:1.3.0-rc01
została zwolniona. Wersja 1.3.0-rc01 zawiera te zatwierdzenia.
Wersja 1.3.0-beta03
21 września 2022 r.
Usługa androidx.compose.material:material-*:1.3.0-beta03
została zwolniona. Wersja 1.3.0-beta03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodawanie komponentu pull, aby odświeżyć do tworzenia wiadomości (I29168)
Wersja 1.3.0-beta02
7 września 2022 roku
Usługa androidx.compose.material:material-*:1.3.0-beta02
została zwolniona. Wersja 1.3.0-beta02 zawiera te zatwierdzenia.
Brak zmian od wersji 1.3.0-beta01
Wersja 1.3.0-beta01
24 sierpnia 2022 r.
Usługa androidx.compose.material:material-*:1.3.0-beta01
została zwolniona. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
Niezwykła zmiana w działaniu
Maksymalna obsługiwana wysokość w oknach i wyskakujących okienkach została zmniejszona do 8 dp.
Maksymalna obsługiwana wysokość okien dialogowych tworzenia wiadomości i wyskakujących okienek została zmniejszona z 30 dp do 8 dp. Ta zmiana dotyczy zarówno niestandardowych okien dialogowych, jak i wyskakujących okienek z elementami interfejsu użytkownika. Ta zmiana ma na celu usunięcie błędu związanego z ułatwieniami dostępu na Androidzie w wersji starszej niż S oraz zagwarantowanie, że usługi ułatwień dostępu w tych oknach będą mogły wchodzić w interakcje z treściami w oknie lub wyskakującym okienku.
Ta zmiana będzie miała na Ciebie wpływ tylko wtedy, gdy utworzysz implementację niestandardowego okna lub wyskakującego okienka z wysokością wyższą niż 8 dp. Rozważ obniżenie wysokości okna lub wyskakującego okienka. Jeśli chcesz zrezygnować z tego nowego sposobu, rozważ utworzenie własnego okna lub wyskakującego okienka z ustawioną wysokością. Nie jest to zalecane, ponieważ może to negatywnie wpływać na ułatwienia dostępu. To deweloper musi zadbać o to, aby dolna część okna lub wyskakującego okienka była możliwa do interakcji i czytelna dla usług ułatwień dostępu.
Wersja 1.3.0-alfa03
10 sierpnia 2022 r.
Usługa androidx.compose.material:material-*:1.3.0-alpha03
została zwolniona. Wersja 1.3.0-alfa03 zawiera te zatwierdzenia.
Wersja 1.3.0-alfa02
27 lipca 2022 roku
Usługa androidx.compose.material:material-*:1.3.0-alpha02
została zwolniona. Wersja 1.3.0-alfa02 zawiera te zatwierdzenia.
Treści tłumaczone przez użytkowników zewnętrznych
- Napraw problem
AnimatedVisibility
z atrybutemFloatingActionButton
w Scaffold (I3a0ae, b/224005027)
Wersja 1.3.0-alpha01
29 czerwca 2022 r.
Usługa androidx.compose.material:material-*:1.3.0-alpha01
została zwolniona. Wersja 1.3.0-alfa01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zmień nazwę parametru z wartości na wartość w funkcji
RangeSlider
(I3b79a)
Poprawki błędów
- Zaktualizuj przykładową plakietkę, aby dodać bardziej opisowy opis treści. (I10b9d)
Wersja 1.2
Wersja 1.2.1
10 sierpnia 2022 r.
Usługa androidx.compose.material:material-*:1.2.1
została zwolniona. Wersja 1.2.1 zawiera te zatwierdzenia.
Wersja 1.2.0
27 lipca 2022 roku
Usługa androidx.compose.material:material-*:1.2.0
została zwolniona. Wersja 1.2.0 zawiera te zatwierdzenia.
Wersja 1.2.0-rc03
29 czerwca 2022 r.
Usługa androidx.compose.material:material-*:1.2.0-rc03
została zwolniona. 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.
Usługa androidx.compose.material:material-*:1.2.0-rc02
została zwolniona. Wersja 1.2.0-rc02 zawiera te zatwierdzenia.
Wersja 1.2.0-rc01
15 czerwca 2022 r.
Usługa androidx.compose.material:material-*:1.2.0-rc01
została zwolniona. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Interfejsy w bibliotekach tworzenia wiadomości są teraz tworzone przy użyciu domyślnych metod interfejsu jdk8 (I5bcf1)
Poprawki błędów
- Aktualizacje z kartą ikony wiodącej, która pozwala dołączyć do etykiety plakietkę zamiast ikony. (I90993)
Wersja 1.2.0-beta03
1 czerwca 2022 r.
Usługa androidx.compose.material:material-*:1.2.0-beta03
została zwolniona. Wersja 1.2.0-beta03 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono błąd, który powodował, że aplikacja
BottomSheetScaffold
rysowała cień u góry paska aplikacji.BottomSheetScaffold
uwzględnia teraz stan arkusza podczas umieszczania pasków powiadomień: w stanie zwiniętym paski znajdują się nad arkuszem i przyciskiem FAB. w stanie rozwiniętym paski powiadomień są zakotwiczone na dole arkusza. (Ia80b5, b/187771422)
Wersja 1.2.0-beta02
18 maja 2022 r.
Usługa androidx.compose.material:material-*:1.2.0-beta02
została zwolniona. Wersja 1.2.0-beta02 zawiera te zatwierdzenia.
Wersja 1.2.0-beta01
11 maja 2022 roku
Usługa androidx.compose.material:material-*:1.2.0-beta01
została zwolniona. Wersja 1.2.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Pierwsza wersja beta 1.2.
Zmiany interfejsu API
- Zmieniono nazwę funkcji kompozycyjnej
TextFieldDefaults.BorderStroke
, która rysuje linię obramowania wOutlinedTextField
naTextFieldDefaults.BorderBox
. (I5f295)
Wersja 1.2.0-alpha08
20 kwietnia 2022 r.
Usługa androidx.compose.material:material-*:1.2.0-alpha08
została zwolniona. Wersja 1.2.0-alfa08 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Częściowe wykorzystanie (pozycja w dół LUB w pozycji) zostało wycofane w funkcji
PointerInputChange
. Aby w pełni zastosować zmianę, możesz użyć poleceniaconsume()
. ParametrisConsumed
pozwala określić, czy ktoś inny wykorzystał już tę zmianę. - Teraz
PointerInputChange::copy()
zawsze tworzy płytkie kopie. Oznacza to, że po wykorzystaniu jednej z nich kopiePointerInputChange
zostaną zużyte. Jeśli chcesz utworzyć nieograniczonyPointerInputChange
, użyj konstruktora. (Ie6be4, b/225669674)
Wersja 1.2.0-alpha07
6 kwietnia 2022 roku
Usługa androidx.compose.material:material-*:1.2.0-alpha07
została zwolniona. Wersja 1.2.0-alfa07 zawiera te zatwierdzenia.
Wersja 1.2.0-alpha06
23 marca 2022 r.
Usługa androidx.compose.material:material-*:1.2.0-alpha06
została zwolniona. Wersja 1.2.0-alfa06 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Aktualizacja klikalnego interfejsu Card API w celu zastosowania zmian w interfejsie Surface API (I56bcb)
- Aktualizacje interfejsu Material 2 Surface API, które uwzględniają dodatkowe przeciążone funkcje na potrzeby powierzchni do wyboru i przełączania. (Ifcca5).
Wersja 1.2.0-alpha05
9 marca 2022 r.
Usługa androidx.compose.material:material-*:1.2.0-alpha05
została zwolniona. Wersja 1.2.0-alfa05 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Wersje
LazyVerticalGrid
iLazyHorizontalGrid
są teraz stabilne. (I307C0) - Pakiet
LazyVerticalGrid/LazyHorizontalGrid
i wszystkie powiązane interfejsy API zostały przeniesione do podpakietu .grid. Zaktualizuj importy z androidx.compose.foundation.lazy na androidx.compose.foundation.lazy.grid. (I2d446, b/219942574) - Cofnięto poprzednią zmianę polegania wyłącznie na widoku danych
WindowInsetsControllerCompat
i ponownie wymagają okna, które ma wartość wymagane do zarządzania niektórymi flagami okien. WycofanaViewCompat.getWindowInsetsController
za wartośćWindowCompat.getInsetsController
, aby zapewnić prawidłową wartość okna (np. gdy widok jest w oknie). (I660ae, b/219572936) - Tekst:
includeFontPadding
jest teraz domyślnie wyłączony. obsługiwane są problemy z przycinaniem wynikające z funkcjiincludeFontPadding=false
i nie powinny być przycinane w przypadku wysokich skryptów. (I31c84, b/171394808) - Dodano nowy interfejs API
LazyVerticalGrid
do definiowania rozmiarów osi krzyżowych (I17723)
Wersja 1.2.0-alfa04
23 lutego 2022 r.
Usługa androidx.compose.material:material-*:1.2.0-alpha04
została zwolniona. Wersja 1.2.0-alfa04 zawiera te zatwierdzenia.
Zmiany interfejsu API
Add support for filter chips
(I39a6e, b/192585545)- Dodano
TextFieldDecorationBox
iOutlinedTextFieldDecorationBox
Użycie ich razem z usługąBasicTextField
pomoże Ci utworzyć niestandardowe pole tekstowe na podstawie tekstu w stylu Material Design lecz także z większą liczbą opcji. - Umożliwiono dostosowanie poziomego i pionowego dopełnienia w polach tekstowych. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, 33617{/13
Dodano
ComposableTarget
,ComposableTargetMarker
iComposableOpenTarget
, który umożliwia raportowanie w czasie kompilacji funkcja kompozycyjna jest nazywana kierowaniem na aplikację, do której nie była potrzebna stworzonych z myślą o użytkownikach.W większości przypadków adnotacje można wywnioskować na podstawie sposobu tworzenia kompilatora, więc bezpośrednie używanie tych adnotacji powinno być rzadkie . Przypadki, których nie można wywnioskować, to na przykład utworzenie za pomocą abstrakcyjnego narzędzia kompozycyjnego (takiego jak metod interfejsu), pola lub zmienne globalne, które są kompozycyjne lambda (wnioskowane zmienne i parametry lokalne), lub gdy używasz funkcji
ComposeNode
lub powiązanych funkcji kompozycyjnych.W przypadku aplikacji niestandardowych funkcje kompozycyjne wywołujące
ComposeNode
lubReusableComposeNode
muszą dodaćCompoableTarget
adnotacji dla funkcji i dowolnych kompozycyjne typy parametrów lambda. Zalecane jest jednak aby utworzyć adnotację z adnotacjąComposableTargetMarker
, a oznaczona adnotacja będzie używana zamiastComposableTarget
. Adnotacja kompozycyjna oznaczony za pomocą atrybutuComposableTargetMarker
jest odpowiednikiem funkcjiComposbleTarget
z pełną i jednoznaczną nazwą atrybutu jako parametr aplikacji. Na przykład za pomocą funkcjiComposableTargetMarker
zobacz:anroidx.compose.ui.UiComposable
. (I38f11)
Wersja 1.2.0-alfa03
9 lutego 2022 r.
Usługa androidx.compose.material:material-*:1.2.0-alpha03
została zwolniona. Wersja 1.2.0-alfa03 zawiera te zatwierdzenia.
Poprawki błędów
- Przykład grupy elementów dodawania (I97080, b/192585545)
Wersja 1.2.0-alfa02
26 stycznia 2022 r.
Usługa androidx.compose.material:material-*:1.2.0-alpha02
została zwolniona. Wersja 1.2.0-alfa02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano metodę
NonRestartableComposable
do metod, które są przeciążeniami bez złożonej logiki. Zmniejsza to liczbę kompilatora wygenerowane czeki notacji (równe) dla wszystkich parametrów, które są powtarzane w funkcji wewnętrznej, która jest wywoływana. (I90490) - Dodaj obsługę elementu działania (I07100, b/192585545)
Wersja 1.2.0-alpha01
12 stycznia 2022 r.
Usługa androidx.compose.material:material-*:1.2.0-alpha01
została zwolniona. Wersja 1.2.0-alfa01 zawiera te zatwierdzenia.
Aktualizacje zależności
- Teraz zależy od Kotlin
1.6.10
.
Treści tłumaczone przez użytkowników zewnętrznych
ModalBottomSheetState
ma teraz flagęisSkipHalfExpanded
. Można ją ustawić za pomocą konstruktora lub zaktualizować później, ustawiając właściwośćisSkipHalfExpanded
elementuModalBottomSheetState
natrue
. Zaktualizowanie wartości parametruisSkipHalfExpanded
powoduje ponowne kompozycję arkusza. (I18b86, b/186669820)
Wersja 1.1
Wersja 1.1.1
23 lutego 2022 r.
Usługa androidx.compose.material:material-*:1.1.1
została zwolniona. Wersja 1.1.1 zawiera te zatwierdzenia.
Poprawki błędów
- Napraw
NullPointerException
pod adresemandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
(aosp/1947059, b/206677462) - Naprawianie awarii spowodowanej przez zawartość schowka przy odczytywaniu z do schowka na Androidzie. (I06020, b/197769306)
- Poprawiono RTL w
LazyVerticalGrid
(aosp/1931080, b/207510535)
Wersja 1.1.0
9 lutego 2022 r.
Usługa androidx.compose.material:material-*:1.1.0
została zwolniona. Wersja 1.1.0 zawiera te zatwierdzenia.
Ważne zmiany wprowadzone od wersji 1.0.0
- Stabilna obsługa efektu przewijania w Androidzie 12.
- Ulepszenia rozmiaru docelowego elementu dotykowego
- Pamiętaj, że w przypadku Compose 1.0 komponenty Material mają rozszerzać obszar układu, aby zapewnić zgodność z wytycznymi dotyczącymi ułatwień dostępu Material Design rozmiar docelowego elementu dotykowego. Na przykład docelowy element dotykowy przycisku zostanie powiększony do minimalnego rozmiaru 48 x 48 dp, nawet jeśli ustawisz mniejszy rozmiar przycisku. Dzięki temu interfejs Compose Material ma takie samo zachowanie jak komponenty stylu Material Design, co zapewnia spójne zachowanie w przypadku połączenia widoków i tworzenia wiadomości. Ta zmiana zagwarantuje też, że w przypadku tworzenia UI z użyciem komponentów Compose Material, minimalne wymagania dotyczące ułatwień dostępu docelowych elementów dotykowych będą spełnione.
- Stabilna obsługa kolejki nawigacyjnej
- Przeniesienie niektórych wcześniej eksperymentalnych interfejsów API do wersji stabilnej
- pomoc dotycząca nowszych wersji Kotlin,
Wersja 1.1.0-rc03
26 stycznia 2022 r.
Usługa androidx.compose.material:material-*:1.1.0-rc03
została zwolniona. Wersja 1.1.0-rc03 zawiera te zatwierdzenia.
Zmiany w zachowaniu
Pamiętaj, że w przypadku Compose 1.0 komponenty Material mają rozszerzać obszar układu, aby zapewnić zgodność z wytycznymi dotyczącymi ułatwień dostępu elementem dotykowym Material. Na przykład docelowy element dotykowy przycisku zostanie powiększony do minimalnego rozmiaru 48 x 48 dp, nawet jeśli ustawisz mniejszy rozmiar przycisku. Dzięki temu interfejs Compose Material ma takie samo zachowanie jak komponenty stylu Material Design, co zapewnia spójne zachowanie w przypadku połączenia widoków i tworzenia wiadomości. Ta zmiana zagwarantuje też, że w przypadku tworzenia UI z użyciem komponentów Compose Material, minimalne wymagania dotyczące ułatwień dostępu docelowych elementów dotykowych będą spełnione.
Poprawki błędów
- Dodaliśmy dokładniejsze informacje na temat debugowania przez inspektora układu podczas sprawdzania minimalnych modyfikatorów docelowych elementów dotykowych. (Aosp/1955036).
Wersja 1.1.0-rc01
15 grudnia 2021 roku
Usługa androidx.compose.material:material-*:1.1.0-rc01
została zwolniona. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
- Popraw promień narożnika zastosowany w przypadku elementów
Checkbox
(I38b03, b/175198975, b/202309440)
Wersja 1.1.0-beta04
1 grudnia 2021 r.
Usługa androidx.compose.material:material-*:1.1.0-beta04
została zwolniona. Wersja 1.1.0-beta04 zawiera te zatwierdzenia.
Nowe funkcje
- Zaktualizowano, aby była zgodna z platformą Kotlin
1.6.0
Wersja 1.1.0-beta03
17 listopada 2021 r.
Usługa androidx.compose.material:material-*:1.1.0-beta03
została zwolniona. Wersja 1.1.0-beta03 zawiera te zatwierdzenia.
Wersja 1.1.0-beta02
3 listopada 2021 r.
Usługa androidx.compose.material:material-*:1.1.0-beta02
została zwolniona. Wersja 1.1.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Echo i inne wskaźniki będą teraz opóźnione tylko wtedy, gdy znajdują się w kontenerze Modifier.scrollable(), a nie zawsze będą opóźnione w przypadku zdarzenia wyłączenia. (Ibefe0, b/203141462)
Wersja 1.1.0-beta01
27 października 2021 roku
Usługa androidx.compose.material:material-*:1.1.0-beta01
została zwolniona. Wersja 1.1.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Echo obsługuje teraz stany najechania i zaznaczenia. Najechanie kursorem lub zaznaczenie komponentu takiego jak Przycisk spowoduje teraz wyświetlenie odpowiedniej nakładki stanu.
Wersja 1.1.0-alpha06
13 października 2021 r.
Usługa androidx.compose.material:material-*:1.1.0-alpha06
została zwolniona. Wersja 1.1.0-alfa06 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano przeciążenie bez dzieci w przypadku układów, co zwiększyło wydajność (Ib0d9a)
- Implementacja funkcji
ExposedDropdownMenu
na podstawie regułyExposedDropdownMenuBox
z komponentemTextField
iDropdownMenu
(If60b2) - Pole
dismissOnOutsideClick
zostało dodane do tabeliPopupProperties
, zastępującdismissOnClickOutside
, która została wycofana. Nowa właściwość otrzymuje pozycję kliknięcia i granice kotwicy, zapewniając dokładniejszą kontrolę nad tym, czy ma być wywoływane czy nie. Pozwala to na przykład zapobiec odrzuceniu reklamy zakotwiczonej po dotknięciu reklamy zakotwiczonej.- Element
updateAndroidWindowManagerFlags
został dodany doPopupProperties
, umożliwiając niską kontrolę nad flagami przekazywanymi przez wyskakujące okienko do Menedżera okien Androida. Parametrem funkcji lambda będą flagi obliczone na podstawie wartości PopupWłaściwości, które powodują wystąpienie flag WindowManager, np. które można zaznaczyć. Wynikiem funkcji lambda będą ostateczne flagi, które zostaną przekazane do Android WindowManager. Domyślnie flagi updateAndroidWindowManagerFlags pozostawiają flagi obliczone na podstawie parametrów bez zmian. Z tego interfejsu API należy korzystać z rozwagą tylko w sytuacjach, gdy wyskakujące okienko ma określone wymagania dotyczące działania. (I6e9f9).
- Element
Wersja 1.1.0-alpha05
29 września 2021 r.
Usługa androidx.compose.material:material-*:1.1.0-alpha05
została zwolniona. Wersja 1.1.0-alfa05 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodaje minimalny rozmiar docelowego elementu dotykowego dla komponentów Material, które nie mają dostępnego docelowego elementu dotykowego. Powoduje to zwiększenie odstępów wokół komponentów, aby zapewnić, że mają one wystarczająco duży docelowy element dotykowy. Może to zmienić dotychczasowe interfejsy użytkownika, w których zakładamy, że rozmiar tych komponentów jest taki sam jak ich rozmiar, i nie uwzględnia on rozmiaru docelowego elementu dotykowego. Możesz użyć eksperymentalnej kompozycji
LocalMinimumTouchTargetEnforcement
lokalnie, aby wyłączyć to działanie w obrębie hierarchii, ale jest to tylko tymczasowa awaryjność, którą należy aktualizować w istniejących interfejsach użytkownika pod kątem nowego minimalnego rozmiaru. (I9b966, b/149691127, b/171509422) - Dodano eksperymentalny interfejs TextFieldColorsWithIcons, rozszerzony właściwości TextFieldColors, aby zapewnić element InteractionSource w przypadku atrybutów leadColor i końcowy. Umożliwia to modyfikowanie wyglądu pola tekstowego zgodnie ze stanem zaznaczenia. (I66923, b/198402662)
Wersja 1.1.0-alfa04
15 września 2021 r.
Usługa androidx.compose.material:material-*:1.1.0-alpha04
została zwolniona. Wersja 1.1.0-alfa04 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Wycofano reguły
performGesture
iGestureScope
, które zawierają zostały zastąpione przezperformTouchInput
iTouchInjectionScope
. (Ia5f3f, b/190493367) - Element
touchBoundsInRoot
został dodany do elementuSemanticsNode
zawiera minimalny rozmiar docelowego elementu dotykowego, dzięki czemu deweloperzy może sprawić, że docelowe elementy dotykowe będą spełniać minimalne wymagania dotyczące ułatwień dostępu. (I2e14b, b/197751214)
Poprawki błędów
- Zezwalaj na rozszerzenie zakresu docelowego elementu dotykowego poza zakres klipu w obszarze klipu, aby określić minimalny docelowy element dotykowy. (I43e10, b/171509422)
- Element kompozycyjny
Divider
został zaktualizowany na uwzględnijDp.Hairline
dla parametru grubości do rysowania separatorów jednopikselowych niezależnie od gęstości interfejsu. (I16ffb, b/196840810)
Wersja 1.1.0-alfa03
1 września 2021 roku
Usługa androidx.compose.material:material-*:1.1.0-alpha03
została zwolniona. Wersja 1.1.0-alfa03 zawiera te zatwierdzenia.
Nowe funkcje
- Zaktualizowano funkcję Utwórz
1.1.0-alpha03
, aby bazowała na Kotlinie1.5.30
. (I74545)
Zmiany interfejsu API
- Dodano metodę testową służącą do pobierania granic przyciętych. (I6b28e)
- Dodano minimalny rozmiar docelowego elementu dotykowego do ViewConfiguration do użycia w semantyce i danych wejściowych wskaźnika, aby zapewnić dostępność. (IE861C)
Wersja 1.1.0-alfa02
18 sierpnia 2021 r.
Usługa androidx.compose.material:material-*:1.1.0-alpha02
została zwolniona. Wersja 1.1.0-alfa02 zawiera te zatwierdzenia.
Treści tłumaczone przez użytkowników zewnętrznych
- Naprawianie działania funkcji PrzesuńableState w przypadku, gdy przesunięcie przesunięcia znajduje się w obrębie błędu zaokrąglania reklamy zakotwiczonej. (I03d39, b/191993377)
Wersja 1.1.0-alpha01
4 sierpnia 2021 r.
Usługa androidx.compose.material:material-*:1.1.0-alpha01
została zwolniona. Wersja 1.1.0-alfa01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zaktualizowano metodę
DrawScope#drawImage
, która pochłania źródłowe i docelowe prostokąty , aby wykorzystać opcjonalną jakość . Przydaje się to na Pixelu dzieło sztuki, które ma być pikselizowane skalowany w górę i uwydatnić grafikę w formacie pikselowym. Zaktualizowana BitmapPainter + możliwość komponowania obrazu aby wykorzystać opcjonalną filtrującą jakość Parametr (Ie4fb0, b/180311607) - Zmieniono nazwę BadgeBox na BadgedBox i zmieniono parametry, aby przyjmowały funkcję kompozycyjną logo. Dodano komponent plakietki, który jest typową treścią plakietki w przypadku BadgedBox. (I639c6)
- Dodano komponent NavigationRail. Informacje o wykorzystaniu znajdziesz w dokumentacji i przykładach (I8de77)
Poprawki błędów
- Dodano przykładową aplikację NavigationRail wyrównaną do dołu oraz aplikację Catalog. wersji demonstracyjnej. (I3cffc)
- Okna dialogowe są teraz zgodne z zachowaniem rozmiaru platformy. Aby zastąpić to zachowanie, ustaw wartość usePlatformDefaultWidth na false. (Iffaed, b/192682388)
- Do aplikacji do katalogu dodano tryb demo nawigacji. (I04960)
- Do aplikacji katalogu dodano wersję demonstracyjną plakietki. (If285d).
Wersja 1.0
Wersja 1.0.5
3 listopada 2021 r.
Usługa androidx.compose.material:material-*:1.0.5
została zwolniona. Wersja 1.0.5 zawiera te zatwierdzenia.
Poprawki błędów
- Usunięto problem ze śledzeniem awarii w instancjach originStateOf. (Aosp/1792247)
Wersja 1.0.4
13 października 2021 r.
Usługa androidx.compose.material:material-*:1.0.4
została zwolniona. 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.
Usługa androidx.compose.material:material-*:1.0.3
została zwolniona. Wersja 1.0.3 zawiera te zatwierdzenia.
Aktualizacje zależności
- Zaktualizowano na podstawie usługi Kotlin
1.5.30
Wersja 1.0.2
1 września 2021 roku
Usługa androidx.compose.material:material-*:1.0.2
została zwolniona. Wersja 1.0.2 zawiera te zatwierdzenia.
Zaktualizowano, aby obsługiwała wersję 1.0.2
Utwórz. Funkcja Compose 1.0.2
jest nadal zgodna z Kotlin 1.5.21
.
Wersja 1.0.1
4 sierpnia 2021 r.
Usługa androidx.compose.material:material-*:1.0.1
została zwolniona. Wersja 1.0.1 zawiera te zatwierdzenia.
Aktualizacje zależności
- Zaktualizowano w zależności od systemu Kotlin
1.5.21
.
Wersja 1.0.0
28 lipca 2021 roku
Usługa androidx.compose.material:material-*:1.0.0
została zwolniona. Wersja 1.0.0 zawiera te zatwierdzenia.
Główne funkcje 1.0.0
To jest pierwsza stabilna wersja Compose. Więcej informacji znajdziesz na oficjalnym blogu wersji Compose.
Znane problemy
Jeśli korzystasz z Android Studio Bumblebee Canary 4 lub AGP
7.1.0-alpha04
/7.1.0-alpha05
, może dojść do tej awarii: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
Usługa androidx.compose.material:material-*:1.0.0-rc02
została zwolniona. Wersja 1.0.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Okna dialogowe są teraz zgodne z zachowaniem rozmiaru platformy. Aby zastąpić to zachowanie, ustaw
usePlatformDefaultWidth
na wartość Fałsz. (Iffaed, b/192682388)
Wersja 1.0.0-rc01
1 lipca 2021 r.
Usługa androidx.compose.material:material-*:1.0.0-rc01
została zwolniona. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano komponent
BadgeBox
. Informacje o użyciu znajdziesz w dokumentacji i przykładach (I5e284) - Nazwa pliku
useDefaultMaxWidth
w:PopupProperties
została zmieniona nausePlatformDefaultWidth
. (I05710) - Okna mogą teraz zajmować całą szerokość ekranu. (I83929, b/190810877)
- Dodano eksperymentalną implementację suwaka zakresu (I2f4b3).
Poprawki błędów
- Aby zapewnić zgodność ze specyfikacją Material Design, OutlinedTextField z użyciem nieprawidłowych danych wejściowych przestał używać koloru błędu etykiety, gdy etykieta jest używana jako obiekt zastępczy. Ta druga zasada obowiązuje, gdy w polu tekstowym nie ma tekstu wejściowego, a pole nie jest zaznaczone. W związku z tą zmianą znaczenie parametru
error:Boolean
w funkcjiTextFieldColors.labelColor()
uległo też zmianie: będzie teraz zwracać wartośćfalse
, nawet jeśli dane wejściowe są nieprawidłowe, gdy etykieta jest używana jako zmienna. (I45f78)
Wersja 1.0.0-beta09
16 czerwca 2021 r.
Usługa androidx.compose.material:material-*:1.0.0-beta09
została zwolniona. Wersja 1.0.0-beta09 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodaliśmy parametr Kształt do OutlinedTextField, by umożliwić dostosowanie kształtu obramowania (I8f39e, b/181322957)
- Ustawienie TextOverflow zostało zmienione na klasę wbudowaną. (I433af).
Poprawki błędów
- Scrim w panelu DrawDrawer, BackdropScaffold i MmodalbottomSheetLayout znikną, a pole Kolor zostanie przekazany. Nieokreślony (I2d899, b/182063309).
Dodane reguły profilu
Ta wersja dodaje reguły profilu do następujących 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.tekst
- androidx.compose.ui.tekst
- androidx.compose.ui.jednostka
- androidx.compose.ui.util,
Co to są reguły profilu?
Reguły profilu dla biblioteki określa się w pliku tekstowym
baseline-prof.txt
znajdującym się w katalogusrc/main
lub podobnym. Plik określa regułę w każdym wierszu, gdzie reguła w tym przypadku jest wzorcem dopasowywania do metod lub klas w bibliotece. Składnia tych reguł jest elementem nadrzędnym w przypadku czytelnego dla człowieka formatu profilu ART, który jest używany, gdy używaszadb shell profman --dump-classes-and-methods ...
. Reguły te mogą kierować reklamy na metody lub klasy w jednej z dwóch form.Reguła metody będzie miała następujący wzorzec:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Reguła klasy będzie miała następujący wzorzec:
<CLASS_DESCRIPTOR>
<FLAGS>
to co najmniej jeden ze znakówH
,S
iP
wskazujących, czy ta metoda ma być oznaczona jako „Przebojowa”, „Uruchomienie” lub „Po uruchomieniu”.<CLASS_DESCRIPTOR>
to deskryptor klasy, do której należy wybrana metoda. Na przykład klasaandroidx.compose.runtime.SlotTable
miałaby deskryptorLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
to podpis metody. Zawiera nazwę, typy parametrów i typy zwracanych metod. 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 ona popularna. i należy ją skompilować z wyprzedzeniem.Metoda z flagą
S
wskazuje, że jest ona wywoływana przy uruchamianiu i należy ją skompilować z wyprzedzeniem, by uniknąć kosztów kompilacji i interpretacji podczas uruchamiania.Metoda z flagą
P
wskazuje, że jest to metoda, która jest wywoływana po uruchomieniu.Klasa znajdująca się w tym pliku wskazuje, że jest używana podczas uruchamiania i powinna być wstępnie przydzielona na stercie, aby uniknąć kosztów wczytywania klasy.
Jak to działa?
- Biblioteki mogą definiować reguły, które będą spakowane w artefaktach AAR. Po utworzeniu pliku APK zawierającego te artefakty reguły te są łączone ze sobą, a scalone reguły służą do utworzenia kompaktowego binarnego profilu ART charakterystycznego dla danego pliku APK. Gdy pakiet APK jest zainstalowany na urządzeniu, ART może potem wykorzystać ten profil, by z wyprzedzeniem skompilować określony podzbiór aplikacji w celu poprawy jej wydajności, zwłaszcza przy pierwszym uruchomieniu. 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.
Usługa androidx.compose.material:material-*:1.0.0-beta08
została zwolniona. Wersja 1.0.0-beta08 zawiera te zatwierdzenia.
Nowe funkcje
Zmiana w interfejsie Behavior Breaking API
- NARUSZENIE DZIAŁANIA: Karta pochłania kliknięcia, dzięki czemu kliknięcia dodane przez
Card(Modifier.clickable)
nie są uznawane za kliknięcia. Użyj nowego, eksperymentalnego obciążenia karty, która akceptuje onClick. (Ia8744, b/183775620)- Dodaliśmy nowe przeciążenie karty, które obsługuje kliknięcia oraz inne klikalne funkcje: wskazanie, activitySource, włączone/wyłączone. Nie można było użyć zwykłej karty, której nie można kliknąć, z
Modifier.clickable
, ponieważ w takich przypadkach nie będzie ona przycinać fali.
- Dodaliśmy nowe przeciążenie karty, które obsługuje kliknięcia oraz inne klikalne funkcje: wskazanie, activitySource, włączone/wyłączone. Nie można było użyć zwykłej karty, której nie można kliknąć, z
- PRZERYWAJĄCE ZACHOWANIE: Platforma nie wymaga teraz kliknięć, więc kliknięcia dodane za pomocą usługi
Surface(Modifier.clickable)
są uznawane za nieopłacalne. Użyj nowego, eksperymentalnego przeciążenia Surface, która akceptuje onClick. (I73e6c, b/183775620)- Dodaliśmy nowe przeciążenie Surface, które obsługuje kliknięcia oraz inne klikalne funkcje: wskazanie, interakcjaSource, włączone/wyłączone. Użycie zwykłej powierzchni nieklikalnej z użyciem
Modifier.clickable
nie było możliwe, ponieważ w takich przypadkach nie będzie ona obcinać fali.
- Dodaliśmy nowe przeciążenie Surface, które obsługuje kliknięcia oraz inne klikalne funkcje: wskazanie, interakcjaSource, włączone/wyłączone. Użycie zwykłej powierzchni nieklikalnej z użyciem
Zmiany interfejsu API
- Komponent
FabPosition
został przekonwertowany z klasy wbudowanej z enum, aby umożliwić potencjalne rozwinięcie w przyszłości (I030fb) - Zrefaktoryzowane wykorzystanie enum do klas wbudowanych w celu uniknięcia zawierają dokładne informacje o tym, kiedy stwierdzenia, nowe wartości wyliczeniowe. (I2b5eb)
- Dodaje czas oczekiwania na kliknięcie, aby zapobiec wyświetlaniu fali podczas przewijania lub przeciągania (Ia2704, b/168524931)
- Właściwości ContentDescription i semantyka tekstu nie są już dostępne pojedyncze wartości, ale listy. Dzięki temu można je scalić w niezmienionej formie konkatenacji. Udostępniliśmy też lepsze interfejsy API do testowania, które pozwalają na korzystanie z zmiany (Ica6bf, b/184825850)
- Metoda
Modifier.focusModifier()
została wycofana i zastąpiona przezModifier.focusTarget()
(I6c860) - Zastąpiono enum
FocusState
interfejsemFocusState
(Iccc1a, b/187055290) - Usunięto
LocalRippleNativeRendering
, ponieważ implementacja fali po wyświetleniu jest stabilna (I7fab3, b/188569367)
Poprawki błędów
- Pole
Modifier.onGloballyPositioned()
zostało zmienione tak, aby po zastosowaniu wszystkich modyfikatorów raportować współrzędne tego modyfikatora w łańcuchu modyfikatorów, a nie współrzędne układu. Oznacza to, że teraz kolejność modyfikatorów wpływa na to, jakie współrzędne będą podawane w raportach. (Ieb67d, b/177926591) - Dodano plik README do istniejącego katalogu Compose Material. (If9191).
Wersja 1.0.0-beta07
18 maja 2021 r.
Usługa androidx.compose.material:material-*:1.0.0-beta07
została zwolniona. Wersja 1.0.0-beta07 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Nie musisz już używać metod rozszerzeń do obsługi trasy w funkcji Navigation Compose. (I22beb, b/172823546)
Wersja 1.0.0-beta06
5 maja 2021 roku
Usługa androidx.compose.material:material-*:1.0.0-beta06
została zwolniona. Wersja 1.0.0-beta06 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Funkcje Ripple zostały przeniesione do wewnętrznego korzystania z
RippleDrawable
na urządzeniach z Androidem. Oznacza to, że faliste animacje będą wyświetlane w obiekcie RenderThread, przez co będą płynne nawet wtedy, gdy wątek UI jest załadowany, na przykład podczas przechodzenia między ekranami. Nie zmieni to powierzchni interfejsu API, ale w wyniku tej zmiany mogą wystąpić zmiany w działaniu interfejsu. Aby ułatwić migrację, dodanoLocalRippleNativeRendering
– podaj wartośćfalse
do tego elementu CompositionLocal, aby wrócić do poprzedniej implementacji fali wewnątrz obiektu CompositionLocalProvider. Ten interfejs API jest tymczasowy i w przyszłości zostanie usunięty, więc jeśli napotkasz problemy, które uniemożliwiają korzystanie z niego, zgłoś błąd. (I902f8, b/168777351, b/183019123) - Dodano interfejsy API ułatwień dostępu CollectionInfo i CollectionItemInfo, które umożliwiają oznaczanie kolekcji i ich elementów dla usług ułatwień dostępu (Id54ef, b/180479017).
- Dodano interfejs API ułatwień dostępu
error
umożliwiający oznaczenie węzła zawierającego nieprawidłowe dane wejściowe (I12997, b/180584804, b/182142737)
Poprawki błędów
- Implementacja wkładek katalogu Compose Material została zaktualizowana na stronie https://github.com/google/accompanist/pull/365. (I25dc3)
- Wiersze i Elementy podrzędne kolumny z wagą(fill = false) nie powodują już wypełnienia całej dostępnej przestrzeni na osi głównej. (Ied94d, b/186012444, b/184355105)
Wersja 1.0.0-beta05
21 kwietnia 2021 r.
Usługa androidx.compose.material:material-*:1.0.0-beta05
została zwolniona. Wersja 1.0.0-beta05 zawiera te zatwierdzenia.
Poprawki błędów
- Do istniejącego katalogu Compose Material dodaliśmy obrazy kafelków komponentów, selektor motywów i bardziej szczegółowe adresy URL menu. (I9B58e)
Wersja 1.0.0-beta04
7 kwietnia 2021 r.
Usługa androidx.compose.material:material-*:1.0.0-beta04
została zwolniona. Wersja 1.0.0-beta04 zawiera te zatwierdzenia.
Zmiany interfejsu API
- ZMIANA W API: stan
DrawerState
nie jest już rozszerzony eksperymentalną funkcją PrzesuńableState.- ZMIANA W API:
BottomDrawerState
jest teraz oznaczony jako eksperymentalny, co pasuje do już eksperymentalnego komponentu docierania do dołu (I81114, b/181656094)
- ZMIANA W API:
- Włącz zmianę nazwy
hideSoftwareKeyboard
ishowSoftwareKeyboard
SoftwareKeyboardController
–hide()
ishow()
.- Udostępnij pełny interfejs CompositionLocal dla Oprogramowanie Local SoftwarekeyController, które umożliwia jego ustawienie (zwłaszcza przydatne w testach) (I579a6)
- Interfejs LiveRegion Accessibility API został dodany. Jeśli węzeł jest oznaczony jako aktywny region, usługi ułatwień dostępu automatycznie powiadomi użytkownika o zmianach (Idcf6f, b/172590946)
Poprawki błędów
- Do istniejącego modułu dodano wdrożenie katalogu Material Material. Obecnie brakuje: obrazy kafelków komponentu, selektor motywu (do dodania w kolejnych zmianach). (IE7a94)
Wersja 1.0.0-beta03
24 marca 2021 r.
Usługa androidx.compose.material:material-*:1.0.0-beta03
została zwolniona. Wersja 1.0.0-beta03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Interfejs
DefaultMonotonicFrameClock
został wycofany. ŁączęwithFrameNanos
lubRecomposer.runRecomposeAndApplyChanges
bezMonotonicFrameClock
wyrzuci terazIllegalStateException
. (I4eb0d). - Dodano nowy interfejs API
LeadingIconTab
, aby obsługiwać wyświetlanie ikony i tekstu w tekście na karcie. (I23267)
Treści tłumaczone przez użytkowników zewnętrznych
- [autor: Jossi Wolf]
BottomDrawer
pakuje teraz zawartość boksu panelu.BottomDrawer
nie wysyła elementuIllegalStateException
, gdy element nadrzędny ma nieskończoną wysokość. Dolna szuflada otwiera się teraz w stanie rozwiniętym, jeśli jej obszar jest mniejszy niż 50% elementu nadrzędnego. Zaktualizowano dokumenty dotyczące okołoBottomDrawerState
iModalBottomSheetLayoutState
.BottomDrawerState#isOpen
zwraca wartość „prawda”, jeśli jest w stanie otwartym lub rozwiniętym. (I87241)
Wersja 1.0.0-beta02
10 marca 2021 r.
Usługa androidx.compose.material:material-*:1.0.0-beta02
została zwolniona. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano nową lokalną kompozycję
LocalSoftwareKeyboardController
Interfejs API do zastąpienia poprzedniego interfejsuSoftwareKeyboardController
Pole tekstowe. (I5951e, b/168778053)
Poprawki błędów
- Egzekwuj ograniczenia dotyczące publicznego korzystania z eksperymentalnych interfejsów API (I6aa29, b/174531520)
- Zmieniono domyślne wyrównanie w poziomie dla elementów TopAppBar i bottomAppBar na „Start”, które są zgodne z wierszem (Ib2dc7).
- Dodaliśmy nowy moduł i interfejs zastępczy do katalogu Compose Material, który jest obecnie umieszczony w istniejących wersjach testowych integracyjnych. (Idfcb3).
androidx.compose.ui:ui
nie zależy już od AppCompat ani Fragment. Jeśli w swojej aplikacji używasz obiektu ComposeView i fragmentu lub AppCompat, sprawdź, czy używasz AppCompat 1.3 lub nowszego / fragmentu 1.3 lub nowszego – te wersje są niezbędne do prawidłowego ustawienia cyklu życia i zapisanych właścicieli stanu wymaganych dla ComposeView. (I1d6fa, b/161814404)
Wersja 1.0.0-beta01
24 lutego 2021 r.
Usługa androidx.compose.material:material-*:1.0.0-beta01
została zwolniona. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
To jest pierwsza wersja beta Compose 1.0.0.
Zmiany interfejsu API
- Zmieniono nazwy modyfikatorów rozmiaru. Zmieniono nazwę modyfikatora.width/height/size na requiredWidth/requiredHeight/requiredSize. Zmieniono nazwę metody Modifier.preferredWidth/preferredHeight/preferredSize na szerokość/wysokość/rozmiar. (I5b414)
- imageResource i vectorResource są teraz funkcjami rozszerzeń z komponentami towarzyszącymi ImageBitmap i ImageVector. load{Image,Vector,Font}Funkcje zasobów zostały usunięte. (I89130)
- Modyfikatory dopasowujące wymiary do elementów wewnętrznych nie są już eksperymentalne. (I15744)
- Usunięto asercje dp (I798d2)
- Usunięto wywołanie zwrotne SoftwareKlawiaturaController z całego tekstu które zostaną wkrótce zastąpione nowym interfejsem API. (IAe869, b/168778053)
- lambda poleceń Switch, Checkbox i RadioButton są teraz dostępne dopuszczalna jest wartość null. Przykłady pól wyboru w klikalnych wierszach zostały zaktualizowane, aby używać tej wartości funkcji. (If601b, b/171819073)
- Pole
InteractionState
zostało zastąpione tekstem[Mutable]InteractionSource
- Interfejsy odpowiadają za wysyłanie / zbieranie zdarzeń interakcji.
- Zamiast przekazywać
interactionState = remember { InteractionState() }
do komponentów takich jakButton
czyModifier.clickable()
, użyjinteractionSource = remember { MutableInteractionSource() }
. - Zamiast:
Interaction.Pressed in interactionState
użyj funkcji rozszerzeń w InteractionSource, takich jak InteractionSource.collectIsPressedAsState(). - W złożonych przypadkach możesz użyć 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)
- dodać interfejs AccessibilityMananger, LocalAccessibilityMananger in CompositionLocals (I53520),
- Usunięto wycofane metody LayoutCoordinates. Użyj funkcji zamiast właściwości positionInParent i boundsInParent (I580ed, b/169874631, b/175142755)
- Suwak obsługuje teraz stan włączenia/wyłączenia (I6d56b, b/179793072)
- Utworzono nową sesję TextInputSession na potrzeby sesji wprowadzania danych z komponentów tekstowych niskiego poziomu, np. CoreTextField. (I8817f, b/177662148)
- Element AnimationEndReason.Interrupted został usunięty. Anulowanie wyjątku będzie powodować zgłoszenie, jeśli animacja zostanie przerwana. (I2cbbc, b/179695417)
- Usunięto klasę
@ExperimentalRippleApi
i zmieniono klasęRippleAlpha
na klasę z właściwościami zamiast interfejsu. (I6df7c) - Dodano interfejs TextFieldColors do reprezentowania różnych kolorów używanych w polach TextField i OutlineTextField w różnych stanach. Informacje o implementacji definicji determinacji znajdziesz na stronach TextFieldDefaults.textFieldColors i TextFieldDefaults.outlinedTextFieldColors.
- Zmieniono nazwę parametru isErrorValue w polach TextField i OutlinedTextField do isError. (I831f9, b/171305338, b/168004067)
- Dodaj modyfikator selectGroup, który umożliwia oznaczanie kolekcji kart lub opcji na potrzeby ułatwień dostępu (Ie5c29)
Dodaj parametr LazyListState.animate ScrollToItem
Ta metoda powoduje płynne przewijanie do określonego elementu na liście. (I4bfd7).
Nazwa kolumny
ScrollableState.smoothScrollBy()
została zmieniona naanimateScrollBy()
NazwaLazyListState.snapToItemIndex()
została zmieniona nascrollToItem()
NazwaScrollState.smoothScrollTo()
została zmieniona naanimateScrollTo()
(zmodyfikowano)Wszystkie elementy kompozycyjne oznaczone symbolem
@ReadOnlyComposable
są teraz weryfikowane podczas kompilacji, aby zapewnić, że wywołują tylko inne elementy@ReadOnlyComposables
(I58961)Interfejs API TargetAnimation został usunięty. (If47d1, b/177457083)
Pozycja przewinięcia w modyfikatorze.vertical Scroll()/vertical Scroll() obecnie przedstawia się za pomocą liczb całkowitych (I81298).
smooth ScrollBy i ScrollBy pakiety zostały zmienione na
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473)Nazwa FlingConfig została zmieniona na FlingBehavior i umożliwia teraz dostosowanie animacji zawieszenia, a nie wstępnie zdefiniowanego spadku. (I02b86, b/175294473)
Zmieniono nazwy modyfikatorów rozmiaru. Zmieniono nazwę modyfikatora.width/height/size na requiredWidth/requiredHeight/requiredSize. Zmieniono nazwę metody Modifier.preferredWidth/preferredHeight/preferredSize na szerokość/wysokość/rozmiar. (I5b414)
Nazwa defaultMinSizeConstraints została zmieniona na defaultMinSize. (I4eaae),
Orientacja została przeniesiona do pakietu podstawowego. Przeniesiono aplikację VelocirtTracker z obszaru ui.gesture do witryny ui.input.pointer. (Iff4a8, b/175294473)
DrawerState.open() i dreszerState.close() zawieszają funkcje. Użyj funkcji PamiętajCoroutineScope(), aby uzyskać zakres kompozycji i je wywołać (I16f60, b/175294473).
Nazwa dostawców została zmieniona na CompositionLocalProvider
- Konstruktor Kompozycja nie akceptuje już kluczowego parametru i został wycofany.
- Parametr currentCompositeKeyHash został przekształcony w kompozycyjną właściwość najwyższego poziomu zamiast funkcji kompozycyjnej najwyższego poziomu.
- CompositionData i CompositionGroup zostały przeniesione do przestrzeni nazw androidx.compose.runtime.tooling.
- Interfejs ComposableLambda został utworzony zamiast konkretnej klasy i nie ma już parametrów typu.
- Interfejs ComposableLambdaN został utworzony zamiast konkretnej klasy i nie ma już parametrów typu.
- Funkcja snapshotFlow została przeniesiona do przestrzeni nazw androidx.compose.runtime
- metoda scalania zasady SnapshotMutationPolicy nie jest już eksperymentalna
- Funkcja clearRoots najwyższego poziomu
@TestOnly
została usunięta. Już nie jest to konieczne. - Funkcje keySourceInfoOf i resetSourceInfo zostały usunięte. Nie są już potrzebne.
- Element Composer.collectKeySourceInformation został usunięty. Już nie jest to konieczne.
- Metody isJoinedKey, JoinKeyLeft i joinKeyRight zostały usunięte. Nie są już potrzebne.
- Różne interfejsy API najwyższego poziomu zostały przeniesione i porządkowane w różne pliki. Ze względu na semantykę klas plików Kotlin spowoduje to naruszenie zgodności plików binarnych, ale nie źródła, więc nie powinno stanowić problemu dla większości użytkowników.
- (I99b7d, b/177245490)
Modifier.scrollable został przerobiony. Teraz używa interfejsu Scrollable zamiast klasy ScrollableController (I4f5a5, b/174485541, b/175294473)
Modifier.draggable akceptuje teraz obiekt DraggableState zamiast prostej lambda. możesz utworzyć stan w
rememberDraggableState { delta -> }
, aby uzyskać takie samo zachowanie jak wcześniej (Ica70f, b/175294473)ZoomableController.smoothScaleBy i ZoomableController.stopAnimation to funkcje zawieszania. (I7f970, b/177457083)
usunęliśmy niektóre wycofane wcześniej interfejsy API (Ice5da, b/178633932),
W interfejsie Material API wprowadzono te zmiany:
- Do górnego/dolnego paska aplikacji dodano parametr contentPadding, aby umożliwić dostosowanie domyślnego dopełnienia.
- Zmieniono kolejność parametrów w TleDScaffold, aby zachować zgodność z wytycznymi interfejsu API dotyczącymi parametrów, które powinny znajdować się przed parametrami opcjonalnymi.
- Parametr
icon
w elemencie bottomNavigationItem został przeniesiony zaselected
ionClick
. - Nazwa parametru
alwaysShowLabels
w elemencie bottomNavigationItem została zmieniona naalwaysShowLabel
. - Zmieniono nazwę parametrów
bodyContent
niektórych komponentów nacontent
. - Zmieniono kolejność parametrów w kolumnie
ButtonDefaults.buttonColors()
. Należy pamiętać, że ze względu na to, że typ parametrów nie uległ zmianie, nie spowoduje to błędu w kodzie. Upewnij się, że używasz parametrów nazwanych lub ręcznie zaktualizujesz kolejność. W przeciwnym razie kod nie będzie działać tak samo jak poprzednio. - Do grupy reklam
darkColors()
dodano parametrsecondaryVariant
. Ten kolor jest zwykle taki sam jak kolorsecondary
w ciemnym motywie, ale zapewnia spójność i dodatkowe możliwości dostosowania. - Usunięto klasę ElevationDefaults i animmateElevation() z publicznej platformy interfejsu API, ponieważ nie były one powszechnie używane ani przydatne.
- Zmieniono nazwę
onValueChangeEnd
wSlider
naonValueChangeFinished
i ustawiłem ją na wartość null. - Nazwa parametru
text
w komórceSnackbar
została zmieniona nacontent
w celu zachowania spójności. - Dodano parametr
contentPadding
do elementuDropdownMenuItem
, aby umożliwić dostosowanie domyślnego dopełnienia, oraz ustawieniecontent
jako rozszerzenia w witrynieRowScope
. - Nazwa
ModalDrawerLayout
została zmieniona naModalDrawer
. - Nazwa
BottomDrawerLayout
została zmieniona naBottomDrawer
. - (I1cc66).
BasicTextField zamiast koloru obsługuje teraz Pędzel, co daje lepsze możliwości dostosowania (I83a36)
imageResource i vectorResource są teraz funkcjami rozszerzeń z komponentami towarzyszącymi ImageBitmap i ImageVector. load{Image,Vector,Font}Funkcje zasobów zostały usunięte. (I89130)
Zmieniono Indication#createIndication() na Indication#rememberUpdatedIndication(InteractionState) i usunięto parametr InteractionState z instancji IndicationInstance#drawIndication(). Instancja Indication powinna być odpowiedzialna wyłącznie za rysowanie efektów wizualnych i nie uruchamiała animacji ani stanu zapisu w odpowiedzi na zmiany w InteractionState. Animacje i zapisy stanów powinny następować w zasadzie
rememberUpdatedIndication()
. Parametrindication
w obiekcieModifier.indication
również został zmieniony na parametr wymagany. (IC1764, b/152525426)
Poprawki błędów
- Dodano nową lokalną kompozycję klawiatury lokalnej Interfejs API zastępujący poprzedni interfejs SoftwareKlawiaturaController Pole tekstowe. (I658b6, b/168778053)
Wersja 1.0.0-alfa12
10 lutego 2021 r.
Usługa androidx.compose.material:material-*:1.0.0-alpha12
została zwolniona. Wersja 1.0.0-alfa12 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Modifier.pointerInput wymaga teraz zapamiętania klawiszy, aby wskazać, kiedy współrzędna wykrywania danych wejściowych wskaźnika powinna zostać uruchomiona ponownie zależności. (I849cd)
- DrawDrawerLayout i ListItem zostały oznaczone jako @ExperimentalMaterialApi (Id766e)
- Dodano parametr PaddingValues.Bezwzględny, którego można używać w interfejsach API akceptujących wartości PaddingValues. (Ia5f30).
- Interfejs onImeActionPerformed został wycofany. użyj Klawiatura Actions (If0bbd, b/179071523)
- Aby lepiej dopasować nazwy w formatach ImageBitmap i ImageVector Nazwa ImagePainter została zmieniona na BitmapPainter równolegle do obiektu VectorPainter. (Iba381, b/174565889)
- Animatable.snapTo i Animatable.stop to teraz funkcje zawieszania (If4288)
- Element KomponentActivity.setContent został przeniesiony do androidx.activity.compose.setContent w . (Icf416).
- Metody zniszczenia i copy() zostały usunięte z i kilku klas, w których były one rzadko używane. (I26702, b/178659281)
- Ustaw parametry fullExpand() i expand() w interfejsie ModalbottomSheetState wewnętrzny (Ic914e)
- Zmieniono Indication#createInstance na @Composable, a LocalIndication tak, by zawierał Indication, a nie () -> Wskazania. (I5eeea, b/157150564)
- Okno Alertów i Menu zostały przeniesione do trybu na Androidzie Do menu DropdownMenu dodano parametr PopupWłaściwości, który umożliwia dalszą konfigurację wyskakującego okienka. (I9c443)
- Zasób loadFontResource został wycofany. Zamiast tego użyj fontResource. imageResource, loadImageResource, vectorResource i loadVectorResource zostały wycofane. Użyj narzędzia PaintterResource. (I6B809)
- Parametry
toggle
itoggleModifier
zostały usunięte z menu oraz zmieniono ich nazwy odpowiedniodropdownModifier
,dropdownOffset
idropdownContent
namodifier
,offset
icontent
. Menu rozwijane działa teraz spójnie w sekcjiPopup
, gdzie do określenia pozycji menu jest używany układ nadrzędny. W większości przypadków możesz przenieść pliktoggle
, aby utworzyć element potomnyDropdownMenu
, i umieścić oba w elemencieBox
. Aby dowiedzieć się więcej o korzystaniu z tego interfejsu API, zapoznaj się ze zaktualizowanym przykładem w dokumentacji. (I884fb) - Nazwa funkcji toIntPx() została zmieniona na roundToPx(). (I9b7e4, b/173502290)
- Nazwa IntBounds została zmieniona na IntRect, a interfejs API został ulepszony. (I1f6ff)
- Dodano działania semantyczne rozwijania i zwijania. Dodane rozwinięcie i połowie rozwinięcia w elemencie ModalbottomSheetState (Ib5064)
- Interfejs Modifier.dragStepFilter został wycofany. Użyj w zamian zasady
Modifier.pointerInput { detectDragGestures (...)}
. Możesz też użyć metody Modifier.draggable, aby przeciągać jedną oś (I0ba93, b/175294473) - Zmieniono nazwy dźwięków otoczenia, tak aby pasowały do otoczenia -> Zmiana nazwy elementu CompositionLocal. Lokalizatory nosiły wcześniej nazwę AmbientFoo, a teraz CompositionLocals – LocalFoo. (I2d55d)
- Zaznaczenie zostało przeniesione do podstawy. (I7892B)
- Podobnie jak poprzednio usunęliśmy funkcję
state { 0 }
kompozycyjną, a teraz promujemy jej użycie, takie jakremember { mutableStateOf(0) }
, usuniemy funkcjęsavedInstanceState { 0 }
kompozycyjną. 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 do tej pory przekazywano obiekt wygaszacza niestandardowego, teraz musisz użyć nowego przeciążenia funkcji meetSaveable, które zawiera parametrstateSaver
. Użycie będzie wyglądać tak:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - Dodano ProgressBarRangeInfo.Indeterminate, aby zaznaczyć nieokreślone paski postępu w ułatwieniach dostępu (I6fe05).
Atrybut @ComposableContract został wycofany i zastąpiono 3 bardziej szczegółowymi adnotacjami.
@ComposableContract(restartable = false)
zmienia nazwę na@NonRestartableComposable
@ComposableContract(readonly = true)
zmienia nazwę na@ReadOnlyComposable
@ComposableContract(preventCapture = true)
zmienia nazwę na@DisallowComposableCalls
@ComposableContract(tracked = true)
został(a) usunięty(a).- (I60a9D)
Narzędzia
emptyContent()
i(@Composable () -> Unit).orEmpty()
zostały wycofane, ponieważ nie mają już pozytywnego wpływu na wydajność ani wartość (I0484d)Zapamiętano nazwę savedInstanceState(), aby korzystały z ! (I1366e, b/177338004)
Saver, listSaver(), mapSaver(), autoSaver przeniesiono z androidx.compose.runtime.savedinstancestate do androidx.compose.runtime.saveable (I77fe6).
Nazwy parametrów RounderCornerForm, CutCornerPosition i CornerBasedForm zostały zmienione z lewej/prawej na początek/koniec, by zapewnić obsługę automatycznego odbicia lustrzanego kształtu w kierunku rtl. Funkcje absoluteRounderCorner shape i absoledCutCornerPosition zostały wprowadzone w przypadkach, gdy automatyczne odbiór lustrzane nie jest potrzebne. (I61040, b/152756983)
Zmieniono parametry
text
iicon
karty oraz parametrlabel
elementu bottomNavigationItem na null, aby lepiej oddawało zachowanie komponentu, gdy te parametry nie są podane. Ma to wpływ na rozmiar i układ komponentu. Jeśli obecnie przekazujeszemptyContent()
, aby reprezentować brak tekstu, ikony/etykiety, zamiast tego użyjnull
. (I57ed4).Nazwa parametru contentColorFor została zmieniona na backgroundColor (I5bb67).
Wycofano element TabDefaults i zastąpiliśmy go wartością TabRowDefaults. (I0f189)
Użyto wprowadzonego interfejsu ColorMatrix API do modyfikowania wartości RGB treści źródłowej Zrefaktoryzowany interfejs API ColorFilter na i dopasuj implementację do klasy PathEffect. (Ica1e8),
Parametr AnimatedValue/Float został wycofany. Użyj Animowana. (I71345, b/177457083)
Dodano interfejs API SemanticsWłaściwości.PaneTitle. (I20d5a)
Dodano włączone parametry do elementów Tab i bottomNavigationItem, aby uniemożliwić ich klikanie. Zmieniono bottomNavigationItem na RowScope.bottomNavigationItem, aby lepiej przedstawić wymagania dotyczące układu w interfejsie API. (Id683d).
Parametry tapTrackingFilter, DoubleTapStepFilter, longPressConsentFilter i PressIndicaitonTrackingFilter zostały wycofane. Użyj w zamian funkcji Modifier.clickable lub Modifier.pointerInput z funkcją wykrywania gestów. (I6baf9, b/175294473)
Dodano parametr layout Direction do klasy createOutline w kształcie. Pozwala to tworzyć kształty uwzględniające kierunek układu. (I57c20, b/152756983)
Użytkownik
Recomposer.current()
został usunięty. [Abstract]ComposeView teraz domyślnie tworzone są leniwie, ograniczone do okna Rekompozycje oparte na metodzie ViewTreeLifecycleOwner dla okna. Zmiana kompozycji Znaczniki animacji oparte na mechanizmie withFrameNanos są wstrzymywane, a cykl życia hosta jest wstrzymywany. zatrzymuje się. (I38e11)
Poprawki błędów
- Ikona będzie teraz skalowana w górę, by pasowała do swojego rozmiaru, z uwzględnieniem zastosowanych do niej modyfikatorów rozmiaru. Na przykład
Icon(.., modifier = Modifier.size(50.dp)
będzie teraz rysować w miejscu o wymiarach 50 x 50 dp. (Ib2ba9, b/178796190)
Wersja 1.0.0-alfa11
28 stycznia 2021 roku
Usługa androidx.compose.material:material-*:1.0.0-alpha11
została zwolniona. Wersja 1.0.0-alfa11 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Przeniesienie niektórych interfejsów Material API do interfejsu
@Experimental
(I5d20e) - Do obrazów i ikon został dodany parametr Opis treści. Służy do opisania usług ułatwień dostępu (I2ac4c).
- Zmienia interfejsy parametrów stanowych Material w funkcje @Composable, które zwracają wartość
State<T>
. Dodaje atrybutAnimatable.asState()
, aby ułatwić przekształcenie animatycznej na stan. Zmienia też działanie animacji Elevation na rozszerzenie w trybie zawieszenia w Animatable. (If613c). - Snackbar, SnackbarHost, SnackbarHostState nie są już
@ExperimentalMaterialAPI
(Id1fb5) - Zmienia typografię, kształty i pozycję Tablicy, by nie były już klasami danych. Dodaje funkcję kopiowania dla Typografii i Kształtów, aby zastąpić wygenerowane wartości. (I40037)
- usunęliśmy niektóre wycofane wcześniej interfejsy Material API (Ifaa25);
Poprawki błędów
- Interfejsy onCommit, onDispose i onActive zostały wycofane i zastąpione interfejsami SideEffect i DiposableEffect (If760e).
- Przejście na podstawie definicji przejścia zostało wycofane (I0ac57)
- Obsługiwany jest stan początkowy w trakcie aktualizacji (Ifd51d)
- Element WithConstraints został przetworzony pod nazwą BoxWithConstraints i przeniesiony do pliku Foundation.layout. (I9420b, b/173387208)
Wycofanie funkcji przewijania ScrollBy bez zawieszenia, usunięcia elementu przewijania bez zawieszenia
Teraz zalecamy używanie funkcji zawieszania w celu kontrolowania przewijania i oczekiwania aby zakończyć przewijanie. Wycofujemy lub usuwamy bez zawieszania wersji tych funkcji w ramach tego przejścia. (Zastosowane)
Wycofanie funkcji smooth ScrollBy bez zawieszenia Teraz zalecamy używanie funkcji zawieszania w celu kontrolowania przewijania i oczekiwania aby zakończyć przewijanie. Wycofujemy wersje bez zawieszenia tych funkcji. (I12880)
Data
ComposeContentTestRule
, która obejmuje okres próbnyComposeTestRule
i definiuje zasadęsetContent
, która została usunięta zComposeTestRule
Dodano metodę fabrycznącreateEmptyComposeRule()
zwracającyComposeTestRule
i nie uruchamia aktywności dla do Ciebie. Użyj tej opcji, jeśli chcesz uruchomić aktywność w trakcie testu. np. przy użyciuActivityScenario.launch
(I9d782, b/174472899)Odchyleń używanych w elementach Button i FloatingActionButton nie można już dostosowywać przez wprowadzanie nowych Wskazówek w AmbientIndication – nigdy nie było to w zamierzeniu sposób dostosowywania tych komponentów, dlatego teraz są one spójne z innymi komponentami Material. Aby dostosować Echo w aplikacji, zobacz RippleTheme. (I546c5)
animateAsState to teraz animateFooAsState, typu animowanej zmiennej. np. Float, Dp, Offset itp. (Ie7e25)
BasicTextField otrzymał nowy parametr o nazwie
decorationBox
. Umożliwia dodanie dekoracji, takich jak ikony, obiekty zastępcze, etykiety i inne podobne do elementów w polu tekstowym, oraz zwiększenie jego docelowego obszaru działania. (I16996).Poprawiono błąd, przez który nie można było ustawić szerokości pola tekstowego materiału poniżej 280.dp (I78373).
Parametr canDrag został usunięty z pliku Modifier.draggable (Ic4bec, b/175294473)
Usuń parametr displaySize, ponieważ powinien się unikać. Zwykle jest to lepiej użyć rozmiaru co najmniej onRoot() lub rozmiaru okna. (I62db4).
Platforma może teraz mieć wiele elementów podrzędnych układu. (I66a92, b/144488459)
Nieprawidłowo i kompozytoryzacja() zostały wycofane. Zastąpiono je odpowiednio recomposeScope i ReminderCompositionReference. (I583a8)
Zmienia element PopupPositionProvider, aby używać współrzędnych zależnych od okna, a nie globalnych. Zmienia nazwę obiektuparentGlobalBounds na AnchorBounds i zmienia parametr windowGlobalBounds na
windowSize: IntSize
(I2994a)Czas trwania i czas działania zastąpimy długimi milisekundami, i eliminuje zależność od danych wejściowych wskaźnika. zajęcia. (Ia33b2, b/175142755, b/177420019)
Usunięto plik AnimatedFloating.fling, który akceptuje FlingConfig. Użyj opcji Zawieś Animatable.animateDecay. (I4659b, b/177457083)
klikalne, włączane i klikalne można teraz tworzyć poza kompozycją (I0a130, b/172938345, b/175294473)
Wygładzanie zostało zmienione na interfejs funkcjonalny (Ib14e5)
Przewijane kolumny/wiersz zostały wycofane. Korzystanie z ScrollableColumn jest mniej wydajne niż LazyColumn, jeśli masz dużo przewijanych treści, ponieważ LazyColumn umożliwia tylko tworzenie, pomiar i rysowanie widocznych elementów. Aby uchronić użytkowników przed niewydajnym działaniem, zdecydowaliśmy się wycofać elementy ScrollableColumn i ScrollableRow i promować wykorzystanie metod LazyColumn i LazyRow. Użytkownicy mogą zdecydować, że nie wymagają leniwego działania, i użyją modyfikatorów bezpośrednio w ten sposób: Column(Modifier.vertical Scroll(remember ScrollState())) (Ib976b, b/170468083).
Nowa metoda fabryczna
items(count: Int)
dla zakresu LazyColumn/LazyRow/LazyVerticalGrid.items(items: List)
iitemsIndexed(items: List)
to teraz funkcje rozszerzeń, więc trzeba je importować ręcznie, gdy są używane. Nowe przeciążenia rozszerzeń dla tablic:items(items: Array)
iitemsIndexed(Array)
(I803fc, b/175562574)Usunięto eksperymentalne metody monotonicFrameAnimationClockOf (Ib753f, b/170708374).
Wycofanie metod globalnych współrzędnych i nowych metod współrzędnych opartych na oknie. (IEE284).
Dodano modyfikator.toolingGraphicsLayer, który po włączeniu inspekcji dodaje modyfikator warstwy graficznej. (I315df)
Element FocusRequester.createRefs jest teraz oznaczony jako eksperymentalna, ponieważ może się zmienić. (I2d898, b/177000821)
Nazwa Semantics PropertyReceiver.hidden została zmieniona na invisibleToUser i oznaczona jako @ExperimentalComposeUiApi. Nazwa AccessibilityRangeInfo została zmieniona na ProgressBarRangeInfo. Nazwa parametru stateDescriptionRange została zmieniona na progressBarRangeInfo. Nazwa Accessibility ScrollState została zmieniona na ScrollAxisRange. Nazwa levelAccessibility ScrollState została zmieniona na level ScrollAxisRange. Nazwa pionowości ScrollState została zmieniona na vertical ScrollAxisRange. (Id3148).
Wykorzystanie narzędzia TestCoroutineDispatcher w testowaniu (I532b6)
Zaktualizowano grafikę wektorową Interfejs API do obsługi analizy barwienia zastosowane do pierwiastka grafiki wektorowej. (Id9d53, b/177210509)
Wersja 1.0.0-alpha10
13 stycznia 2021 r.
Usługa androidx.compose.material:material-*:1.0.0-alpha10
została zwolniona. Wersja 1.0.0-alfa10 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zmodyfikowano prędkość, aby obejmowała składowe i matematyczne operacji. (IB0447)
- Zmieniono nazwę
@ExperimentalTesting
na@ExperimentalTestApi
na spójne z podobnymi eksperymentalnymi adnotacjami interfejsu API (Ia4502, b/171464963) - Zmieniono nazwę pozycji na DpOffset i usunęliśmy getRange() (Ib2dfd).
- Zmieniono nazwę Color.useOrElse() na Color.takeOrElse() (Ifdcf5)
- Dodaj przełącznik do podstawowego pliku Strings.kt (I4a5b7, b/172366489)
- Obiekty FlowRow i FlowColumn zostały wycofane. Użyj układu niestandardowego. (I09027)
- Modifier.focus() i Mmodifier.focusRequester() zostały wycofane. Użyj w zamian metod Modifier.focusModifier() i Modifier.focusReference(). (I75a48, b/175160751, b/175160532, b/175077829)
- Przeniesiono klasę natywny do interfejsu użytkownika i udostępniono go do użytku wewnętrznego. Zaktualizowano przypadki użycia natywnego klasy w równa się implementacji do użycia „to MyClass” . (I4f734)
Poprawki błędów
- Dodano obsługę wyłączonych i tylko do odczytu pól tekstowych (I35279, b/171040474, b/166478534)
- Ciąg
animate()
został zastąpiony tekstemanimateAsState()
, , który zwracaState<T>
zamiastT
. Dzięki temu skuteczności, ponieważ można zawęzić zakres unieważniania w którym odczytywana jest wartość State. (IB179e) - Dodaj interfejs API roli Semantics i Rolę jako parametr do klikalny, wybierany i włączany SemanticsModifier. Zmieniono Modifier.progressSemantics, aby Slider mógł z niego korzystać. (I216cd)
Wersja 1.0.0-alpha09
16 grudnia 2020 roku
Usługa androidx.compose.material:material-*:1.0.0-alpha09
została zwolniona. Wersja 1.0.0-alfa09 zawiera te zatwierdzenia.
Zmiany interfejsu API
- dodano interfejs API, aby ręcznie aktywować ułożenie animacji i przeciągnięcie w pliku Modifier.swipeable (Iaa17a, b/162408885)
- Zmieniono nazwy obiektów *Stałe, np. ButtonConstants, tak aby kończyć się wartościami domyślnymi, np. ButtonDefaults. Z właściwości w tych nowych obiektach zostaną też usunięte zbędne prefiksy
default
. (Ibb915, b/159982740) Funkcja tworzenia obsługuje moduły pobierania właściwości, które mogą tworzyć wywołania kompozycyjne. Ta funkcja nie będzie już obsługiwana, ale zmienia się składnia deklarowania metody pobierania właściwości jako typu @Composable.
Wycofana składnia służąca do tego celu polegała na dodaniu adnotacji do samej właściwości:
@Composable val someProperty: Int get() = ...
Prawidłową składnią, aby to zrobić, jest dodanie adnotacji do metody getter właściwości:
val someProperty: Int @Composable get() = ...
Obie składni będą działać przez jakiś czas, ale poprzednia wycofana składnia stanie się w końcu błędem kompilacji. (Id9197).
Dodaliśmy bibliotekę
androidx.compose.material:material-ripple
zawierającą interfejsy API Ripple, aby umożliwić tworzenie komponentów interaktywnych bez konieczności korzystania z reszty biblioteki Material. Parametr pamiętajRippleIndication został wycofany i zastąpiony przez generateRipple. (Ibdf11).
Poprawki błędów
- Funkcje lambda w modyfikatorach przesunięcia zwracają teraz wartość IntOffset, a nie liczbę zmiennoprzecinkową. (Ic9ee5, b/174137212, b/174146755)
Refaktoryczny ShaderBrush na leniwie twórz instancję cieniowania, informacje o rozmiarze rysunku i środowisko. Przydaje się to do definiowania gradientów zajmują pełne granice rysowania funkcji kompozycyjnej w momencie kompozycji, bez konieczności na wdrożenie niestandardowych implementacji DrawModifier.
Wycofane interfejsy API konstruktora funkcji gradientu na metodę fabryczną obiektu Gradient. (I511fc, b/173066799)
Interfejs Modifier.focusObserver został wycofany. Użyj metody Modifier.onFocusChanged lub Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
Wycofano LazyColumnFor, LazyRowFor, LazyColumnForIndexed i LazyRowForIndexed. Użyj LazyColumn i LazyRow (I5b48c)
Przeniesiono Konwersja Dp.VectorConverter, Position.VectorConverter itd. animacje-core i wycofała stare rozwiązanie VectorConveters (If0c4b).
Autofill API to teraz eksperymentalny interfejs API, który wymaga włączenia (I0a1ec)
Dodawanie deklaracji demontażu struktury w celu utworzenia instancji FocusRequester (I35d84, b/174817008)
AccessibilityLabel została zmieniona na contentDescription. Zmieniono nazwę ułatwień dostępu na stateDescription. (I250f2)
Nowa funkcja nieskończoności powtarzania do tworzenia specyfikacji InfiniteRepeatableSpec (I668e5)
Sposób pozycjonowania menu DropdownMenu został nieco zmieniony zgodnie ze specyfikacją Material. (I34c72, b/168594123)
Dodaliśmy obsługę obiektu InteractionState dla pól tekstowych. (I61d91)
Do czyszczenia elementów podrzędnych dodano modyfikator.clearAndSetSemantics semantykę i wyznaczać nowe wartości. (I277ca)
Przeniesiono ContentDrawScope do grafiki UI z DrawScope. (Iee043, b/173832789)
Wersja 1.0.0-alpha08
Grudzień 2, 2020
androidx.compose.material:material:1.0.0-alpha08
, androidx.compose.material:material-icons-core:1.0.0-alpha08
i androidx.compose.material:material-icons-extended:1.0.0-alpha08
zostały udostępnione. Wersja 1.0.0-alfa08 zawiera te zatwierdzenia.
Zmiany interfejsu API
- MaterialTheme ustawia teraz prawidłowe kolory uchwytów wyboru i tła zaznaczenia. Aplikacje niematerialne mogą ręcznie używać elementów AmbientTextSelectionColors, aby dostosowywać kolory używane do zaznaczenia. (I1e6f4, b/139320372, b/139320907)
- Dodano sprawdzanie nazw i pozycji parametrów kompozycyjnych lambda w celu sprawdzenia spójności z wytycznymi dotyczącymi tworzenia wiadomości.
Zgodnie ze sprawdzaniem lintowania i wskazówkami przenieśliśmy też niektóre interfejsy API z użyciem nazwy
children
jako nazwy końcowej lambdy docontent
. (Iec48e). - Zmieniono nazwę zasobu wektorowego na ImageVector Przeniesiono zasób VectorAsset do Builder i zmieniono jego nazwę na być wewnętrzną klasą ImageVector zgodnie z wytyczne rady ds. interfejsów API. Dodano alias typu VectorAssetBuilder do do pliku ImageVector.Builder dla zgodności. (Icfdc8)
- Zmieniono nazwy komponentu ImageAsset oraz powiązane z ImageBitmap. (Ia2d99)
- Przeniesiono właściwości semantyki podstawowej do interfejsu użytkownika (I6f05c)
- Interfejs
fun RippleIndication()
został wycofany i zastąpionyrememberRippleIndication()
, aby zapewnić spójność z innymi interfejsami API. (Id8e2c). - Do pól BasicTextField, TextField i OutlinedTextField dodaliśmy parametr singeLine. Ustaw ten parametr na „true”, aby pole tekstowe było jedną linią, którą można przewijać w poziomie. (I57004, b/168187755)
Poprawki błędów
- Dodaj działanie semantyczne Odrzuć (I2b706)
- Przeniesiono interfejsy API DrawModifier z androidx.compose.ui do androidx.compose.ui.draw. Plik DrawModifierlegacy.kt został utworzony w uwzględnij aliasy typów/metody pomocnicze, aby ułatwić migracji z wycofanych do bieżących API. (Id6044, b/173834241)
- Nazwa Modifier.drawLayer została zmieniona na Modifier.graphicsLayer Zaktualizowaliśmy też powiązane klasy w GraphicsLayer zgodnie z Opinia o interfejsie API. (I0bd29, b/173834241)
- Element
<T>
został usunięty z deklaracji SubcomposeLayout. Możesz go użyć bez określania typu. (IB60c8) - Dodano Modifier.scale/rotate
interfejsów API jako udogodnień w DrewLayer.
- Nazwa
Modifier.drawOpacity
została zmieniona naModifier.alpha
- Nazwa
Modifier.drawShadow
została zmieniona naModifier.shadow
(I264ca, b/173208140)
- Nazwa
- Nazwa parametru wyrównania Box została zmieniona na contentWyrównajment. (I2C957)
- Zmieniono nazwy modyfikatorów przesunięciaPx na przesunięcie. Wykorzystują teraz parametry lambda zamiast stanu State. (Ic3021, b/173594846)
- Wprowadzenie SweepGradientShader interfejsów API oraz SweepGradientBrush. (Ia22c1).
- Dodano sprawdzanie lintowania parametrów modyfikatora w funkcjach kompozycyjnych. Ten lint sprawdza nazwy, typ zwracany, wartość domyślną i kolejność parametru pod kątem spójności ze wskazówkami dotyczącymi tworzenia wiadomości. (If493b).
- Zaktualizowano TextFieldValue API
- ustawił wartość pola TextFieldValue.composition tylko do odczytu
- usunięto wyjątek dla nieprawidłowego zakresu wyboru (I4a675, b/172239032)
- Dodano nowe obciążenie typu
Modifier.drawLayer()
. Zajmuje to nowy blok lambda w elemencie GraphicsLayerScope, gdzie definiujesz parametry warstwy w sposób, który umożliwia pominięcie ponownej kompozycji i przekazywania jej po zmianie stanu. DrawLayerModifier jest obecnie na wewnętrznym etapie przygotowań do migracji logiki do metodyplaceable.placeWithLayer()
w LayoutModifier (I15e9f, b/173030831) - Wycofany komponent Ambient został wycofany z sufiksem
Ambient
i zastąpił je nowymi właściwościami z prefiksem Ambient zgodnie z innymi wytycznymi dotyczącymi interfejsu Ambients i Compose API. (I33440) - Dodaliśmy sprawdzanie lintowania, aby sprawdzić, czy fabryki modyfikatorów używają wewnętrznie interfejsu
androidx.compose.ui.composed {}
, a nie są oznaczane jako@Composable
. (I3c4bc). - Nazwa argumentu semantyka mergeAllDescendants została zmieniona na mergeDescendants. (IB6250)
- Kontrola czasu w testach (TestAnimationClock i jego zastosowania) to teraz w fazie eksperymentalnej (I6ef86, b/171378521)
- Usuń stary moduł testowania interfejsu i jego złącza (I3a7cb)
- Nazwa elementu TextUnit.Inherit została zmieniona na TextUnit.Nieokreślona, aby zachować spójność z innymi jednostkami. (Ifce19).
- Interfejs Wyrównania został zaktualizowany i działa. (I46a07, b/172311734)
- Zmieniono nazwę identyfikatora na „LayoutId” dla elementu LayoutIdParentData. Nazwa Measurable.id została zmieniona na Measurable.layoutId. (Iadbcb, b/172449643)
Wersja 1.0.0-alpha07
11 listopada 2020 roku
androidx.compose.material:material:1.0.0-alpha07
, androidx.compose.material:material-icons-core:1.0.0-alpha07
i androidx.compose.material:material-icons-extended:1.0.0-alpha07
zostały udostępnione. Wersja 1.0.0-alfa07 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Wyróżnienie zostało wycofane i zastąpione elementem AmbientContentAlpha. AmbientContentAlpha to prostsza abstrakcja, która reprezentuje wersję alfa preferowanej treści w części hierarchii, podobnie jak w przypadku preferowanego koloru treści AmbientContentColor. Tekst i ikona domyślnie pobierają teraz bieżącą wartość z AmbientContentAlpha. Możesz to zrobić ręcznie:
color.copy(alpha = AmbientContentAlpha.current)
, aby uzyskać taki sam efekt w komponentach. Zamiast korzystać z ProvideEmphasis, możesz po prostu podać wartość bezpośrednio za pomocą AmbientContentAlpha i zastąpić stare EmphasisLevels nowymi poziomami domyślnymi w ContentAlpha. (Idf03e, b/159017896) - Dodaje androidx.compose.material.AmbientContentColor, aby zastąpić androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770)
- Dodaje komponent androidx.compose.material.Text, aby zastąpić androidx.compose.foundation.Text jako komponent wysokiego poziomu tekstu z motywami. W przypadku podstawowego komponentu tekstu, który nie wykorzystuje stylu koloru / tekstu z motywu, użyj BasicText. (IE6ae0).
- Dodano maxLines do pól tekstowych (Ib2a5b).
- Zaktualizuj pola TextFields, aby akceptować KlawiaturaOptions (Ida7f3)
- W przypadku powierzchni uwzględnia teraz wysokość bezwzględną (całkowitą) podczas obliczania nakładek wysokości, więc powierzchnia zagnieżdżona na innej powierzchni używa tej połączonej wysokości do rysowania. (I7bd2b, b/171031040)
Poprawki błędów
captureToBitmap
przeniesiono do:captureToImage
. (I86385)- Podstawowe funkcje AmbientTextStyle, ProvideTextStyle i AmbientContentColor zostały wycofane. Zamiast nich używaj nowych wersji dostępnych w bibliotece Material Design. W przypadku aplikacji innych niż Material Design należy utworzyć własny system projektowania specyficznych dla nich motywów graficznych, z którego można korzystać w własnych komponentach. (I74acc, b/172067770)
- Foundation.Text została wycofana i zastąpiona materiałem material.Text. Informacje o podstawowym, nieopiniowanym interfejsie API tekstowym, który nie przetwarza wartości z motywu, znajdziesz na stronie androidx.compose.foundation.BasicText. (If64cb).
- Zmień nazwę KeyboardOptions na ImeOptions (I82f36).
- Przeniesiono KlawiaturaType i ImeAction do KlawiaturaOptions (I910ce).
- Pole BaseTextField zostało wycofane. Użyj w zamian pola BasicTextField. (I896eb)
- Adnotacja ExperimentalSubcomposeLayoutApi została usunięta. Elementu SubcomposeLayout można teraz używać bez dodawania elementu @OptIn (I708ad)
- FirstBaseline i LastBaseline zostały przeniesione do pakietu androidx.compose.ui.layout (Ied2e7).
- Zaktualizowany interfejs Icon API, aby stał się dostępny w przypadku koloru.Nieokreślony jako możliwy odcień, który będzie rysował uzyskany kolor lub malarza bez filtra ColorFilter. Wcześniej próbuje zignorować zabarwienie za pomocą parametru Color.Unspecified zabarwienie na przezroczystym kolorze w ogóle nie jest renderowana. (I049e2, b/171624632)
- Zmieniono nazwę parametru metricPaddingFrom na splashFrom. Dodaliśmy modyfikator paddingFromBaseline, aby ułatwić określenie odległości od granic układu do linii bazowych tekstu. (I0440a, b/170633813)
- Nazwa LaunchedTask została zmieniona na LaunchedEffect, aby zachować spójność w interfejsach API SideEffect i DiposableEffect. LaunchedEffect bez Parametry tematu są niedozwolone w celu promowania sprawdzonych metod. (Ifd3d4).
- Element MeasureResult został przeniesiony z obiektu 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.material:material:1.0.0-alpha06
, androidx.compose.material:material-icons-core:1.0.0-alpha06
i androidx.compose.material:material-icons-extended:1.0.0-alpha06
zostały udostępnione. Wersja 1.0.0-alfa06 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Strona androidx.compose.foundation.Icon została przeniesiona do androidx.compose.material.Icon. Jeśli nie chcesz korzystać z biblioteki Material Design, możesz w narzędziu Painter użyć komponentu Image / Modifier.paint() . (I9f622)
- Dodaje element FloatingActionButtonElevation, który odzwierciedla wysokość używaną przez przyciski PPP w różnych stanach. W sekcji FloatingActionButtonConstants.defaultElevation() znajdziesz implementację domyślną (I2d4f5).
- Dodaje interfejs SwitchColors do reprezentowania kolorów używanych przez przełącznik w różnych stanach. Aby dostosować te kolory, zobacz SwitchConstants.defaultColors. (I93805)
- Dodaje interfejsy ButtonElevation i ButtonColors do reprezentowania wysokości i kolorów używanych przez przyciski o różnych stanach. Aby dostosować te parametry, zapoznaj się z domyślnymi funkcjami w ButtonConstants. (IC5b7b)
- Dodaje interfejs RadioButtonColors do reprezentowania kolorów używanych przez opcję RadioButton w różnych stanach. Aby dostosować kolory używane w różnych stanach, patrz RadioButtonConstants.defaultColors(). (I74130)
- Dodaje interfejs CheckboxColors reprezentujący kolory używane przez pole wyboru o różnych stanach. Aby dostosować kolory używane w różnych stanach, patrz CheckboxConstants.defaultColors(). (I7dbdb)
Poprawki błędów
- Komponenty Material Design nie ustawiają już wysokości jako zIndex. Oznacza to, że w obrębie tego samego elementu nadrzędnego element podrzędny z większym cieniem nie będzie automatycznie rysowany na elemencie podrzędnym z mniejszym. Jeśli nadal potrzebujesz takiego działania, w razie potrzeby ustaw ręcznie Modifier.zIndex() (I70417, b/170623932)
- Wycofanie VectorPainter z korzyścią na lepsze radzenia sobie z. wskazują, że interfejs API kompozycyjny jest wewnętrzny Wykorzystywane jest słowo „zapamiętanie” zachowywania danych w kompozycje. (Ifda43).
- włącz przejścia w zasadzie ComposeTestRule; usuń opcję włącz migający kursor w ComposeTestRule. (If0de3).
- Do CoreTextField (I72e6d) dodano opcję klawiatury jednowierszowej.
- Zmieniono nazwę Radius API na Promień narożnika ułatwiający ekspresowanie jak jest on używany w tworzeniu. Zaktualizowaliśmy dokumentację, aby wskazać że ujemne promienie narożników są zaciśnięte, do zera. (I130c7, b/168762961)
- Zrefaktoryzowano DrawScope
ContentDrawScope jako interfejsy
zamiast klas abstrakcyjnych
- Implementacja CanvasDrawScope została utworzona z DrawScope
- Zrefaktoryzowane implementacje DrawScope, aby używać obiektu CanvasScope
- Utworzono element DrawContext w celu zawijania zależności dla DrawScope
- Usunięto wycofane metody w DrawScope (I56f5e).
- Box został przekształcony w funkcję wbudowaną. (Ibce0c, b/155056091)
Wersja 1.0.0-alpha05
14 października 2020 r.
androidx.compose.material:material:1.0.0-alpha05
, androidx.compose.material:material-icons-core:1.0.0-alpha05
i androidx.compose.material:material-icons-extended:1.0.0-alpha05
zostały udostępnione. Wersja 1.0.0-alfa05 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Wyskakujące okienka i okna dialogowe dziedziczą teraz flagę FLAG_SECURE z okna nadrzędnego. Dodaliśmy też opcję bezpośredniego konfigurowania (I64966, b/143778148, b/143778149)
- Modifier.swipeable ma obecnie domyślne wartości progowe 56.dp dla stanów (Iab825, b/168610267)
- wszystkie stany rusztowania oznaczone jako @Stable. DrszterGestysEnabled w ScaffoldState zostały przeniesione do samego Scaffold. (I36645, b/168297016)
- Usuwa z parametrów lambda w Scaffold typ dopuszczalny do wartości null. Możesz użyć funkcji emptyContent() do reprezentowania braku treści dla danego parametru. (I2b318, b/157633857, b/158551084)
Wycofuje interfejsy API contentColor() i currentTextStyle(), a następnie zastępuje je odpowiednio środowiskom AmbientContentColor i AmbientTextStyle. Aby uzyskać dostęp do bieżącej wartości, użyj właściwości
.current
z właściwości trybu nieaktywnego, jak w przypadku każdego innego elementu otoczenia. 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 elementów otoczenia, by lepiej opisać ich przeznaczenie:- ContentColorAmbient -> Kolor treści Ambient
- TextStyleAmbient -> Styl tekstu otoczenia
- IndicationAmbient -> Wskazanie otoczenia
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Dodaje nakładkę AmbientElevationOverlay, która umożliwia dostosowanie lub wyłączenie domyślnej nakładki wysokości zastosowanej do powierzchni w ciemnym motywie. (I5B74D)
Poprawki błędów
- W ramach standaryzacji wartości ustawnych dla klas wbudowanych, zmień nazwę Kolor.Usuń ustawienie na Kolor.Nieokreślony w celu zachowania spójności z innymi klasami wbudowanych (I97611, b/169797763)
- Wprowadzono tekst TextOverflow.None. Gdy nadmiarowe ma wartość Brak, tekst nie obsługuje już nadmiarowych elementów i zgłasza rzeczywisty rozmiar do LayoutNode. (I175c9, b/158830170)
- Parametr launchInComposition został zmieniony na LaunchedTask, aby pasować do funkcji Compose Wytyczne dotyczące interfejsu API (I99a8e)
- Nazwa OnPositionedModifier została zmieniona na OnGloballyPositionedModifier a nazwa onPositioned() została zmieniona na onGloballyPositioned(). (I587e8, b/169083903)
Wersja 1.0.0-alpha04
1 października 2020 roku
androidx.compose.material:material:1.0.0-alpha04
, androidx.compose.material:material-icons-core:1.0.0-alpha04
i androidx.compose.material:material-icons-extended:1.0.0-alpha04
zostały udostępnione. Wersja 1.0.0-alfa04 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Udostępnia parametry InteractionState w stanowych komponentach Material, co umożliwia przenoszenie stanu i odczytywanie / sterowanie nim. (Iaca5f, b/168025711, b/167164434)
- Zmienia parametry
*color
w parametrach RadioButton i TriStateCheckbox, aby umożliwić pełne dostosowanie kolorów używanych w każdym stanie, a także w razie potrzeby zmianę sposobu animowania kolorów między stanami. Więcej informacji znajdziesz w opisie nowych funkcji kolorów animateDefault* w atrybutach CheckboxConstants i RadioButtonConstants. (I1c532). - Zmieniono nazwę generateBackdropState w celu zapamiętaniaBackdropScaffoldState i dodaliśmy parametr zegara animacji. Zmieniono nazwę parametru backgroundScaffoldState z BackdropScaffold na scaffoldState. Nazwa została zmieniona Ciągi za pomocą funkcji BackdropScaffold. (IB644D)
- Dodano eksperymentalny komponent DolnyScaffold. (Ie02f0, b/148996320)
- Dodano eksperymentalny komponent ModalbottomSheetLayout. (IC209e, b/148996320)
- Zmienia nazwę elementu ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation na defaultElevation, a teraz zwraca wartość Dp zamiast AnimatedValue. (I5f3ed)
Poprawki błędów
- Zaktualizowano wiele interfejsów API związanych z grafiką
- Zaktualizowano skalę i obrót interfejsów API transformacji, aby wykorzystać Parametr przesunięcia reprezentujący tabelę przestawną współrzędna zamiast osobnej liczby zmiennoprzecinkowej dla współrzędnych x/y w DrawScope i DrawTransform
- Usunięto elementy Rect.expandToInclude i Rect.join metod
- Zaktualizowaliśmy dokumentację dotyczącą promienia o owalu. oprócz orbitreka
- Dodaliśmy dokumentację, by wskazać publiczny konstruktor dla wbudowanego promienia klasa nie powinna być wywoływana bezpośrednio, Wystąpienia obiektów o określonym promieniu powinny być tworzone przez ich konstruktory funkcji
- Usunęliśmy interfejsy RoundRect API do wysyłania zapytań dotyczących górnego prawa, dolny róg, dolny środek 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 element RoundRect.middleRect/tallMiddleRect/wideMiddleRect i Rect.isStadium
- Nazwa RoundRect.longestSide została zmieniona na RoundRect.maxDimensions
- Zmieniono nazwę RoundRect.shortestSide na RoundRect.mindimension
- Zmieniono RoundRect.center na właściwość, a nie funkcję
- Zaktualizowano konstruktor RoundRect, który wykorzystuje właściwości Radius zamiast poszczególnych parametrów dla wartości promieni x/y.
- Usunięto interfejsy Size API, które zakładały, że jest to prostokąt z nazwą origin 0,0
- Do interfejsu Radius dodano interfejs API destrukcyjny.
- Przeniesiono różne funkcje rozszerzenia RoundRect właściwości
- (I8f5c7, b/168762961)
- Fundament.Box został wycofany. Zamiast niej użyj elementu Foundation.layout.Box. (IE5950, b/167680279)
- Nazwa stosu została zmieniona na Box. Dotychczasowa wersja Box zostanie wycofana i zastąpi nową nową wersją na stronie compose.foundation.layout. Działanie nowego pola to układanie elementów podrzędnych jeden nad drugim, jeśli ma kilka elementów podrzędnych. Różni się to od poprzedniej skrzynki, która działała podobnie jak kolumna. (I94893, b/167680279)
- Parametry dekoracji pola zostały wycofane. Jeśli chcesz dodać do pola dekoracje lub dopełnienie, użyj modyfikatorów (Modifier.background, Modifier.border, Modifier.splash) (Ibae92, b/167680279)
- Zaktualizowano wiele interfejsów API związanych z grafiką
- Zaktualizowano interfejsy API DrawScope z zakresem metod transformacji, aby wskazać, że przekształcenie jest stosowane tylko w wywołanie zwrotne i usunięte po wywołaniu
- Zaktualizowaliśmy dokumentację klipPath, aby odnosiła się do ścieżki zamiast zaokrąglonego prostokąta
- Poprawiono odstępy w dokumentacji dla prawego parametru w klipPath
- usunięto parametr rozmiaru
- Zmieniono nazwę parametrów Dx/dy w metodzie wstawienia na w poziomie i w pionie
- Dodano przeciążenie wektorowe, które zapewnia ten sam wartość wcięcia do wszystkich 4 granic
- Usunięto dokumentację metody wstawiania wskazującą, które wcięcie zostanie zastosowane do wszystkich 4 stron,
- Zaktualizowano dokumentację klasy Rect
- Zaktualizowano komentarze do parametrów prostokąta, aby pasowały do dokumentu kdoc styl
- Usunięto elementy Rect.join i Rect.expandToInclude
- Utworzono przeciążenie dla Rect.translate(offset) i wycofano Rect.shift
- (If086a, b/167737376)
- Zablokowaliśmy statyczne importowanie treści zakresów układu (np.alignWithSiblings w RowScope). Zamiast niego należy stosować alternatywny zakres wyraźny:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Wersja 1.0.0-alpha03
16 września 2020 roku
androidx.compose.material:material:1.0.0-alpha03
, androidx.compose.material:material-icons-core:1.0.0-alpha03
i androidx.compose.material:material-icons-extended:1.0.0-alpha03
zostały udostępnione. Wersja 1.0.0-alfa03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zmienia nazwę parametru
onSelect
urządzeniaBottomNavigationItem
naonClick
(I91925, b/161809324) - Dodaje parametr InteractionState do elementów bottomNavigationItem i Tab, umożliwiając podniesienie tego stanu i dostosowanie sposobu wyświetlania komponentu w różnych stanach. (Ia3e9e, b/168025711)
- Usuwa z przycisków parametry
disabledBackgroundColor
idisabledContentColor
. Zamiast tego należy użyć nowych funkcji domyślnych koloru wewnątrz ButtonConstants. Jeśli masz już ustawione jawne ustawienie contentColor lub backgroundColor, użyj tych funkcji domyślnych i dostosuj niektóre lub wszystkie parametry, aby uniknąć zastąpienia koloru w przypadku obu stanów włączenia/wyłączenia. (If9b52). - Kolor tła pola tekstowego nie powoduje już niejawnego zastosowania przezroczystości w wersji alfa. Zamiast tego każdy kolor podany za pomocą parametru backgroundColor zostanie zastosowany bezpośrednio. (Iecee9, b/167951441)
- Nazwa InnerPadding została zmieniona na PaddingValues. (I195f1, b/167389171)
- Parametry
resistanceFactorAtMin
iresistanceFactorAtMax
wModifier.swipeable
zostały zastąpione jednym parametrem oporu. Nowa metodadefaultResistanceConfig
została dodana wSwipeableConstants
. (I54238) - Dodaje animowaną obsługę podwyższeń dla elementów Button i FloatingActionButton. Wysokość jest teraz animowana między stanem domyślnym i po naciśnięciu. Aby dostosować wysokość między stanami, użyj elementów
ButtonConstants.defaultAnimatedElevation()
iFloatingActionButtonConstants.defaultAnimatedElevation()
, zamiast ustawiać zryczałtowaną wartość Dp we wszystkich przypadkach. (I37925) - Etykieta jest teraz opcjonalnym parametrem w polach TextField i OutlinedTextField (I267f6, b/162234081)
Poprawki błędów
- Funkcje testowania globalnego, takie jak
onNode
czywaitForIdle
, są teraz wycofane, przejdź na ich nowe odpowiedniki zdefiniowane w ComposeTestRule (I7f45a) - Funkcje DpConstraints i interfejsy API korzystające z nich zostały wycofane. (I90cdb, b/167389835)
- Parametry minwidth i maxWidth widthIn zostały zmienione na „min” i „max”. Analogicznie w przypadku wartości preferredWidthIn, heightIn i PreferredHeightIn. (I0e5e1, b/167389544)
- Usuń działania semantyczne polegające na przewijaniu do przodu i do tyłu. Dodane kroki w AccessibilityRangeInfo. (Ia47b0).
- Spójnie przemianowaliśmy zastosowania grawitacji, aby wyrównać lub wyrównać interfejsy API układu. (I2421a, b/164077038)
- Dodano onNode i inne metody globalne w ComposeTestRule jako obecne globalne słowa kluczowe zostaną wycofane. (IEAE36).
- Przeniesiono
createAndroidComposeRule
iAndroidInputDispatcher
zandroidx.ui.test.android
doandroidx.ui.test
(Idef08, b/164060572)
Wersja 1.0.0-alpha02
Wrzesień 2, 2020
androidx.compose.material:material:1.0.0-alpha02
, androidx.compose.material:material-icons-core:1.0.0-alpha02
i androidx.compose.material:material-icons-extended:1.0.0-alpha02
zostały udostępnione. Wersja 1.0.0-alfa02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano eksperymentalny komponent TłoScaffold. (IAD908),
Poprawki błędów
- Matrix4 została zastąpiona matrycą. Pozostałe części z pakietu vectormath. (Ibd665, b/160140398)
Wersja 1.0.0-alpha01
26 sierpnia 2020 r.
androidx.compose.material:material:1.0.0-alpha01
, androidx.compose.material:material-icons-core:1.0.0-alpha01
i androidx.compose.material:material-icons-extended:1.0.0-alpha01
zostały udostępnione. Wersja 1.0.0-alfa01 zawiera te zatwierdzenia.
Znany problem
= Nie można usunąć pierwszego znaku w materiale TextField
przy użyciu spacji (b/165956313)
Wersja 0.1.0-dev
Wersja 0.1.0-dev17
19 sierpnia 2020 r.
androidx.compose.material:material:0.1.0-dev17
, androidx.compose.material:material-icons-core:0.1.0-dev17
i androidx.compose.material:material-icons-extended:0.1.0-dev17
zostały udostępnione. Wersja 0.1.0-dev17 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Wcześniej wycofane elementy RadioGroup i RadioGroupItems zostały usunięte. Zamiast nich użyj Row i RadioBotton (I381b7, b/163806637)
- Usunięto wywołania zwrotne onFocusChanged z TextField. Zamiast niej użyj metody Modifier.focusObserver. (I51089, b/161297615)
- Interfejs Modifier.drawBorder został wycofany. Zamiast niego użyj metody Modifier.granic. Klasa danych obramowania została zastąpiona przez BorderStroke (I4257d, b/158160576)
- Zmieniono nazwy niektórych właściwości w Przesuwalnym stanie: kliknięciaTarget -> wartość docelowa, postęp przesuwania -> postęp, kierunek przesunięcia -> kierunek. Dodano funkcję zapamiętania SwipeableState do tworzenia właściwości LTIableStates. (I2fc9c, b/163129614, b/163132293)
- Dodaliśmy obsługę paska powiadomień z odpowiednim pozycjonowaniem i kolejką. Uzyskaj do niego dostęp za pomocą funkcji zawieszania
SnackbarHostState.showSnackbar
. Dodatkowo:- Komponenty SnackbarHost zostały dodane. Na jej podstawie działają paski powiadomień i odpowiadają za przełączanie się między nimi.
- Aplikacja SnackbarHostState została dodana, aby umożliwić kontrolę nad paskami powiadomień i ich hostami oraz odłączenie ich od ScaffoldState. dostęp do tego stanu możesz też uzyskać za pomocą
scaffoldState.snackbarHostState
. - Dodano przeciążenie paska powiadomień, aby zapewnić obsługę wspólnego interfejsu między paskami powiadomień. (I79aaa).
- Dodaje włączony parametr do IconButton i zmienia kolejność parametrów w IconToggleButton (I0a941, b/161809385, b/161807956)
- Wersja ListItem z interfejsem API opartym na ciągach znaków została usunięta. Użyj wersji przedziału. (Ib8f57, b/161804681)
- Usunięto wycofany komponent FilledTextField. Aby uzyskać implementację interfejsu Material Design w wypełnionym polu tekstowym, użyj pola TextField. (I5e889)
- AlertDialog używa teraz FlowRow do obsługi przycisków (I00ec1, b/161809319, b/143682374)
- Dodano parametry w metodzie Modifier.swipeable do zmiany ilości wartości opór przy przesuwaniu poza granice. Usunięto parametry wartości [min/max]. (I93d98)
- Dodano parametr backgroundColor do właściwości LinearProgressIndicator, a w przypadku CircularProgressIndicator usunęliśmy wewnętrzne dopełnienie. Dodano nową wartość ProgressIndicatorConstants.DefaultProgressAnimationSpec, której można użyć jako domyślnej właściwości AnimationSpec podczas animowania postępu między wartościami (If38b5, b/161809914, b/161804677).
- Opcjonalny parametr velocityThreshold został dodany do pliku Modifier.swipeable. (I698BA)
- LowBarSize, fabSize i inne i nie są już dostępne w ScaffoldState. Użyj metody Modifier.onPosition zamiast tego na komponencie, którego rozmiar chcesz poznać. Do Scaffold zostały dodane pamatere contentColor i modyfikator (Ic6f7b, b/161811485, b/157174382).
- Zmienia nazwy niektórych parametrów na karcie i zmienia ich kolejność, aby zapewnić spójność z innymi interfejsami API (Ia2d12, b/161807532)
- Dzieli TabRow na elementy TabRow i ScrollableTabRow oraz usunięcie elementu is Scrollable z interfejsu TabRow. Udostępnia też EdgePadding w ScrollableTabRow, co umożliwia kontrolowanie wolnego miejsca przed kartami i za nimi. (I583e8, b/161809544)
- Obiekt
TabRow
został usunięty, zastępując go TabConstants. Element TabRow.TabPosition został przeniesiony na najwyższy poziom (TabPosition) i zmienił nazwę komponentu indexContainer naindicator
. Szczegółowe informacje o korzystaniu ze zaktualizowanego interfejsu API i ustawień domyślnych znajdziesz w przykładach i dokumentacji. (I54d45, b/161809544) - Parametr progów w module Modifier.swipeable został zmieniony; to teraz pobiera parę stanów (typu T) i zwraca między nimi próg w postaci parametru ThresholdConfig. Parametr merchantThresholds został dodany do Przesuwanie, które jest funkcją lambda (Odrzućkierunek) -> ThresholdConfig. (IE1080).
- Suwak ma więcej kolorów, co pozwala na precyzyjne dostosowanie (I73e64, b/161810475)
- Nazwa parametru koloru karty została zmieniona na backgroundColor (I01fc1, b/161809546).
- Pasek powiadomień ma teraz dostosowywane kolory tła i treści (I238f2, b/161804381)
- Do szuflad dodaliśmy parametry dostosowania modyfikatora, backgroundColor, contentColor oraz scrimColor do szuflad (I23655, b/161804378)
- Funkcja kompozycyjna
state { ... }
została wycofana i zastąpiona wyraźne wezwania do działania (remember { mutableStateOf(...) }
) w celu uniknięcia wątpliwości. Zmniejsza to ogólną powierzchnię interfejsu API i liczbę koncepcji stanu management i pasuje do wzorcaby mutableStateOf()
klasy przekazania usługi. (IA5727). - Nazwa parametru dopełnienia przycisku została zmieniona na contentPadding (Id252e, b/161809394)
- Dodaj eksperymentalny komponent materiału PrzesuńToClose. (I129e5)
Poprawki błędów
- Usunięto:
onChildPositioned
iOnChildPositionedModifier
. Deweloperzy powinni używać interfejsówonPositioned
iOnPositionedModifier
w układzie podrzędnym. (I4522e, b/162109766) - Do elementu Semantics PropertyKey dodano funkcję mergePolicy lambda. Może to być służy do definiowania niestandardowej zasady semantyki mergeAllDescendants. scalanie. Domyślną zasadą jest używanie wartości nadrzędnej, jeśli jest już używana obecny, w przeciwnym razie wartość potomna. (Iaf6c4, b/161979921)
- IntSize jest teraz klasą wbudowaną (I2bf42)
- Nazwa usługi
PlacementScope.placeAbsolute()
została zmieniona naPlacementScope.place()
, a poprzednia nazwa (PlacementScope.place()
) naPlacementScope.placeRelative()
. W efekcie metodaPlacementScope.place()
nie będzie już automatycznie dublować położenia w kontekstach od prawej do lewej. Jeśli chcesz, użyjPlacementScope.placeRelative()
. (I873ac, b/162916675) - Wycofane pułapki PxBound w na korzyść Rect. Zaktualizowano wszystkie przypadki użycia z PxBounds z prostokątem i dodanym właściwe wycofanie/zastąpienie adnotacji, które pomagają migracji danych. (I37038, b/162627058)
- Zmieniono nazwę RRect na RoundRect aby lepiej dopasować je do wzorców nazewnictwa. Utworzono podobne konstruktory funkcji do RRect i wycofanej funkcji RRect konstruktory (I5d325)
Wersja 0.1.0-dev16
5 sierpnia 2020 r.
androidx.compose.material:material:0.1.0-dev16
, androidx.compose.material:material-icons-core:0.1.0-dev16
i androidx.compose.material:material-icons-extended:0.1.0-dev16
zostały udostępnione. Wersja 0.1.0-dev16 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Kolory to teraz klasa końcowa, a nie interfejs. Zamiast rozszerzać i udostępniać implementację niestandardową, utwórz nowe tło dla obiektu motywu niestandardowego i uzyskaj dostęp do obiektu motywu, używając nowego trybu otoczenia w komponentach, podobnie jak wewnętrznie działa MaterialTheme. (IBae84).
- Zmieniliśmy nazwę ColorPalette na ColorPalette, aby lepiej zmapować system kolorów Material i wyeliminować nieporozumienia, ponieważ „Palette” to „ogólny”. w odróżnieniu od implementacji systemu kolorów Material Design. Dodatkowo zmienia nazwy z lightColorPalette i darkColorPalette na lightColors i darkColors. (I9e976, b/161812111)
- Zmienia nazwę parametru
text
elementu bottomNavigationItem nalabel
,onSelected
naonSelect
,activeColor
naselectedContentColor
,inactiveColor
naunselectedContentColor
oraz aktualizuje kolejność parametrów zgodnie ze wskazówkami. (Icb605, B/161809324) - Element
Modifier.stateDraggable
został całkowicie przerobiony i zmieniony na Modifier.swipeable. wprowadziliśmy nową klasę PrzesuńableState, Elementy DrawerState i bottomDrawerState zostały zmodyfikowane tak, aby mogły je dziedziczyć. [Modal/bottom]DrawerLayout nie używa już parametru onStateChange. (I72332, b/148023068) - pakiet Foundation.shape.corner został spłaszczony do pliku Foundation.share (I46491, b/161887429)
- Dodano adnotację ExperimentalMaterialApi. RippleTheme oznaczony jako eksperymentalny (Ic5fa0, b/161784800)
- Nazwa pola Material FilledTextField została zmieniona na TextField, a podstawowy element TextField zmienił się na BaseTextField, by ułatwić znajdowanie i używanie najprostszego interfejsu API (Ia6242, b/155482676).
Poprawki błędów
- Funkcja OnChildPositioned została wycofana. Używaj ustawienia OnPositioned na koncie dziecka. (I87f95, b/162109766)
- Naprawianie ogólnych poprawek interfejsu API (I077bc)
- Usuń nieużywany interfejs OffsetBase
- Wyrównuje klasy Offset i IntOffset, które mają mieć spójna platforma API
- Zmień nazwę IntOffset.Origin na IntOffset.Zero aby zachować spójność z interfejsem Offset API
- Metodę natywnego Canvas usunięto z Canvas aby ułatwić konsumentom tworzenie własne instancje Canvas
- Utworzono wycinek klasy EmptyCanvas do refaktoryzacji DrawScope, aby był parametrem niepustym, a nie Lateinit i zapewnić brak wartości pola jako wartość null
- Zmieniono nazwę wyliczeń ClipOp na sprawy Pascal
- Zmieniono nazwę enumów filtraJakość na typ Pascal
- Zmieniono nazwę wyliczeń Stroke Join na Case Pascal
- Zmieniono nazwę wyliczeń PointMode na typ Pascal
- Zmieniono nazwy enum PaintingStyle na przypadek Pascala
- Zmieniono nazwę wyliczeń PathFillType na przypadek Pascal
- Zmieniono nazwę wyliczeń StrokeCap na przypadki Pascal
- Implementacja DrawCache została zaktualizowana i nie jest już dostępna używanie parametrów Lateinit
- Zaktualizowano metodę DrawScope, aby nie używała już leniwego przekazywania dostępu dla parametrów wewnętrznych FillPaint i StrikePaint
- Zaktualizowaliśmy funkcję kompozycji obrazu, aby uniknąć używania usługi Box przy mniejszym nakładzie pracy
- Zaktualizowaliśmy klasę Outline tak, aby dodać do niej adnotacje @stałe.
- Zaktualizowano obiekt PathNode, aby dodać adnotacje @Stałe dla: instrukcja dla każdej ścieżki
- Zaktualizowano składnię wektorową, aby usunąć zbędne elementy sprawdzanie warunkowe pod kątem równości, ponieważ funkcja tworzenia wiadomości już obsługuje ich
- Wycofane metody konstruktora kreacji towarzyszącej w formacie prostokąta konstruktorów funkcji
- Zaktualizowano klasy i konstruktory funkcji pędzla za pomocą Interfejsy API @Immutable i @Stable
- Zaktualizowano enum VertexMode na PascalCase
- Metodę DrawScope selectPaint zmieniono na warunkowo nadpisać parametry kreski, jeśli mają zmieniono
- Zaktualizowano rozmiar, aby dodać interfejs API destrukcyjny; zmień nazwę Nieokreślony rozmiar na nieokreślony i usunięte nieużywane metody
- Przenieś okno do interfejsu użytkownika (I47fa6)
- Użytkownik
SemanticsNodeInteraction.performPartialGesture
został usunięty. UżywajSemanticsNodeInteraction.performGesture
. (Id9b62) - Nazwa
SemanticsNodeInteraction.getBoundsInRoot()
została zmieniona naSemanticsNodeInteraction.getUnclippedBoundsInRoot()
(Icafdf, b/161336532) - Interfejsy API do obsługi tekstu od prawej do lewej zostały zaktualizowane. Dodano parametr LayoutDirectionAmbient, którego można używać do odczytywania i zmieniania kierunku układu. Modifier.rtl oraz Modifier.ltr zostały usunięte. (I080B3)
- Nazwa Modifier.deternimateProgress została zmieniona na Modifier.progressSemantics (I9c0b4).
- Aktualizuje ikony materiał-ikony o najnowsze ikony dodane do Material.io/ikony (I4b1d3).
- Wymagaj jawnego określenia typu T Definicja przejścia. (Zignorowano)
- Interfejs Modifier.plus został wycofany. Użyj interfejsu Modifier.then. „To” ma silniejszy sygnał dotyczący kolejności, ale nie pozwala też na wpisanie słowa
Modifier.padding().background() + anotherModifier
, które przerywa łańcuch i jest trudniejsze do odczytania (Iedd58, b/161529964). - Zmieniono nazwę reguły AndroidComposeTestRule na createAndroidComposeRule. (I70aaf)
- Dodano elementy isFocused() i isNotFocused() SemanticsMatcher. (I0B760)
- Usunięto kolumnę
BaseGestureScope.globalBounds
, która nie powinna być wykorzystane w testach. Użyj lokalnych współrzędnych dla węzła, z którym się znajdujesz aby zacieśnić więzi. (IE9b08) - Stała pozycja wyskakującego okienka na wyświetlaczu z wycięciem. (Idd7dd)
- Nazwa Modifier.drawBackground została zmieniona na Modifier.background (I13677)
Wersja 0.1.0-dev15
22 lipca 2020 r.
androidx.compose.material:material:0.1.0-dev15
, androidx.compose.material:material-icons-core:0.1.0-dev15
i androidx.compose.material:material-icons-extended:0.1.0-dev15
zostały udostępnione. Wersja 0.1.0-dev15 zawiera te zatwierdzenia.
Aktualizacja zależności
- Aby używać narzędzia Compose w wersji
0.1.0-dev15
, musisz zaktualizować zależności zgodnie z nowymi fragmentami kodu pokazanymi powyżej w sekcji Deklarowanie zależności.
Zmiany interfejsu API
Adnotacja
@Model
została wycofana. Zamiast nich używaj parametrów state i mutableStateOf. Decyzja o wycofaniu została podjęta po bardzo wnikliwej dyskusji.Uzasadnienie
Uzasadnienie obejmuje m.in.:
- Skraca powierzchnię interfejsu API oraz koncepcje, których trzeba nauczać
- ściślej pasuje do innych podobnych narzędzi (Swift UI, React, Flutter).
- Decyzja odwracalna. Zawsze możemy później przywrócić użytkownika
@Model
. - Nie używa wielkich liter i nie wymaga odpowiedzi na pytania o konfigurację
@Model
jako rzeczy, którymi musimy się zająć. - Klasy danych:
@Model
, równa się, kod numeryczny itp. - Co zrobić, aby niektóre właściwości były „obserwowane”, a inne nie?
- Jak określić równość strukturalną i referencyjną do zastosowania w obserwacji?
- Ogranicza działanie „magii” działania systemu. Zmniejszyłoby prawdopodobieństwo, że ktoś zakłada, że system jest mądrzejszy niż jest (tj. wie, jak porównać listę)
- Zwiększa szczegółowość obserwacji.
- Poprawia refaktoryzację ze zmiennej -> właściwość w klasie
- Potencjalnie otwiera możliwości wprowadzenia ręcznych optymalizacji w kontekście poszczególnych stanów.
- Jest ściślej dopasowany do reszty ekosystemu i ogranicza niejasności w odniesieniu do „stałego stanu” lub „akceptowania zmiennego stanu”.
Uwagi dotyczące migracji
Niemal wszystkie dotychczasowe sposoby korzystania z usługi
@Model
są dość proste w użyciu na jeden z 2 sposobów. Przykład poniżej zawiera klasę@Model
z 2 właściwościami i jest używana w funkcji kompozycyjnej.@Model class Position( var x: Int, var y: Int ) @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
Opcja 1. Użyj elementu
State<OriginalClass>
i utwórz kopie.To podejście jest łatwiejsze dzięki klasom danych Kotlin. Ogólnie rzecz biorąc, przenieś wszystkie właściwości
var
do właściwościval
klasy danych, a następnie użyjstate
zamiastremember
i przypisz wartość State sklonowanym kopiom oryginału za pomocą wygodnej metody klasy danychcopy(...)
.Pamiętaj, że to podejście działa tylko wtedy, gdy jedyne mutacje w danej klasie zostały wprowadzone w tym samym zakresie co instancja
State
. Jeśli klasa zmienia się wewnętrznie poza zakres użytkowania i polegasz na obserwowaniu tej zmiany, należy zastosować się do kolejnego podejścia.data class Position( val x: Int, val y: Int ) @Composable fun Example() { var p by state { Position(0, 0) } PositionChanger( position=p, onXChange={ p = p.copy(x=it) } onYChange={ p = p.copy(y=it) } ) }
Opcja 2: użyj przedstawicieli mutableStateOf i właściwości
Takie podejście jest łatwiejsze dzięki przedstawicielom właściwości Kotlina i interfejsowi API
mutableStateOf
, które umożliwia tworzenie instancji MutableState poza kompozycją. Ogólnie rzecz biorąc, zastąp wszystkie właściwościvar
pierwotnej klasy właściwościamivar
właściwościamimutableStateOf
. Ta zaleta polega na tym, że sposób korzystania z klasy nie ulegnie zmianie, a jedynie jego wewnętrzna implementacja. Działanie nie jest jednak całkowicie takie samo jak w przypadku pierwotnego przykładu, ponieważ każda właściwość jest teraz obserwowana/zasubskrybowana osobno, więc zmiany widoczne po tym refaktoryzacji mogłyby być bardziej wąskie (to dobrze).class Position(x: Int, y: Int) { var x by mutableStateOf(x) var y by mutableStateOf(y) } // source of Example is identical to original @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
(I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/925
Nazwa wywołania zwrotnego onFocusChange w polach tekstowych została zmieniona na onFocusChanged (Ida4a1)
Dodano parametr progów w stanie stateDraggable, który umożliwia określenie progów między kotwicami. Posłużyło to do ustawienia progu 56 dp w dolnej szufladzie. Poza tym bottomDrawerLayout korzysta teraz z oddzielnego wyliczeniowego bottomDrawerState. (I533fa)
Usuwa wcześniej wycofany plik Modifier.ripple. Kliknięcie jest teraz domyślnym wskaźnikiem echa (jeśli w aplikacji masz ustawiony motyw MaterialTheme {}), więc w większości przypadków wystarczy użyć kliknięcia i uzyskać wskaźnik fali. Jeśli chcesz dostosować parametr koloru / rozmiaru / granicy fali, możesz ręcznie utworzyć parametr RippleIndication i przekazać go do kliknięcia jako parametr wskaźnika. (I663b2, b/155375067)
Usunięto wycofane zastąpienie funkcji kompozycyjnej FilledTextField (I7f8f8)
Zmień nazwę obiektu Button (zawierającego wartości domyślne używane przez funkcję Button) na ButtonConstants (I7c5f7, b/159687878)
Boks treści przycisku wyświetla się teraz jako wiersz (przydatne, gdy musisz mieć ikonę z tekstem; zobacz przykłady dotyczące pisania przycisku) (I0ff10, b/158677863)
Opcje RadioGroup i RadioGroupItem zostały wycofane. Użyj opcji Pole z modyfikatorem.wyboru, Wierszem i Kolumną, aby wybrać odpowiedni zestaw opcji (I7f5cf, b/149528535).
Dodano pole tekstowe z konturem materiału (I1a518)
androidx.ui.foundation.TextFieldValue i Interfejs androidx.ui.input.EditorValue został wycofany. Pole tekstowe Obiekty kompozycyjne FilledTextField i CoreTextField, które korzysta z funkcji ten typ też jest wycofany. Użyj androidx.ui.input.TextFieldValue (I4066d, b/155211005)
TabRow.TabPosition nie zawiera pozycji w Dp, ani w IntPx (I34a07, b/158577776)
Zastąpiliśmy format IntPx wartością Int. Zastąpiono pozycję IntPxPosition z IntOffset. IntPxSize zastąpiono wartością IntSize. (IB7b44)
Aby skonsolidować liczba klas używanych do reprezentowania informacje o rozmiarach, standaryzowanie na podstawie użycia klasy Size rozmiaru PxSize. Zapewnia to korzyści klasy wbudowanej, aby wykorzystać długi do pakowania 2 wartości zmiennoprzecinkowych do reprezentowania szerokość i wysokość w postaci liczby zmiennoprzecinkowej. (IC0191).
Wycofuje modyfikator.ripple. Kliknięcie jest teraz domyślnym wskaźnikiem echa (jeśli w aplikacji masz ustawiony motyw MaterialTheme {}), więc w większości przypadków wystarczy użyć kliknięcia i uzyskać wskaźnik fali. Jeśli chcesz dostosować parametr koloru / rozmiaru / granicy fali, możesz ręcznie utworzyć parametr RippleIndication i przekazać go do kliknięcia jako parametr wskaźnika. (I101cd, b/155375067)
Interfejs Scaffold API został przerobiony: zmieniono nazwę kilku parametrów i dodaliśmy nowe parametry w celu lepszego dostosowania. Dodano metodę pobierania do rozmiarów zapytań w przypadku parametrów Fab, TopBar i DolnyPasek (I0e7ce).
Dodano komponent Menu z menu w materiale UI, czyli implementacji menu w stylu Material Design. (I9bb3d).
Zezwalaj na ręczne pokazywanie lub ukrywanie klawiatury programowej za pomocą kontrolera SoftwareKlawiaturaController (Ifb9d6, b/155427736)
Do pakietu podstawowego dodano modyfikator.indication. Służy do pokazywania wskaźnika naciśnięcia lub przeciągnięcia innych elementów na niestandardowych elementach interaktywnych (I8425f, b/155287131).
Skonsolidowane implementacje CanvasScope więc teraz będą tylko DrawScope, ContentDrawScope Nazwa obiektu CanvasScope została zmieniona na DrawScope. Zaktualizowano obiekt DrawScope, aby zaimplementować gęstość i podaj kierunek układu Usunięto podklasę DrawScope w ContentDrawScope Painter i PainterModifier zostały zaktualizowane nie mają już właściwości RTL, ponieważ DrawScope zapewnia już bez ręcznego podawania (I1798e)
Zmienia nazwę Emphasis.powered() na Emphasis.applyEmphasis() (Iceebe).
Wyłączone przyciski są teraz zgodne ze specyfikacją Material Design (I47dcb, b/155076924)
FilledTextField otrzymuje działanie ime, przekształcanie wizualne i obsługę typu klawiatury (I1f9cf, b/155075201)
Dodaje parametr trafficWidth do wskaźnika CircularProgressIndicator, by dostosować rozmiar kreski. Aby zmienić rozmiar kreski (wysokość) wskaźnika LinearProgressIndicator, możesz użyć modyfikatora Modifier.preferredHeight() lub innego modyfikatora rozmiaru. (Icea16, b/154919081)
Dodaje parametr trafficWidth do wskaźnika CircularProgressIndicator, by dostosować rozmiar kreski. Aby zmienić rozmiar kreski (wysokość) wskaźnika LinearProgressIndicator, możesz użyć modyfikatora Modifier.preferredHeight() lub innego modyfikatora rozmiaru. (Icea16, b/154919081)
Dodano interfejs API przedziałów do obsługi ikon końcowych i na początku w polu FilledTextField oraz obsługi stanu błędu (Ic12e0).
Domyślny kolor przycisków PPP i rozszerzonych przycisków PPP został zmieniony na MaterialTheme.colors.secondary. (I3b9b9, b/154118816)
Zastąpiono wszystkie przypadki użycia koloru dopuszczalnego w interfejsie API na nie dopuszcza wartości null i użyj wartości Color.Unset zamiast null (Iabaa7).
Zmieniono nazwę EdgeInsets na InnerPadding. Zmieniono nazwę parametru innerPadding elementu Material Buttons na pasek boczny. (I66165).
Suwak jest teraz bezstanowy. Użytkownicy będą musieli samodzielnie przekazywać i aktualizować stan, tak jak w przypadku każdego innego ustawienia. (Ia00aa).
Usunięto panel StaticDrawer. W razie potrzeby użyj wartości Box z szerokością określoną przez materiał (I244a7)
Dodano implementację interfejsu Material Design w przypadku wypełnionego pola tekstowego (Ic75cd).
Dodano parametr modyfikatora do elementu ListItem i zmieniono kolejność parametrów na promuj końcowe treści lambda (I66e21)
Dodaje parametr konstruktora defaultFontFamily do Typografii, umożliwiając określenie domyślnej rodziny czcionek, która będzie używana w przypadku wszystkich podanych stylów TextStyle, które nie mają ustawionej rodziny. (I89d07)
Tymczasowo usunięto Material Data Tables z interfejsu API. (Iaea61),
Zmienione nazwy parametrów w funkcji podziału na separator (Ic4373)
dzieci (Ia6d19)
Usuwa wartość MaterialTheme.emphasisLevels. Zamiast tego użyj elementu EmphasisAmbient.current, aby pobrać poziomy podkreślenia (Ib5e40).
System motywów kształtów jest aktualizowany zgodnie ze specyfikacją Material Design. Teraz możesz wybierać małe, średnie i duże kształty do wykorzystania przez większość komponentów (Ifb4d1).
Zmieniliśmy interfejsy API MaterialTheme, takie jak MaterialTheme.colors(), MaterialTheme.typography(), na właściwości, a nie funkcje. Usuń nawiasy z istniejących połączeń. Nie powinno to wpłynąć na działanie usługi. (I3565a)
Zrefaktoryzowano interfejsy API FloatingActionButton, aby akceptować funkcję kompozycyjnej lambda zamiast elementów podstawowych. Zobacz zaktualizowane przykłady wykorzystania i informacjami o nich. (I00622)
dodanie parametru
enabled
do pola wyboru, przełącznika i możliwości przełączania (I41c16)Echo jest teraz modyfikatorem. Chociaż elementy klikalne nie zostały jeszcze przekonwertowane, zalecane użycie to
Clickable(onClick = { ... }, modifier = ripple())
(IE5200, b/151331852, b/150060763)Interfejs Surface i Card zostały przeniesione z androidx.ui.material.surface do androidx.ui.material (I88a6d, b/150863888)
Elementy FloatingActionButton i Clickable mają teraz osobny parametr
enabled
. Zmieniono nazwy niektórych parametrów przycisku lub ich kolejność. (I54b5a)Zmieniliśmy nazwę obrazu na ImageAsset, by lepiej rozróżnić dane obrazu od przyszłej funkcji kompozycyjnej obrazu wykorzystywanej do tworzenia układu i rysowania treści. _Body:Utworzyliśmy metodę rozszerzenia na android.graphics.Bitmap Bitmap.asImageAsset(), by utworzyć instancję ImageAsset przydaje się do łączenia tradycyjnych funkcji Androida tworzenie aplikacji za pomocą platformy tworzenia (Id5bbd),
Usunięto interfejs Snackbar API z parametrami typu String, a następnie używaniem które akceptuje lambdy kompozycyjne. Zobacz zaktualizowane przykłady dla: informacje o użytkowaniu (I55f80)
Interfejsy API kart zrefaktoryzowanych, aby akceptować lambda
text
iicon
(Ia057e)Dodano komponent bottomNavigation; zobacz dokumentację i przykłady dotyczące informacje o użytkowaniu (I731a0)
Dodano ikony, IconButton i iconToggleButton, usuwając ikony AppBarIcon. Możesz bezpośrednio zastąpić obecne zastosowania AppBarIcon przez IconButton, i będą mieć odpowiedni docelowy element dotykowy. Zobacz przykłady użytkowania i zobaczyć ikony dostarczonych ikon których możesz używać bezpośrednio z tymi komponentami. (I96849)
Zastąpiliśmy ButtonStyle różnymi funkcjami i usunęliśmy przeciążenie tekstu (ciągami znaków). Informacje o wykorzystaniu znajdziesz w zaktualizowanych przykładach. (If63ab, b/146478620, b/146482131)
zmień nazwę modyfikatora
Border
naDrawBorder
(I8ffcc)LayoutCoordinates nie ma już właściwości pozycji. nie ma sensu w przypadku tagów LayoutModifiers, obracania czy skalowania. Zamiast tego programiści powinni używać współrzędnych nadrzędnych. i podrzędnyToLocal(), aby obliczyć przekształcenie z jednego Układ współrzędnych.
Funkcja LayoutCoordinates używa właściwości rozmiaru IntPxSize zamiast Rozmiar Px. Układy używają liczb całkowitych w pikselach, więc układy mają wszystkie rozmiary. należy używać liczb całkowitych, a nie zmiennoprzecinkowych. (I9367b)
Zmiany w interfejsie API nieaktywnym. Szczegóły znajdziesz w logu i dokumentacji
Ambient<T>
(I4c7ee, b/143769776)Dodano komponent materiału rusztowania. Implementacje rusztowania (I7731b)
Zastąpiono element DrawBorder na rzecz modyfikatora obramowania (Id335a).
Poprawki błędów
- FocusModifier został wycofany i zastąpiony przez Modifier.focus, Modifier.focusRequester, Modifier.focusObserver. FocusState i FocusSzczegółState zostały wycofane i zastąpione FocusState2 (I46919, b/160822875, b/160922136)
- Interfejsy Vertical Scroller oraz Horiziontal Scroller zostały wycofane. Użyj interfejsu ScrollableColumn i ScrollableRow, aby mieć wbudowane funkcje i parametry związane z kolumnami/wierszami, lub modyfikatorami.vertical Scroll i Mmodifier.vertical Scroll, aby umożliwić ich użycie własnemu elementowi. Parametr ScrollerPosition został wycofany i zastąpiony tagiem ScrollState (I400ce, b/157225838, b/149460415, b/154105299)
- Zmieniliśmy interfejsy API Modifier.draggable i Modifier.scrollable. Kierunek przeciągania został usunięty i zastąpiona Orientacją. Uprościliśmy stan wymagany do przewijania. Nazwa ScrollableState została zmieniona na ScrollableController (Iab63c, b/149460415).
- Nazwa
runOnIdleCompose
została zmieniona narunOnIdle
(I83607) - Usługi semantyczne z jedną wartością używają teraz stylu wywoływania. Na przykład „semantyka { hide = true }”. jest teraz zapisany jako: 'semantics {hidden() }'. (Ic1afd, b/145951226, b/145955412)
- Zmieniono nazwy kilku interfejsów API do testowania, aby były bardziej intuicyjne. Wszystkie Nazwy interfejsów API findXYZ zostały zmienione na onNodeXYZ. Nazwy wszystkich interfejsów API doXYZ zostały zmienione na XYZ. (I7f164)
- Interfejs Migrate API został zmieniony tak, aby zwracał transitState, zamiast przekazywać parametr transitState, dzieciom. Dzięki temu interfejs API jest bardziej spójny z animate(). (I24e38)
- Dodano klasę jednostki IntBounds, która reprezentuje granice liczby całkowitej liczby pikseli od układu. Interfejs API obiektu PopupPositionProvider został zaktualizowany, aby go używać. (I0d8d0, b/159596546)
- Do narzędzi do znajdowania testów dodano nową opcjonalną flagę useUnmergedTree. (I2ce48).
- Usunięto przestarzałe interfejsy API do testowania rozmiaru. (IBa0a0).
- Usunięto wbudowaną klasę Shadera, która opakowano klasę NativeShader Zmieniono nazwę NativeShader na Shader. Opakowana klasa wbudowana Shadera nie może dodawać do interfejsu API żadnych wartościowych elementów. i była klasą wbudowaną, więc użyj NativeShader bezpośrednio w klasie. (I25e4d)
- Wyskakujące okienka, okna i menu dziedziczą teraz kontekstowy motyw MaterialTheme (Ia3665, b/156527485).
- Menu Material Design można teraz przewijać. (Ide699).
- Z bloku miary funkcji Layout() usunięto parametr kierunku układu. Kierunek układu jest jednak dostępny w wywołaniu zwrotnym w obiekcie zakresu pomiaru (Ic7d9d)
- W interfejsach API najwyższego poziomu użyj AnimationSpec zamiast AnimationBuilder Aby wyjaśnić koncepcję specyfikacji animacji statycznej – usprawnienie przejścia z DSL przez usunięcie wymogu lambda dla podczas tworzenia specyfikacji animacji, takich jak starsze, wiosna. Zamiast tego biorą z parametrami konstruktora. - Poprawa ogólnej łatwości otwierania AnimationSpec. konstruktory, zamiast polegać na konstruktorach. – Zmiana czasu trwania i opóźnienia klatek kluczowych i elementów z wyższego poziomu na wartość Int. Ten eliminuje niepotrzebne rzuty typów i przeciążanie metod (na wspiera format Long i Int). (ICA0b4).
- Przełącznik jest teraz wyłączony, gdy zasada
enabled
ma wartość Fałsz (If4624, b/155941869, b/159331694) - Nazwa Modifier.tag została zmieniona na Modifier.layoutId, aby uniknąć pomyłek z modyfikatorem.testTag. (I995f0)
- Pozycje całkowite linii wyrównania zwrócone z Placeable#get(alignmentLine) nie mają teraz wartości null. Jeśli nie ma wiersza wyrównania, którego dotyczy zapytanie, funkcja wyrównania wejściowa zostanie zwrócona. (I896c5, b/158134875)
Zmieniona klasa promienia na inline. Usunięto tworzenie kreacji towarzyszącej z zastosowaniem konstruktora funkcji z domyślnym parametrem określającym promień wzdłuż osi Y należy dopasować do wartości .
Zaktualizowano plik DrawScope.drawRoundRect do przetworzenia jeden parametr „Radius” zamiast 2 osobnych, wartości zmiennoprzecinkowe promienia wzdłuż osi x i y oś (I46d1b)
Aby skonsolidować liczba klas używanych do reprezentowania pozycjonowanie, standaryzowanie na użycie klasy Offset pozycji PxPosition. Zapewnia to korzyści klasy wbudowanej, aby wykorzystać długi do pakowania 2 wartości zmiennoprzecinkowych reprezentujących x i odsunięcia y są przedstawione w postaci liczby zmiennoprzecinkowej. (I3ad98).
Zastąpiono użycie klasy Px w różnych tworzą klasy w ramach dużego refaktoryzacja, która polega wyłącznie na Dp i podstawowych parametrów pikseli. Cała klasa Px została usunięta (I3ff33).
Komponent z możliwością przełączania został wycofany. Użyj metody Modifier.toggleable (I35220, b/157642842)
Zastąpiono użycie klasy Px w różnych tworzą klasy w ramach dużego refaktoryzacja, która polega wyłącznie na Dp i typy podstawowe parametrów pikseli (I086f4).
Zastąpiono użycie klasy Px w różnych tworzą klasy w ramach dużego refaktoryzacja, która polega wyłącznie na Dp i typy podstawowe parametrów pikseli (Id3434).
Zastąpiono użycie klasy Px w różnych tworzą klasy w ramach dużego refaktoryzacja, która polega wyłącznie na Dp i typy podstawowe parametrów pikseli (I97a5a)
Naprawiono brak wywoływania onClick w przypadku elementu DropdonMenuItems. (I3998b, b/157673259)
Funkcja MutuallyExclusiveSetItem została wycofana. Zamiast niej użyj metody Modifier.selectable. (I02b47, b/157642842)
Tag TestTag został wycofany. Użyj w zamian metody Modifier.testTag. (If5110, b/157173105)
Kursor pola tekstowego ma migającą animację (Id10a7)
Zastąpiono użycie klasy Px w różnych tworzą klasy w ramach dużego refaktoryzacja, która polega wyłącznie na Dp i typy podstawowe parametrów pikseli (I19d02)
W aplikacji Vertical Scroller dostępna jest teraz funkcja Column. Aplikacja Poziomy przewijania teraz udostępnia funkcję Wiersz bezpośrednio w oknie. (IECA5d, b/157020670)
Zastąpiono użycie klasy Px w różnych tworzą klasy w ramach dużego refaktoryzacja, która polega wyłącznie na Dp i typy podstawowe parametrów pikseli (Iede0b).
Wycofanie metody Modifier.semantics pozwala na użycie komponentów wysokiego poziomu. (I4cfdc)
Interfejs API modyfikatorów DrawLayer został zmieniony: zmieniono nazwę interfejsu outline prawdopodobnie na „ shape” i ma wartość domyślną Rectangleangle, a teraz nie może mieć wartości null. klipToOutline został zmieniony na klip; klipToBounds usunięto, ponieważ jest taki sam jak w przypadku klipu == true z parametrem Prostokąt (I7ef11, b/155075735).
Zaktualizowano wyższy poziom a także tworzyć interfejsy API, które udostępniają obiekt Canvas i udostępnić CanvasScope. Spowoduje to usunięcie że konsumenci muszą utrzymywać własnych obiektów Paint. Dla konsumentów, którzy nadal potrzebują dostępu do Canvas mogą korzystać z rozszerzenia DrawCanvas, , która powoduje wywołanie zwrotne do problemu za pomocą poleceń rysowania Obszar roboczy. (I80afd).
Funkcja kompozycyjna wyrównania AdjustLineOffset została wycofana. Zamiast niej użyj modyfikatorarelativePaddingFrom(). Funkcja kompozycyjna CenterWyrównajmentLine została usunięta. (I60107).
Zmieniono końcowy interfejs API WithConstraints lambda. Teraz zamiast 2 parametrów ma zakres odbiornika, który oprócz ograniczeń oraz właściwości layoutDirection zapewnia właściwości minWidth, maxWidth, minHeight i maxHeight w Dp (I91b9a, b/149979702)
Dodano modyfikator układu defaultMinSizeConstraints, który ustawia ograniczenia rozmiaru w układzie opakowanym tylko wtedy, gdy odpowiednie przychodzące ograniczenia nie są określone (0 w przypadku ograniczeń minimalnych i nieskończoności w przypadku ograniczeń maksymalnych). (I311ea, b/150460257)
Element FocusManagerAmbient został usunięty. Aby uzyskać ostrość, użyj FocusModifier.requestFocus. (IC4826).
Utworzono interfejs CanvasScope API, który opakowuje Obiekt Canvas wyświetlający bezstanowy obiekt deklaratywny interfejs API do rysowania. Przekształcenia są uwzględnione w zakresie odbiorcy i własnych informacji o rozmiarze jest również ograniczony do odpowiednich granic wstawienia. Nie wymaga od konsumenta zachowywania własnego stanu wyrenderowania do konfigurowania operacji rysowania.
Dodano próbkę CanvasScope i zaktualizowano aplikację w wersji demonstracyjnej, aby dodać grafikę deklaratywnej wersja demonstracyjna (Ifd86d)
Dodawanie dostosowania koloru kursora w polu tekstowym (I6e33f)
Wartość TextFieldValue używana w polu TextField może teraz przetrwać odtwarzanie aktywności, gdy jest używana w ten sposób:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)Nazwa UkładModifier2 została zmieniona na LayoutModifier. (Id29f3).
Usunięto wycofany interfejs LayoutModifier. (I2a9d6)
Zastąpiono obiekt CoreTextField/TextField controlIdentifier z FocusNode, by przeprowadzić integrację z podsystemem. (I7Ea48).
Wewnętrzne funkcje pomiarowe w usługach Layout i LayoutModifier2 mają teraz odbiornik IntrinsicMeasureScope, który udostępnia wewnętrzny interfejs API zapytań z niejawnie rozpowszechnianym kierunkiem układu. (Id9945).
Dodano nową funkcję Modifier.zIndex(), aby kontrolować kolejność rysowania elementów podrzędnych w tym samym układzie nadrzędnym. Właściwość wysokości w DrawLayerModifier została zmieniona na shadowElevation i nie kontroluje już kolejności rysowania. Zmieniła się kolejność parametrów w przypadku DrawShadow. Wysokość jest teraz pierwszym parametrem, a kształt to drugi, z domyślnym kształtem prostokąta. (I20150, b/152417501)
Rectangleangle zostały przeniesione z androidx.ui.foundation.shape.* do androidx.ui.graphics.* (Ia74d5, b/154507984)
Aktualizacja interfejsu TextField API – scalono wywołania zwrotne onFocus i onBlur w jedno wywołanie zwrotne onFocusChange(Boolean) z parametrem (I66cd3)
Dodano parametry grawitacji pionowego i poziomego do wierszy oraz kolumn. (I7dc5a)
Zaktualizowaliśmy właściwości wrapContentWidth i wrapContentHeight tak, aby można było korzystać z wyrównania w pionie lub poziomie, a nie wyrównania w poziomie. Modyfikator grawitacji został zaktualizowany, aby przyjmował wyrównanie w pionie lub poziomie. Wiersze, kolumny i stos zostały zaktualizowane, aby obsługiwały niestandardowe ciągłe wyrównania. (IB0728)
Utworzono interfejs PixelMap API do obsługi wysyłania zapytań o informacje o pikselach z ImageAsset. (I69ad6).
Usuwa element ProvideContentColor. Zamiast tego używaj interfejsu ContentColorAmbient bezpośrednio w
Providers
(Iee942).Moduł ui-text-compose zmienił nazwę na ui-text. tekst UI zawiera teraz elementy kompozycyjne CoreText i CoreTextField (Ib7d47)
Nazwa modułu ui-text została zmieniona na ui-text-core (I57dec).
Przeniesiono elementy kompozycyjne ui-framework/CoreText i elementy kompozycyjne CoreTextField do ui-text-compose. Możesz też dodać ui-text-compose w projektach AI. (I32042)
Ulepszenie interfejsu API DrawModifier:
- Zmieniono zakres odbiorcy dla metody Draw() ContentDrawScope
- Usunięto wszystkie parametry z dresz()
- Interfejs DrawScope jest taki sam jak poprzednia wersja CanvasScope
- ContentDrawScope ma metodę DrawContent() (Ibaced, b/152919067)
runOnIdleCompose
irunOnUiThread
to teraz funkcje globalne zamiast metod na ComposeTestRule. (Icbe8f).[Mutable]Operatory delegowania właściwości stanu zostały przeniesione do rozszerzeń na potrzeby optymalizacji przekazywania uprawnień do usługi Kotlin 1.4. Rozmówca musi dodać importuje dane, aby dalej używać funkcji
by state { ... }
lubby mutableStateOf(...)
. (I5312C)W przypadku współrzędnych układu dodano elementy positionInParent i boundsInParent. (Icacdd, b/152735784)
Interfejs ColoredRect został wycofany. Używaj zamiast niego Box(Modifier.preferredSize(szerokość, wysokość).drawBackground(color)). (I499fa, b/152753731)
Zmieniono nazwę elementu LayoutResult na MeasureResult. (Id8c68).
dodano LayoutModifier2 – nowy interfejs API do definiowania modyfikatorów układu; wycofany komponent LayoutModifier (If32ac),
Zastąpienie operatora modyfikatora plus funkcjami rozszerzeń fabrycznych (I225e4).
Element do przeciągania został przeniesiony do modyfikatora (Id9b16, b/151959544)
Funkcja kompozycyjna ParentData została wycofana. Utwórz modyfikator, który implementuje interfejs ParentDataModifier, lub użyj modyfikatora LayoutTag, jeśli chcesz tylko oznaczyć elementy podrzędne układu, aby rozpoznawały je w bloku pomiaru. (I51368, b/150953183)
Wycofana funkcja kompozycyjna w centrum. Należy go zastąpić modyfikatorem LayoutSize.Fill + Layoutalizator.Center lub jednym z elementów kompozycyjnych Box albo Stack z odpowiednimi modyfikatorami (Idf5e0).
Interfejs VectorPainter API został dodany do zastąp istniejący interfejs API subcomposition API dla grafiki wektorowej. Wynik subkompozycji jest obiektem VectorPainter, a nie DrawModifier. Wycofany poprzedni DrawVector kompozycje na rzecz VectorPainter.
Zmieniono nazwę interfejsu Image(Painter) API na PaintBox(Painter) Utworzyliśmy wektorową kompozycję wektorową, która działa jak Obraz można komponować, ale nie za pomocą obiektu VectorAsset komponentu z obrazem (I9af9a, b/149030271)
Zmieniono nazwę Układ Elastyczny na Układ Weight. Zmieniono nazwę precyzyjnego parametru na wypełnienie. (If4738).
Usunięto funkcję RepaintBoundary na rzecz DrawLayerModifier (I00aa4).
Metoda DrawVector została zmieniona ze zwykłego funkcja composable zwracająca modyfikator pullVector(), spowoduje narysowanie wektora jako tła układu. (I7B8E0)
Funkcja kompozycjonalna przezroczystości została zastąpiona z modyfikatorem DrOpacity. (I5fb62)
Zastąp klip funkcji kompozycyjnej modyfikatorem DrawClip(). DrawClipToBounds to wygodny modyfikator przydatny, gdy chcesz przyciąć materiały tylko do granic warstwy w kształcie prostokąta. (If28eb).
Funkcja kompozycyjna DrawShadow została zastąpiona funkcją DrawShadow(). modyfikator. Cienie są teraz rysowane w ramach komponentu LayerModifier. (I0317a)
Dodano LayerModifier, modyfikator, który pozwala przez dodanie obiektu RenderNode dla układu. Umożliwia ustawienie przezroczystość, obrót, skalowanie i cienie. Spowoduje to zastąpienie RepaintBoundary. (I7100d, b/150774014)
Element androidx.compose.ViewComposer został przeniesiony do folderu androidx.ui.node.UiComposer Aplikacja androidx.compose.Emittable została usunięta. W przypadku KomponentNode wystąpił nadmiarowy błąd. Strona androidx.compose.ViewAdapters została usunięta. Nie są już one obsługiwanym przypadkiem użycia. Interfejs Compose.composeInto został wycofany. Użyj interfejsu
setContent
lubsetViewContent
. Metoda Compose.disposeComposition została wycofana. Użyj metodydispose
dla obiektuComposition
zwróconego przezsetContent
. Aplikacja androidx.compose.Compose.subcomposeInto została przeniesiona do androidx.ui.core.subcomposeInto Nazwa węzła KomponentNode#emitInsertAt została zmieniona na węzeł KomponentNode#insertAt Nazwa węzła KomponentNode#emitRemoveAt została zmieniona na KomponentNode#removeAt Nazwa KomponentNode#emitMode została zmieniona na KomponentNode#move (Idef00).Utworzony obraz kompozycyjny do obsłużenia dobieranie odpowiednich rozmiarów/układu oprócz rysowania ImageAsset na ekran. Ta funkcja kompozycyjna umożliwia również rysowanie dowolnych obrazów z uwzględnieniem jej rozmiaru wewnętrznego oraz obsługi konkretnego rozmiar lub minimalny rozmiar (Ibcc8f)
Wycofana funkcja opakowania. Można ją zastąpić modyfikatorem LayoutWyrównaj lub funkcją kompozycyjną Stos (Ib237f).
WithConstraints uzyskała parametr LayoutDirection (I6d6f7)
Wykonano propagację kierunku układu z węzła nadrzędnego do elementów podrzędnych. Dodano modyfikator kierunku układu. (I3D955)
Komponent stosu obsługuje kierunek od prawej do lewej (Ic9e00)
Funkcja kompozycyjna DrawStatus została usunięta. Użyj modyfikatora DrawBackground. (I7ceb2).
Obsługa kierunku od prawej do lewej w modyfikatorze LayoutPadding (I9e8da).
Dodaliśmy AdapterList, komponent listy przewijanej, który tylko tworzy i układa widoczne elementy. Znane problemy pamiętaj, że jest tylko pionowa i nie obsługuje wszystkich przypadków zmian w jego elementach potomnych. (IB351b)
Flaga
ComposeFlags.COMPOSER_PARAM
została zmieniona natrue
, co zmieni strategię generowania kodu dla wtyczki do tworzenia wiadomości. Ogólnie powoduje to generowanie funkcji @Composable z dodatkowym parametrem syntetycznym, który jest przekazywany do kolejnych wywołań @Composable w celu prawidłowego zarządzania wykonaniem w środowisku wykonawczym. Jest to istotna zmiana polegająca na nieprawidłowym działaniu plików binarnych, jednak powinna ona zachować zgodność na poziomie źródła we wszystkich objętych sankcjami użycia funkcji tworzenia wiadomości. (I7971C)Dodano komponent Canvas. Ten element kompozycyjny zajmuje określony rozmiar (podany przez użytkownika) i umożliwia rysowanie za pomocą CanvasScope (I0d622)
Interfejsy 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)
Zmieniono współrzędne LayoutCoordinates, aby utworzyć providedWyrównajmentLines ustawić zamiast mapy zestaw, a funkcja LayoutCoordinates wdrożyła funkcję get(). Dzięki temu dla modyfikatorów do modyfikowania jednej lub kilku wartości w zestawie bez podczas tworzenia nowej kolekcji dla każdego modyfikatora. (I0245a)
Przewijacze wykazują teraz natywne działanie przesuwania w Androidzie. (I922af, b/147493715)
Ulepszenia interfejsu API ograniczeń (I0fd15)