Materiał tworzenia wiadomości

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.
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.

GrupaOpis
compose.animation,Twórz animacje w aplikacjach Jetpack Compose, aby wzbogacać wrażenia użytkowników.
compose.buildrPrzekształcaj funkcje @Composable i optymalizuj funkcje za pomocą wtyczki kompilatora Kotlin.
compose.foundationTwó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.

Tworzenie nowego numeru

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 to remember { MutableInteractionSource() }, teraz akceptują wartość null dla elementu MutableInteractionSource i domyślnie mają wartość null. Jeśli nie podnosisz danych ani nie używasz MutableInteractionSource, 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 do TextStyle i usunięto TextDefaults 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 tematycznych LinkAnnotations 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 tabelach TextFieldDecorationBox i OutlinedTextFieldDecorationBox. Pola dekoracji obsługują teraz parametr shape. (I371c2, b/307694651)
  • Tabela RippleConfiguration#isEnabled została usunięta, a domena LocalRippleConfiguration może mieć wartość null. Aby wyłączyć Echo, zamiast podawać RippleConfiguration z isEnabled = false, podaj null dla LocalRippleConfiguration. (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 argument pressedStyle, 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 obiektu LinkAnnotation i analizy ciągu z tagami HTML, który powoduje zastosowanie wartości MaterialTheme 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 i BottomDrawer do obiektu DrawerDefaults. (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

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, a confirmStateChange nie jest już parametrem lambda na końcu. (I9c029, b/261423850)
  • Wersja BackdropScaffold została zmieniona z eksperymentalnej na stabilną. Specyfikacja animacji to teraz specyfikacja tween, zgodnie z wytycznymi. Parametr snackbarHost elementu BackdropScaffold nie jest już ostatnim parametrem, który pozwala uniknąć nieporozumień z końcowymi wartościami lambda. BackdropScaffoldState udostępnia interfejs API progress(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ę pakietu BottomSheetScaffold 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 i RippleTheme 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żywasz MutableInteractionSource, 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 parametr autoMirror. (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 sekcji BottomSheetScaffoldWithDrawerSample. (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 pole Icons.Filled.ArrowBack należy poddać refaktoryzacji na Icons.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 obiekcie LookaheadScope zbyt wcześnie próbowały odczytywać swój rozmiar. (If2c5d).
  • Poprawiono obliczenie offset dla DropdownMenu, 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 elementem BottomSheetScaffold wewnątrz elementu LookaheadLayout. (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 interfejs TextFieldColors. Podczas zastępowania wartości leadingIconColor lub trailingIconColor 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 teraz false domyślnie w typografii Material 2. Domyślny styl wysokości wiersza również został zmieniony na Trim.None i Alignment.Center, a do elementów TextStyle w tabeli Typography dodaliśmy wyraźne lineHeight (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 API AnchoredDraggable 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 i BottomDrawerState 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 parametru confirmStateChange użytkownika BottomSheetState została zmieniona na confirmValueChange. Pole progress jest teraz wyświetlane jako wartość zmiennoprzecinkowa. animateTo i snapTo są wewnętrzne. Zamiast nich używaj kolumn expand() i collapse(). Usunięto direction i overflow. Element offset został zastąpiony tekstem requireOffset(). 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 i confirmStateChange użytkownika rememberModalBottomSheetState na confirmValueChange. (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 animateTo ModalBottomSheetState nie przyjmuje już parametru animationSpec, a wyświetlone przesunięcie może teraz mieć wartość null. Użyj funkcji requireOffset, 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 funkcji requireOffset, 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 oraz TextField i OutlinedTextField, 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 lambda onRelease w elemencie Modifier.pullRefresh, aby zwracał liczbę zmiennoprzecinkową dla prędkości wykorzystania (I7db65, b/266874741).
  • BottomSheetState, ModalBottomSheetState i BottomDrawerState 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 i BottomDrawerState 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 i BottomDrawerState 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ów DropdownMenu lub ExposedDropdownMenu 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 na isTraversalGroup (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 i ModalDrawer. 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 API SwipeableV2. Z tego powodu BottomDrawerState będzie teraz mieć zdefiniowane tylko interfejsy API na poziomie klasy, nie odziedziczy metod/właściwości z klasy SwipeableState. Używamy kompozycji z wewnętrznym elementem SwipeableV2State. 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 jak isOpen/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) w BottomSheetScaffold 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. Metoda animateTo w DrawerState została zastąpiona metodami otwarcia i zamknięcia, a przesunięcie umożliwia teraz wartość null. Użyj funkcji requireOffset, aby wymagać przesunięcia. (I3de9e).
  • Dodano parametr minLines do obiektu Material3 Text oraz TextField i OutlinedTextField, który umożliwia ustawienie minimalnej wysokości komponentu w zależności od liczby linii (I4af1d).
  • Do komponentów BasicText i BasicTextField dodaliśmy parametr minLines. 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 parametru confirmStateChange użytkownika BottomSheetState została zmieniona na confirmValueChange. Pole progress jest teraz wyświetlane jako wartość zmiennoprzecinkowa. animateTo i snapTo są wewnętrzne. Zamiast nich używaj kolumn expand() i collapse(). Usunięto direction i overflow. Element offset został zastąpiony tekstem requireOffset(). (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 i kitchen. (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 lambda onRelease w elemencie Modifier.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 do LocalMinimumInteractiveComponentEnforcement. (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 i confirmStateChange użytkownika rememberModalBottomSheetState na confirmValueChange. (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 elemencie ModalBottomSheetState nie przyjmuje już parametru animationSpec, a widoczna wartość wymiaru offset może mieć teraz wartość null. Użyj zasady requireOffset, aby wymagać uprawnienia offset. (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ów refreshThreshold i refreshingOffset. (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łania snapTo lub animateTo zaktualizuje currentValue 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łowy initialValue, 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 do androidx.compose.foundation:1.4.0-alpha04 może wystąpić błąd java.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 biblioteki androidx.compose.material i androidx.compose.material3 do najnowszej wersji(1.1.0-alfa04) lub przywróć pakiet androidx.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 w ModalDrawer. Pole animateTo metody DrawerState zostało zastąpione metodami open i close, a przesunięcie może teraz przyjmować wartości null. Użyj funkcji requireOffset, 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 elementu Scrollable 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 funkcji onRefresh, 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 i waitForUpOrCancellation akceptują teraz PointerEventPass, co zapewnia większą elastyczność. (I7579a, b/212091796)
  • Dodano parametr minLines do obiektu Material3 Text oraz TextField i OutlinedTextField, który umożliwia ustawienie minimalnej wysokości komponentu w zależności od liczby linii (I4af1d).
  • Do parametrów BasicText i BasicTextField dodano parametr minLines. 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 do forEachGesture(), ale pętla gestów działa w całości w obrębie AwaitPointerEventScope, więc zdarzenia nie mogą zostać utracone między iteracjami.
  • Funkcja forEachGesture() została wycofana i zastąpiona awaitEachGesture(), 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 atrybutem FloatingActionButton 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 w OutlinedTextField na TextFieldDefaults.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ć polecenia consume(). Parametr isConsumed 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 kopie PointerInputChange zostaną zużyte. Jeśli chcesz utworzyć nieograniczony PointerInputChange, 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 i LazyHorizontalGrid 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. Wycofana ViewCompat.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 funkcji includeFontPadding=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 i OutlinedTextFieldDecorationBox 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 i ComposableOpenTarget, 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 lub ReusableComposeNode 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 zamiast ComposableTarget. Adnotacja kompozycyjna oznaczony za pomocą atrybutu ComposableTargetMarker jest odpowiednikiem funkcji ComposbleTarget z pełną i jednoznaczną nazwą atrybutu jako parametr aplikacji. Na przykład za pomocą funkcji ComposableTargetMarker 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

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 elementu ModalBottomSheetState na true. Zaktualizowanie wartości parametru isSkipHalfExpanded 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 adresem androidx.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

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ły ExposedDropdownMenuBox z komponentem TextField i DropdownMenu (If60b2)
  • Pole dismissOnOutsideClick zostało dodane do tabeli PopupProperties, zastępując dismissOnClickOutside, 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 do PopupProperties, 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).

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 i GestureScope, które zawierają zostały zastąpione przez performTouchInput i TouchInjectionScope. (Ia5f3f, b/190493367)
  • Element touchBoundsInRoot został dodany do elementu SemanticsNode 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ędnij Dp.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 Kotlinie 1.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 AGP 7.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 na usePlatformDefaultWidth. (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 funkcji TextFieldColors.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 katalogu src/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żywasz adb 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ów H, S i P 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 klasa androidx.compose.runtime.SlotTable miałaby deskryptor Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> to podpis metody. Zawiera nazwę, typy parametrów i typy zwracanych metod. Na przykład metoda fun isPlaced(): Boolean w LayoutNode ma podpis isPlaced()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.
  • 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.

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 przez Modifier.focusTarget() (I6c860)
  • Zastąpiono enum FocusState interfejsem FocusState (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ę, dodano LocalRippleNativeRendering – 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)
  • Włącz zmianę nazwy hideSoftwareKeyboard i showSoftwareKeyboard SoftwareKeyboardControllerhide() i show().
    • 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 lub Recomposer.runRecomposeAndApplyChanges bez MonotonicFrameClock wyrzuci teraz IllegalStateException. (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 elementu IllegalStateException, 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ło BottomDrawerState i ModalBottomSheetLayoutState. 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 interfejsu SoftwareKeyboardController 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 jak Button czy Modifier.clickable(), użyj interactionSource = 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.
  • 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 na animateScrollBy() Nazwa LazyListState.snapToItemIndex() została zmieniona na scrollToItem() Nazwa ScrollState.smoothScrollTo() została zmieniona na animateScrollTo() (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 za selected i onClick.
    • Nazwa parametru alwaysShowLabels w elemencie bottomNavigationItem została zmieniona na alwaysShowLabel.
    • Zmieniono nazwę parametrów bodyContent niektórych komponentów na content.
    • 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 parametr secondaryVariant. Ten kolor jest zwykle taki sam jak kolor secondary 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 w Slider na onValueChangeFinished i ustawiłem ją na wartość null.
    • Nazwa parametru text w komórce Snackbar została zmieniona na content w celu zachowania spójności.
    • Dodano parametr contentPadding do elementu DropdownMenuItem, aby umożliwić dostosowanie domyślnego dopełnienia, oraz ustawienie content jako rozszerzenia w witrynie RowScope.
    • Nazwa ModalDrawerLayout została zmieniona na ModalDrawer.
    • Nazwa BottomDrawerLayout została zmieniona na BottomDrawer.
    • (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(). Parametr indication w obiekcie Modifier.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 i toggleModifier zostały usunięte z menu oraz zmieniono ich nazwy odpowiednio dropdownModifier, dropdownOffset i dropdownContent na modifier, offset i content. Menu rozwijane działa teraz spójnie w sekcji Popup, gdzie do określenia pozycji menu jest używany układ nadrzędny. W większości przypadków możesz przenieść plik toggle, aby utworzyć element potomny DropdownMenu, i umieścić oba w elemencie Box. 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 jak remember { mutableStateOf(0) }, usuniemy funkcję savedInstanceState { 0 } kompozycyjną. Zamiast niego użyj parametru rememberSaveable { 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 parametr stateSaver. 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 i icon karty oraz parametr label 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 przekazujesz emptyContent(), aby reprezentować brak tekstu, ikony/etykiety, zamiast tego użyj null. (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 atrybut Animatable.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óbny ComposeTestRule i definiuje zasadę setContent, która została usunięta z ComposeTestRule Dodano metodę fabryczną createEmptyComposeRule() zwracający ComposeTestRule i nie uruchamia aktywności dla do Ciebie. Użyj tej opcji, jeśli chcesz uruchomić aktywność w trakcie testu. np. przy użyciu ActivityScenario.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) i itemsIndexed(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) i itemsIndexed(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 tekstem animateAsState(), , który zwraca State<T> zamiast T. 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 do content. (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ąpiony rememberRippleIndication(), 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 na Modifier.alpha
    • Nazwa Modifier.drawShadow została zmieniona na Modifier.shadow (I264ca, b/173208140)
  • 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 metody placeable.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ądzenia BottomNavigationItem na onClick (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 i disabledContentColor. 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 i resistanceFactorAtMax w Modifier.swipeable zostały zastąpione jednym parametrem oporu. Nowa metoda defaultResistanceConfig została dodana w SwipeableConstants. (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() i FloatingActionButtonConstants.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 czy waitForIdle, 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 i AndroidInputDispatcher z androidx.ui.test.android do androidx.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 na indicator. 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 wzorca by 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 i OnChildPositionedModifier. Deweloperzy powinni używać interfejsów onPositioned i OnPositionedModifier 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 na PlacementScope.place(), a poprzednia nazwa (PlacementScope.place()) na PlacementScope.placeRelative(). W efekcie metoda PlacementScope.place() nie będzie już automatycznie dublować położenia w kontekstach od prawej do lewej. Jeśli chcesz, użyj PlacementScope.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 na label, onSelected na onSelect, activeColor na selectedContentColor, inactiveColor na unselectedContentColor 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)
    1. Usuń nieużywany interfejs OffsetBase
    2. Wyrównuje klasy Offset i IntOffset, które mają mieć spójna platforma API
    3. Zmień nazwę IntOffset.Origin na IntOffset.Zero aby zachować spójność z interfejsem Offset API
    4. Metodę natywnego Canvas usunięto z Canvas aby ułatwić konsumentom tworzenie własne instancje Canvas
    5. Utworzono wycinek klasy EmptyCanvas do refaktoryzacji DrawScope, aby był parametrem niepustym, a nie Lateinit i zapewnić brak wartości pola jako wartość null
    6. Zmieniono nazwę wyliczeń ClipOp na sprawy Pascal
    7. Zmieniono nazwę enumów filtraJakość na typ Pascal
    8. Zmieniono nazwę wyliczeń Stroke Join na Case Pascal
    9. Zmieniono nazwę wyliczeń PointMode na typ Pascal
    10. Zmieniono nazwy enum PaintingStyle na przypadek Pascala
    11. Zmieniono nazwę wyliczeń PathFillType na przypadek Pascal
    12. Zmieniono nazwę wyliczeń StrokeCap na przypadki Pascal
    13. Implementacja DrawCache została zaktualizowana i nie jest już dostępna używanie parametrów Lateinit
    14. Zaktualizowano metodę DrawScope, aby nie używała już leniwego przekazywania dostępu dla parametrów wewnętrznych FillPaint i StrikePaint
    15. Zaktualizowaliśmy funkcję kompozycji obrazu, aby uniknąć używania usługi Box przy mniejszym nakładzie pracy
    16. Zaktualizowaliśmy klasę Outline tak, aby dodać do niej adnotacje @stałe.
    17. Zaktualizowano obiekt PathNode, aby dodać adnotacje @Stałe dla: instrukcja dla każdej ścieżki
    18. 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
    19. Wycofane metody konstruktora kreacji towarzyszącej w formacie prostokąta konstruktorów funkcji
    20. Zaktualizowano klasy i konstruktory funkcji pędzla za pomocą Interfejsy API @Immutable i @Stable
    21. Zaktualizowano enum VertexMode na PascalCase
    22. Metodę DrawScope selectPaint zmieniono na warunkowo nadpisać parametry kreski, jeśli mają zmieniono
    23. 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żywaj SemanticsNodeInteraction.performGesture. (Id9b62)
  • Nazwa SemanticsNodeInteraction.getBoundsInRoot() została zmieniona na SemanticsNodeInteraction.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ści val klasy danych, a następnie użyj state zamiast remember i przypisz wartość State sklonowanym kopiom oryginału za pomocą wygodnej metody klasy danych copy(...).

    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ści var pierwotnej klasy właściwościami var właściwościami mutableStateOf. 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 i icon (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 na DrawBorder (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 na runOnIdle (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 i runOnUiThread 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 { ... } lub by 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 lub setViewContent. Metoda Compose.disposeComposition została wycofana. Użyj metody dispose dla obiektu Composition zwróconego przez setContent. 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 na true, 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)