Materiał kompozytowy

Twórz interfejsy Jetpack Compose za pomocą gotowych komponentów Material Design. Jest to punkt wejścia wyższego poziomu w Compose, który ma zapewniać komponenty zgodne z tymi opisanymi na stronie www.material.io.
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja beta Wersja alfa
7 października 2026 r. 1.12.1 - 1.13.0-beta01 -

Struktura

Compose to połączenie 7 identyfikatorów grup Maven w androidx. Każda grupa zawiera ukierunkowany podzbiór funkcji, a każda z nich ma własny zestaw informacji o wersji.

W tej tabeli znajdziesz grupy i linki do poszczególnych zestawów informacji o wersji.

GrupaOpis
compose.animationtworzyć animacje w aplikacjach Jetpack Compose, aby wzbogacać wrażenia użytkowników;
compose.compilerPrzekształcanie funkcji z adnotacją @Composable i włączanie optymalizacji za pomocą wtyczki kompilatora Kotlin.
compose.foundationTwórz aplikacje w Jetpack Compose za pomocą gotowych elementów składowych i rozszerzaj podstawy, aby tworzyć własne elementy systemu projektowania.
compose.materialTwórz interfejsy Jetpack Compose za pomocą gotowych komponentów Material Design. Jest to punkt wejścia wyższego poziomu w Compose, który ma zapewniać komponenty zgodne z tymi opisanymi na stronie www.material.io.
compose.material3Twórz interfejsy Jetpack Compose za pomocą komponentów Material Design 3, czyli kolejnej ewolucji Material Design. Material 3 zawiera zaktualizowane motywy i komponenty oraz funkcje personalizacji Material You, takie jak dynamiczny kolor. Jest on spójny z nowym stylem wizualnym Androida 12 i interfejsem systemu.
compose.runtimePodstawowe elementy modelu programowania i zarządzania stanem w Compose oraz podstawowe środowisko wykonawcze, do którego kierowana jest wtyczka kompilatora Compose.
compose.uiPodstawowe komponenty interfejsu Compose potrzebne do interakcji z urządzeniem, w tym układ, rysowanie i dane wejściowe.

Deklarowanie zależności

Aby dodać zależność od Compose, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w repozytorium Maven Google.

Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:

Groovy

plugins {
    id 'org.jetbrains.kotlin.plugin.compose'
}

dependencies {
    implementation "androidx.compose.material:material:1.12.1"
}

android {
    buildFeatures {
        compose true
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

plugins {
    kotlin("plugin.compose")
}

dependencies {
    implementation("androidx.compose.material:material:1.12.1")
}

android {
    buildFeatures {
        compose = true
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Prześlij opinię

Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać głos na istniejący problem, klikając przycisk gwiazdki.

Tworzenie nowego problemu

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wersja 1.13

Wersja 1.13.0-beta01

7 października 2026 r.

Publikacja androidx.compose.material:material-*:1.13.0-beta01 Wersja 1.13.0-beta01 zawiera te zmiany.

Zmiany w interfejsie API

  • Biblioteki są teraz przeznaczone dla języka Kotlin 2.2 i wymagają kompilatora kotlinc 2.2 (I82396, b/498369605).

Wersja 1.13.0-alpha03

9 września 2026 r.

Publikacja androidx.compose.material:material-*:1.13.0-alpha03 Wersja 1.13.0-alpha03 zawiera te zmiany.

Zmiany w interfejsie API

  • Przeciążenia pola tekstowego Material 2, które akceptują parametry value, onValueChange, zostały wycofane. Przejdź na przeciążenie, które używa TextFieldState do przenoszenia stanu. (I6b841, b/556234973)

Poprawki błędów

  • compileSdk bibliotek Compose zaktualizowanych do wersji 37.1. Wymaga to przechodniego zaktualizowania compileSdk we wszystkich aplikacjach i bibliotekach korzystających z Compose. (I05b0f)
  • Zaktualizowano komponenty SecureTextField i OutlinedSecureTextField (a także wycofane przeciążenia BasicSecureTextField), aby jako domyślny tryb zaciemniania używały TextObfuscationMode.System zamiast TextObfuscationMode.RevealLastTyped. (I76c7e)

Wersja 1.13.0-alpha02

26 sierpnia 2026 r.

Publikacja androidx.compose.material:material-*:1.13.0-alpha02 Wersja 1.13.0-alpha02 zawiera te zmiany.

Wersja 1.13.0-alpha01

12 sierpnia 2026 r.

Publikacja androidx.compose.material:material-*:1.13.0-alpha01 Wersja 1.13.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • androidx.benchmark ma teraz minSdk na poziomie 24. (Ic2a85)

Poprawki błędów

  • Zoptymalizowana inicjalizacja na poziomie pliku właściwości klasy wartości najwyższego poziomu material za pomocą dynamicznych funkcji pobierających. (Iae591)
  • Zoptymalizowane inicjowanie obiektów towarzyszących o wartości material klas (FabPosition i Strings) za pomocą dynamicznych funkcji pobierających. (I0c7c0)
  • Usuń wymaganie dotyczące compileSdk 37 (If78b4)

Wersja 1.12

Wersja 1.12.1

9 września 2026 r.

Publikacja androidx.compose.material:material-*:1.12.1 Wersja 1.12.1 zawiera te zmiany.

Wersja 1.12.0

12 sierpnia 2026 r.

Publikacja androidx.compose.material:material-*:1.12.0 Wersja 1.12.0 zawiera te zmiany.

Ważne zmiany od wersji 1.11.0:

Wersja 1.12.0-rc01

29 lipca 2026 r.

Publikacja androidx.compose.material:material-*:1.12.0-rc01 Wersja 1.12.0-rc01 zawiera te zmiany.

Wersja 1.12.0-beta02

1 lipca 2026 r.

Publikacja androidx.compose.material:material-*:1.12.0-beta02 Wersja 1.12.0-beta02 zawiera te zmiany.

Wersja 1.12.0-beta01

17 czerwca 2026 r.

Publikacja androidx.compose.material:material-*:1.12.0-beta01 Wersja 1.12.0-beta01 zawiera te zmiany.

Wersja 1.12.0-alpha03

19 maja 2026 r.

Publikacja androidx.compose.material:material-*:1.12.0-alpha03 Wersja 1.12.0-alpha03 zawiera te zmiany.

Wersja 1.12.0-alpha02

6 maja 2026 r.

Publikacja androidx.compose.material:material-*:1.12.0-alpha02 Wersja 1.12.0-alpha02 zawiera te zmiany.

Wersja 1.12.0-alpha01

22 kwietnia 2026 r.

Publikacja androidx.compose.material:material-*:1.12.0-alpha01 Wersja 1.12.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • Zmieniono VelocityTracker, aby korzystać z implementacji dostarczonej przez Android Framework (można ją skonfigurować za pomocą AndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled). (Ibc7e2, b/359962905)

Poprawki błędów

  • Zaktualizowano Compose compileSdk do interfejsu API 37. Oznacza to, że podczas korzystania z Compose wymagana jest minimalna wersja AGP 9.2.0. (Id45cd, b/413674743)

Wersja 1.11

Wersja 1.11.4

1 lipca 2026 r.

Publikacja androidx.compose.material:material-*:1.11.4 Wersja 1.11.4 zawiera te zmiany.

Wersja 1.11.3

17 czerwca 2026 r.

Publikacja androidx.compose.material:material-*:1.11.3 Wersja 1.11.3 zawiera te zmiany.

Wersja 1.11.2

19 maja 2026 r.

Publikacja androidx.compose.material:material-*:1.11.2 Wersja 1.11.2 zawiera te zmiany.

Wersja 1.11.1

6 maja 2026 r.

Publikacja androidx.compose.material:material-*:1.11.1 Wersja 1.11.1 zawiera te zmiany.

Wersja 1.11.0

22 kwietnia 2026 r.

Publikacja androidx.compose.material:material-*:1.11.0 Wersja 1.11.0 zawiera te zmiany.

Wersja 1.11.0-rc01

8 kwietnia 2026 r.

Publikacja androidx.compose.material:material-*:1.11.0-rc01 Wersja 1.11.0-rc01 zawiera te zmiany.

Wersja 1.11.0-beta02

25 marca 2026 r.

Publikacja androidx.compose.material:material-*:1.11.0-beta02 Wersja 1.11.0-beta02 zawiera te zmiany.

Wersja 1.11.0-beta01

11 marca 2026 r.

Publikacja androidx.compose.material:material-*:1.11.0-beta01 Wersja 1.11.0-beta01 zawiera te zmiany.

Wersja 1.11.0-alpha06

25 lutego 2026 r.

Publikacja androidx.compose.material:material-*:1.11.0-alpha06 Wersja 1.11.0-alpha06 zawiera te zmiany.

Wersja 1.11.0-alpha05

11 lutego 2026 r.

Publikacja androidx.compose.material:material-*:1.11.0-alpha05 Wersja 1.11.0-alpha05 zawiera te zmiany.

Wersja 1.11.0-alpha04

28 stycznia 2026 r.

Publikacja androidx.compose.material:material-*:1.11.0-alpha04 Wersja 1.11.0-alpha04 zawiera te zmiany.

Wersja 1.11.0-alpha03

14 stycznia 2026 r.

Publikacja androidx.compose.material:material-*:1.11.0-alpha03 Wersja 1.11.0-alpha03 zawiera te zmiany.

Wersja 1.11.0-alpha02

17 grudnia 2025 r.

Publikacja androidx.compose.material:material-*:1.11.0-alpha02 Wersja 1.11.0-alpha02 zawiera te zmiany.

Wersja 1.11.0-alpha01

3 grudnia 2025 r.

Publikacja androidx.compose.material:material-*:1.11.0-alpha01 Wersja 1.11.0-alpha01 zawiera te zmiany.

Wersja 1.10

Wersja 1.10.6

25 marca 2026 r.

Publikacja androidx.compose.material:material-*:1.10.6 Wersja 1.10.6 zawiera te zmiany.

Wersja 1.10.5

11 marca 2026 r.

Publikacja androidx.compose.material:material-*:1.10.5 Wersja 1.10.5 zawiera te zmiany.

Wersja 1.10.4

25 lutego 2026 r.

Publikacja androidx.compose.material:material-*:1.10.4 Wersja 1.10.4 zawiera te zatwierdzenia.

Wersja 1.10.3

11 lutego 2026 r.

Publikacja androidx.compose.material:material-*:1.10.3 Wersja 1.10.3 zawiera te zmiany.

Wersja 1.10.2

28 stycznia 2026 r.

Publikacja androidx.compose.material:material-*:1.10.2 Wersja 1.10.2 zawiera te zmiany.

Wersja 1.10.1

14 stycznia 2026 r.

Publikacja androidx.compose.material:material-*:1.10.1 Wersja 1.10.1 zawiera te zmiany.

Wersja 1.10.0

3 grudnia 2025 r.

Publikacja androidx.compose.material:material-*:1.10.0 Wersja 1.10.0 zawiera te zmiany.

Wersja 1.10.0-rc01

19 listopada 2025 r.

Publikacja androidx.compose.material:material-*:1.10.0-rc01 Wersja 1.10.0-rc01 zawiera te zmiany.

Wersja 1.10.0-beta02

5 listopada 2025 r.

Publikacja androidx.compose.material:material-*:1.10.0-beta02 Wersja 1.10.0-beta02 zawiera te zmiany.

Wersja 1.10.0-beta01

22 października 2025 r.

Publikacja androidx.compose.material:material-*:1.10.0-beta01 Wersja 1.10.0-beta01 zawiera te zmiany.

Wersja 1.10.0-alpha05

8 października 2025 r.

Publikacja androidx.compose.material:material-*:1.10.0-alpha05 Wersja 1.10.0-alpha05 zawiera te zmiany.

Wersja 1.10.0-alpha04

24 września 2025 r.

Publikacja androidx.compose.material:material-*:1.10.0-alpha04 Wersja 1.10.0-alpha04 zawiera te zmiany.

Wersja 1.10.0-alpha03

10 września 2025 r.

Publikacja androidx.compose.material:material-*:1.10.0-alpha03 Wersja 1.10.0-alpha03 zawiera te zmiany.

Wersja 1.10.0-alpha02

27 sierpnia 2025 roku

Publikacja androidx.compose.material:material-*:1.10.0-alpha02 Wersja 1.10.0-alpha02 zawiera te zmiany.

Wersja 1.10.0-alpha01

13 sierpnia 2025 r.

Publikacja androidx.compose.material:material-*:1.10.0-alpha01 Wersja 1.10.0-alpha01 zawiera te zatwierdzenia.

Poprawki błędów

Wersja 1.9

Wersja 1.9.5

19 listopada 2025 r.

Publikacja androidx.compose.material:material-*:1.9.5 Wersja 1.9.5 zawiera te zatwierdzenia.

Wersja 1.9.4

22 października 2025 r.

Publikacja androidx.compose.material:material-*:1.9.4 Wersja 1.9.4 zawiera te zatwierdzenia.

Wersja 1.9.3

8 października 2025 r.

Publikacja androidx.compose.material:material-*:1.9.3 Wersja 1.9.3 zawiera te zatwierdzenia.

Wersja 1.9.2

24 września 2025 r.

Publikacja androidx.compose.material:material-*:1.9.2 Wersja 1.9.2 zawiera te zatwierdzenia.

Wersja 1.9.1

10 września 2025 r.

Publikacja androidx.compose.material:material-*:1.9.1 Wersja 1.9.1 zawiera te zatwierdzenia.

Wersja 1.9.0

13 sierpnia 2025 r.

Publikacja androidx.compose.material:material-*:1.9.0 Wersja 1.9.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.8.0

Zmiany w zachowaniu

  • Sprawdzanie kodu za pomocą narzędzia Lint w Compose wymaga teraz minimalnej wersji AGP 8.8.2. Jeśli nie możesz uaktualnić AGP, możesz zamiast tego uaktualnić Lint, używając w pliku gradle.properties wersji android.experimental.lint.version=8.8.2 lub nowszej. Aby uruchamiać sprawdzanie kodu Compose w IDE, musisz mieć Android Studio Ladybug lub nowsze.

Zmiany w interfejsie API

  • Projekty wydane w Kotlinie 2.0 wymagają KGP w wersji 2.0.0 lub nowszej. (Idb6b5)
  • Interfejsy API pola tekstowego nie są już eksperymentalne. (I7480f)

Poprawki błędów

  • ExposedDropdownMenu jest binarnie zgodny ze starszymi wersjami. (I133f7)

Wersja 1.9.0-rc01

30 lipca 2025 r.

Publikacja androidx.compose.material:material-*:1.9.0-rc01 Wersja 1.9.0-rc01 zawiera te zatwierdzenia.

Wersja 1.9.0-beta03

16 lipca 2025 r.

Publikacja androidx.compose.material:material-*:1.9.0-beta03 Wersja 1.9.0-beta03 zawiera te zatwierdzenia.

Wersja 1.9.0-beta02

2 lipca 2025 r.

Publikacja androidx.compose.material:material-*:1.9.0-beta02 Wersja 1.9.0-beta02 zawiera te zatwierdzenia.

Wersja 1.9.0-beta01

18 czerwca 2025 r.

Publikacja androidx.compose.material:material-*:1.9.0-beta01 Wersja 1.9.0-beta01 zawiera te zatwierdzenia.

Poprawki błędów

  • Hiperlinki w Text(AnnotatedString) mają teraz domyślnie styl Material. (I0e8ed, b/339843816)

Wersja 1.9.0-alpha04

4 czerwca 2025 r.

Publikacja androidx.compose.material:material-*:1.9.0-alpha04 Wersja 1.9.0-alpha04 zawiera te zatwierdzenia.

Wersja 1.9.0-alpha03

20 maja 2025 r.

Publikacja androidx.compose.material:material-*:1.9.0-alpha03 Wersja 1.9.0-alpha03 zawiera te zatwierdzenia.

Wersja 1.9.0-alpha02

7 maja 2025 r.

Publikacja androidx.compose.material:material-*:1.9.0-alpha02 Wersja 1.9.0-alpha02 zawiera te zatwierdzenia.

Wersja 1.9.0-alpha01

23 kwietnia 2025 r.

Publikacja androidx.compose.material:material-*:1.9.0-alpha01 Wersja 1.9.0-alpha01 zawiera te zatwierdzenia.

Zmiany w zachowaniu

  • Sprawdzanie kodu za pomocą narzędzia Lint w Compose wymaga teraz minimalnej wersji AGP 8.8.2. Jeśli nie możesz uaktualnić AGP, możesz zamiast tego uaktualnić Lint, używając wersji android.experimental.lint.version=8.8.2 (lub nowszej) w pliku gradle.properties. Aby uruchamiać sprawdzanie kodu Compose w IDE, musisz mieć Androida Studio w wersji Ladybug lub nowszej.

Zmiany w interfejsie API

  • Projekty wydane w Kotlinie 2.0 wymagają KGP w wersji 2.0.0 lub nowszej. (Idb6b5)
  • Interfejsy API pola tekstowego nie są już eksperymentalne (I7480f, b/269651160)
  • Wycofanie runWithTimingDisabled na rzecz runWithMeasurementDisabled, które dokładniej opisuje działanie – wszystkie dane są wstrzymane. Dodatkowo udostępnij superklasę MicrobenchmarkScope, ponieważ ponowne zadeklarowanie funkcji runWithMeasurementDisabled w celu otwartego dostępu nie jest możliwe, ponieważ jest ona wstawiana. (I9e23b, b/389149423, b/149979716)

Poprawki błędów

  • ExposedDropdownMenu jest binarnie zgodna ze starszymi wersjami. (I133f7)
  • Rozwiązaliśmy problem z awarią wskaźników postępu i wczytywania w przypadku przekazania wartości Float.NaN jako postępu. (I4fa96, b/352364576)

Wersja 1.8

Wersja 1.8.3

18 czerwca 2025 r.

Publikacja androidx.compose.material:material-*:1.8.3 Wersja 1.8.3 zawiera te zatwierdzenia.

Wersja 1.8.2

20 maja 2025 r.

Publikacja androidx.compose.material:material-*:1.8.2 Wersja 1.8.2 zawiera te zatwierdzenia.

Wersja 1.8.1

7 maja 2025 r.

Publikacja androidx.compose.material:material-*:1.8.1 Wersja 1.8.1 zawiera te zatwierdzenia.

Wersja 1.8.0

23 kwietnia 2025 r.

Publikacja androidx.compose.material:material-*:1.8.0 Wersja 1.8.0 zawiera te zatwierdzenia.

Wersja 1.8.0-rc03

9 kwietnia 2025 r.

Publikacja androidx.compose.material:material-*:1.8.0-rc03 Wersja 1.8.0-rc03 zawiera te zmiany.

Wersja 1.8.0-rc02

26 marca 2025 r.

Publikacja androidx.compose.material:material-*:1.8.0-rc02 Wersja 1.8.0-rc02 zawiera te zmiany.

Wersja 1.8.0-rc01

12 marca 2025 r.

Publikacja androidx.compose.material:material-*:1.8.0-rc01 Wersja 1.8.0-rc01 zawiera te zmiany.

Wersja 1.8.0-beta03

26 lutego 2025 r.

Publikacja androidx.compose.material:material-*:1.8.0-beta03 Wersja 1.8.0-beta03 zawiera te zmiany.

Wersja 1.8.0-beta02

12 lutego 2025 r.

Publikacja androidx.compose.material:material-*:1.8.0-beta02 Wersja 1.8.0-beta02 zawiera te zmiany.

Wersja 1.8.0-beta01

29 stycznia 2025 r.

Publikacja androidx.compose.material:material-*:1.8.0-beta01 Wersja 1.8.0-beta01 zawiera te zmiany.

Wersja 1.8.0-alpha08

15 stycznia 2025 r.

Publikacja androidx.compose.material:material-*:1.8.0-alpha08 Wersja 1.8.0-alpha08 zawiera te zmiany.

Poprawki błędów

  • Dodaje displayCutout do grupy wcięć, które komponenty Material domyślnie uwzględniają, aby uniknąć nakładania się treści z wycięciem w ekranie.
    • Jest to zmiana w działaniu, która wpłynie na sposób, w jaki komponenty uwzględniające wcięcia będą działać w pobliżu wycięcia w ekranie. Obejmuje to wartość domyślną parametru WindowInsets w przypadku komponentów Material 3 uwzględniających wcięcia oraz wartości WindowInsets podane w komponencie.
    • Domyślne obiekty dla Material 2 i Material 3. Jeśli ta zmiana spowoduje niepożądane działanie, ręcznie określ parametr WindowInsets dla poszczególnych komponentów. (I43ee9, b/362508045)
  • Aktywność używana jako host dla testowanego komponentu kompozycyjnego podczas korzystania z funkcji ComposeContentTestRule.setContent używa teraz motywu Theme.Material.Light.NoActionBar, aby uniknąć nakładania się elementu ActionBar na treści testowe w przypadku pakietu SDK 35. Aby zrezygnować z tego działania, możesz usunąć zależność od ui-test-manifest i dodać wpis aktywności w pliku AndroidManifest.xml aplikacji testowej dla ComponentActivity z wybranym motywem. (I7ae1b, b/383368165)

Wkład zewnętrzny

Wersja 1.8.0-alpha07

11 grudnia 2024 r.

Publikacja androidx.compose.material:material-*:1.8.0-alpha07 Wersja 1.8.0-alpha07 zawiera te zmiany.

Poprawki błędów

  • Naprawiono problem z nieprawidłowym działaniem modyfikatorów rozmiaru pola tekstowego. (I90d4c, b/356905963)

Wersja 1.8.0-alpha06

13 listopada 2024 r.

Publikacja androidx.compose.material:material-*:1.8.0-alpha06 Wersja 1.8.0-alpha06 zawiera te zmiany.

Wersja 1.8.0-alpha05

30 października 2024 r.

Publikacja androidx.compose.material:material-*:1.8.0-alpha05 Wersja 1.8.0-alpha05 zawiera te zmiany.

Poprawki błędów

  • Zoptymalizuj działanie komponentu Scaffold contentPadding, aby uniknąć ciągłego ponownego komponowania treści głównej, gdy zmienia się komponent contentPadding. (I8c8e2, b/373904168)
  • Spraw, aby suwak materiału zmieniał wartość po naciśnięciu klawiszy sterujących. (I1c442)

Wersja 1.8.0-alpha04

16 października 2024 r.

Publikacja androidx.compose.material:material-*:1.8.0-alpha04 Wersja 1.8.0-alpha04 zawiera te zmiany.

Zmiany w interfejsie API

  • Usuń readOnly z TextFields', aby przypiąć do stabilnej wersji podstawowej. (I3aaba)

Poprawki błędów

  • Dodaje obsługę efektu falowania w rozwijanych komponentach na Androidzie S+, np. na karcie, która rozwija się po kliknięciu. Wcześniej efekt nie wypełniał nowego rozmiaru, ale teraz będzie się rozszerzać do nowych granic. (If509a, b/183019123)

Wersja 1.8.0-alpha02

18 września 2024 r.

Publikacja androidx.compose.material:material-*:1.8.0-alpha02 Wersja 1.8.0-alpha02 zawiera te zmiany.

Wersja 1.8.0-alpha01

4 września 2024 r.

Publikacja androidx.compose.material:material-*:1.8.0-alpha01 Wersja 1.8.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaliśmy nowy konstruktor NavGraphBuilder.bottomSheet do tworzenia komponentu BottomSheet z argumentami bezpiecznymi ((I28589, I777db, b/351858980)).
  • Dodano nowe przeciążenia funkcji TextField i OutlinedTextField, które przyjmują argument TextFieldState (I3b74c).

Wersja 1.7

Wersja 1.7.8

12 lutego 2025 r.

Publikacja androidx.compose.material:material-*:1.7.8 Wersja 1.7.8 zawiera te zmiany.

Wersja 1.7.7

29 stycznia 2025 r.

Publikacja androidx.compose.material:material-*:1.7.7 Brak zmian w porównaniu z wersją 1.7.6.

Wersja 1.7.6

11 grudnia 2024 r.

Publikacja androidx.compose.material:material-*:1.7.6 Wersja 1.7.6 zawiera te zmiany.

Wersja 1.7.5

30 października 2024 r.

Publikacja androidx.compose.material:material-*:1.7.5 Wersja 1.7.5 zawiera te zmiany.

Wersja 1.7.4

16 października 2024 r.

Publikacja androidx.compose.material:material-*:1.7.4 Wersja 1.7.4 zawiera te zmiany.

Wersja 1.7.2

18 września 2024 r.

Publikacja androidx.compose.material:material-*:1.7.2 Wersja 1.7.2 zawiera te zmiany.

Wersja 1.7.1

10 września 2024 r.

  • Brak zmian w artefaktach Androida. Usunięto -desktop artefaktów, a dodano -jvmStubs i -linuxx64Stubs. Żaden z tych celów nie jest przeznaczony do użycia. Są to tylko symbole zastępcze, które mają pomóc w pracach nad Jetbrains Compose.

Wersja 1.7.0

4 września 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0 Wersja 1.7.0 zawiera te zmiany.

Ważne zmiany od wersji 1.6.0

  • Komponenty Material zostały przeniesione, aby korzystać z nowych interfejsów API efektu falowania, i nie wysyłają już zapytań do RippleTheme.
  • Komponenty Material, które wcześniej akceptowały wartość MutableInteractionSource i domyślnie przyjmowały wartość remember { MutableInteractionSource() }, teraz akceptują wartość null MutableInteractionSource i domyślnie przyjmują wartość null. Jeśli nie używasz funkcji hoistingu i nie korzystasz z elementu MutableInteractionSource, przekaż wartość null. Dzięki temu niektóre komponenty mogą tworzyć instancję tylko wtedy, gdy jest to konieczne, co zwiększa wydajność. Zalecamy też wprowadzenie podobnych zmian we własnych komponentach.
  • BottomDrawer, ModalBottomSheet, BackdropScaffold i standardowy Bottomsheet zostały przeniesione do stabilnego interfejsu API.

Wersja 1.7.0-rc01

21 sierpnia 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-rc01 Wersja 1.7.0-rc01 zawiera te zmiany.

Wersja 1.7.0-beta07

7 sierpnia 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-beta07 Wersja 1.7.0-beta07 zawiera te zmiany.

Wersja 1.7.0-beta06

24 lipca 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-beta06 Wersja 1.7.0-beta06 zawiera te zmiany.

Wersja 1.7.0-beta05

10 lipca 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-beta05 Wersja 1.7.0-beta05 zawiera te zmiany.

Wersja 1.7.0-beta04

26 czerwca 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-beta04 Wersja 1.7.0-beta04 zawiera te zmiany.

Wersja 1.7.0-beta03

12 czerwca 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-beta03 Wersja 1.7.0-beta03 zawiera te zmiany.

Wersja 1.7.0-beta02

29 maja 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-beta02 Wersja 1.7.0-beta02 zawiera te zmiany.

Zmiany w interfejsie API

  • Aktualizacja interfejsu API do stylizowania linków: przeniesiono TextLinkStyles do TextStyle i usunięto TextDefaults z materiału (I5477b)

Wersja 1.7.0-beta01

14 maja 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-beta01 Wersja 1.7.0-beta01 zawiera te zmiany.

Zmiany w interfejsie API

  • Zaktualizowaliśmy interfejs API do pobierania linków w stylu Material w Tekście. W szczególności usunęliśmy metody z TextDefaults do tworzenia tematycznych LinkAnnotations i parsowania kodu HTML z tematycznymi linkami. Zamiast tego dodaliśmy klasę TextLinkStyles, która umożliwia stylowanie linków jako parametru funkcji kompozycyjnej Text. (I31b93)

Wersja 1.7.0-alpha08

1 maja 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-alpha08 Wersja 1.7.0-alpha08 zawiera te zmiany.

Zmiany w interfejsie API

  • Naprawiono problem z niezastosowaniem backgroundColor do TextFieldDecorationBox i OutlinedTextFieldDecorationBox. Pudełka dekoracyjne akceptują teraz parametr shape. (I371c2, b/307694651)
  • Usunięto pole RippleConfiguration#isEnabled, a pole LocalRippleConfiguration może teraz przyjmować wartość null. Aby wyłączyć efekt fali, zamiast podawać RippleConfiguration z wartością isEnabled = false, podaj null z wartością LocalRippleConfiguration. (I22725)
  • Linki tekstowe mają opcję stylu stanu naciśnięcia oprócz stylów normalnego, najechanej i aktywnej. TextDefaults ma argument pressedStyle, który to umożliwia. (Ic473f, b/139312671)

Poprawki błędów

  • OutlinedTextField Górny odstęp etykiety uwzględnia teraz rozmiar czcionki systemowej. (Idc781)

Wersja 1.7.0-alpha07

17 kwietnia 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-alpha07 Wersja 1.7.0-alpha07 zawiera te zmiany.

Zmiany w interfejsie API

  • Linki tekstowe mają teraz opcję stylu stanu naciśnięcia oprócz stylów normalnego, najechanej i skupionej. (I5f864, b/139312671)
  • Dodano obiekt TextDefaults, który zawiera metody tworzenia obiektu LinkAnnotation i analizowania ciągu znaków z tagami HTML, które stosują MaterialTheme do linków. (I98532, b/139312671)

Wersja 1.7.0-alpha06

3 kwietnia 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-alpha06 Wersja 1.7.0-alpha06 zawiera te zmiany.

Ogłoszenie

  • androidx.compose.material nie wymaga już używania tej samej wersji każdego artefaktu w tej grupie Maven. Użytkownicy mogą łączyć ze sobą różne wersje podstawowych bibliotek Compose (Ie5fba).

Zmiany w interfejsie API

  • Przeniesiono więcej domyślnych ustawień ModalDrawer i BottomDrawer do obiektu DrawerDefaults. (Ib5b2e)

Wersja 1.7.0-alpha05

20 marca 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-alpha05 Wersja 1.7.0-alpha05 zawiera te zmiany.

Zmiany w interfejsie API

  • Oznaczenie ScaffoldSubcomposeInMeasureFix zostało usunięte. (I67363)

Wersja 1.7.0-alpha04

6 marca 2024 roku

Publikacja androidx.compose.material:material-*:1.7.0-alpha04 Wersja 1.7.0-alpha04 zawiera te zmiany.

Nowe funkcje

Wersja 1.7.0-alpha03

21 lutego 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-alpha03 Wersja 1.7.0-alpha03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • BottomDrawer został przeniesiony z wersji eksperymentalnej do stabilnej. BottomDrawerState udostępnia teraz postęp jako funkcję, co umożliwia sprawdzanie postępu między określonymi celami. BottomDrawerState umożliwia teraz dostosowywanie specyfikacji animacji, a confirmStateChange nie jest już funkcją lambda. (I9c029, b/261423850)
  • BackdropScaffold został przeniesiony z wersji eksperymentalnej do stabilnej. Specyfikacja animacji jest teraz zgodna z wytycznymi dotyczącymi specyfikacji tween. Parametr snackbarHost funkcji BackdropScaffold nie jest już ostatnim parametrem, aby uniknąć pomyłek z funkcjami LAMBDA na końcu. BackdropScaffoldState udostępnia interfejs API progress(from, to) do sprawdzania postępów między punktami. (I73f48, b/261423218)
  • Standardowe arkusze dolne zostały przeniesione z wersji eksperymentalnej do stabilnej. Wycofane konstruktory zostały usunięte. Specyfikacja animacji jest teraz specyfikacją przejścia zgodnie z wytycznymi. (I3c1a8, b/278692145, b/261409034)
  • Modalne arkusze u dołu zostały przeniesione z wersji eksperymentalnej do stabilnej. Wycofane konstruktory zostały usunięte. Specyfikacja animacji jest teraz zgodna z wytycznymi dotyczącymi specyfikacji tween. (Ic53f4, b/278692145, b/266780235, b/261409034)

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował awarię BackdropScaffold w określonych scenariuszach w połączeniu z LookaheadScope. (I51396)
  • Usunięto podkompozycję w BottomSheetScaffold, aby zwiększyć wydajność. Rozwiązaliśmy problem, który powodował, że BottomSheetScaffold ulegał awarii w określonych scenariuszach w połączeniu z LookaheadScope. (I2f90c)
  • Usunięto podkompozycję w ModalBottomSheetLayout, co zwiększyło wydajność. (I7a025)

Wersja 1.7.0-alpha02

7 lutego 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-alpha02 Wersja 1.7.0-alpha02 zawiera te zatwierdzenia.

Wersja 1.7.0-alpha01

24 stycznia 2024 r.

Publikacja androidx.compose.material:material-*:1.7.0-alpha01 Wersja 1.7.0-alpha01 zawiera te zatwierdzenia.

Zmiany w zachowaniu

  • Komponenty Material zostały przeniesione, aby korzystać z nowych interfejsów API efektu falowania, i nie wysyłają już zapytań do RippleTheme.

Zmiany w interfejsie API

  • Funkcje rememberRipple i RippleTheme zostały wycofane z material-ripple, a do bibliotek material i innych bibliotek systemu projektowania dodano nowe interfejsy API efektu falowania i RippleConfiguration.

  • Komponenty Material, które wcześniej akceptowały wartość MutableInteractionSource i domyślnie zapamiętywały wartość { MutableInteractionSource() }, teraz akceptują wartość null MutableInteractionSource i domyślnie przyjmują wartość null. Jeśli nie używasz funkcji hoistingu i nie korzystasz z elementu MutableInteractionSource, przekaż wartość null. Dzięki temu niektóre komponenty mogą tworzyć instancję tylko wtedy, gdy jest 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.

Publikacja androidx.compose.material:material-*:1.6.8 Wersja 1.6.8 zawiera te zmiany.

Wersja 1.6.7

1 maja 2024 r.

Publikacja androidx.compose.material:material-*:1.6.7 Wersja 1.6.7 zawiera te zmiany.

Wersja 1.6.6

17 kwietnia 2024 r.

Publikacja androidx.compose.material:material-*:1.6.6 Brak zmian od ostatniej wersji.

Wersja 1.6.5

3 kwietnia 2024 r.

Publikacja androidx.compose.material:material-*:1.6.5 Wersja 1.6.5 zawiera te zmiany.

Wersja 1.6.4

20 marca 2024 r.

Publikacja androidx.compose.material:material-*:1.6.4 Wersja 1.6.4 zawiera te zmiany.

Wersja 1.6.3

6 marca 2024 roku

Publikacja androidx.compose.material:material-*:1.6.3 Wersja 1.6.3 zawiera te zmiany.

Poprawki błędów

  • Napraw regresję w ExposedDropdownMenu, aby można było ponownie zaznaczyć ten element. (c0e0ed, b/323694447)

Wersja 1.6.2

21 lutego 2024 r.

Publikacja androidx.compose.material:material-*:1.6.2 Wersja 1.6.2 zawiera te zatwierdzenia.

Wersja 1.6.1

7 lutego 2024 r.

Publikacja androidx.compose.material:material-*:1.6.1 Wersja 1.6.1 zawiera te zatwierdzenia.

Wersja 1.6.0

24 stycznia 2024 r.

Publikacja androidx.compose.material:material-*:1.6.0 Wersja 1.6.0 zawiera te zatwierdzenia.

Wersja 1.6.0-rc01

10 stycznia 2024 r.

Publikacja androidx.compose.material:material-*:1.6.0-rc01 Wersja 1.6.0-rc01 zawiera te zatwierdzenia.

Wersja 1.6.0-beta03

13 grudnia 2023 r.

Publikacja androidx.compose.material:material-*:1.6.0-beta03 Wersja 1.6.0-beta03 zawiera te zatwierdzenia.

Wersja 1.6.0-beta02

29 listopada 2023 r.

Publikacja androidx.compose.material:material-*:1.6.0-beta02 Wersja 1.6.0-beta02 zawiera te zatwierdzenia.

Wersja 1.6.0-beta01

15 listopada 2023 r.

Publikacja androidx.compose.material:material-*:1.6.0-beta01 Wersja 1.6.0-beta01 zawiera te zatwierdzenia.

Wersja 1.6.0-alpha08

18 października 2023 r.

Publikacja androidx.compose.material:material-*:1.6.0-alpha08 Wersja 1.6.0-alpha08 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wycofaj funkcję materialIcon na rzecz jej przeciążenia, które przyjmuje parametr autoMirror. (Ia338d)

Poprawki błędów - Automatyczne zwiększanie wysokości elementu nawigacyjnego w przypadku dużych treści. (0c4ecc, b/272336962)

Wersja 1.6.0-alpha07

4 października 2023 roku

Publikacja androidx.compose.material:material-*:1.6.0-alpha07 Wersja 1.6.0-alpha07 zawiera te zatwierdzenia.

  • Aktualizacje zależności

Wersja 1.6.0-alpha06

20 września 2023 r.

Publikacja androidx.compose.material:material-*:1.6.0-alpha06 Wersja 1.6.0-alpha06 zawiera te zatwierdzenia.

Zmiana powodująca niezgodność w działaniu

  • Usunięto z BottomSheetScaffold funkcję związaną z szufladą. Aby uzyskać poprzednią funkcjonalność, umieść BottomSheetScaffold w kompozycji Drawer. Przykład znajdziesz w sekcji BottomSheetScaffoldWithDrawerSample. (I1dcc8)

Zmiany w interfejsie API

  • Wprowadzono tymczasową flagę, która określa, czy komponent Scaffold ma mierzyć swoje elementy podrzędne podczas pomiaru czy podczas umieszczania. Domyślnie będzie to pomiar. Jeśli masz problemy z nowym działaniem, zgłoś je. (If6e3b)

Wersja 1.6.0-alpha05

6 września 2023 r.

Publikacja androidx.compose.material:material-*:1.6.0-alpha05 Wersja 1.6.0-alpha05 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodano obsługę automatycznego odbijania ikon w przypadku układów od prawej do lewej. Ikony w modułach material-icons-core i material-icons-extended udostępniają teraz dodatkowe zestawy ikon, które obsługują automatyczne odbijanie lustrzane, jeśli ikona na to pozwala. Nowe zestawy mają prefiks Icons.AutoMirrored.Filled... itp. i zawierają ikony, które będą automatycznie odzwierciedlane w układach od prawej do lewej. Listę ikon, które mogą (i powinny) być automatycznie odzwierciedlane, znajdziesz na tej stronie.

Zmiany w interfejsie API

  • Dodano obsługę automatycznego odbijania ikon w przypadku układów od prawej do lewej. Ikony w modułach material-icons-core i material-icons-extended udostępniają teraz dodatkowe zestawy ikon, które obsługują automatyczne odbijanie lustrzane, jeśli ikona na to pozwala. Nowe zestawy mają prefiks Icons.AutoMirrored.Filled... itp. i zawierają ikony, które będą automatycznie odzwierciedlane w układach od prawej do lewej. Listę ikon, które mogą (i powinny) być automatycznie odzwierciedlane, znajdziesz na tej stronie. Właściwości ikon podane wcześniej dla tych ikon są teraz oznaczone jako wycofane i zawierają sugestię bloku zastępczego, która ułatwia migrację. Jeśli nie masz specjalnych rozwiązań do obsługi ikon w przypadku języków pisanych od prawej do lewej, zalecamy przejście na nowy zestaw ikon. Na przykład Icons.Filled.ArrowBack należy przekształcić w Icons.AutoMirrored.Filled.ArrowBack. (I4b511)

Wersja 1.6.0-alpha04

23 sierpnia 2023 r.

Publikacja androidx.compose.material:material-*:1.6.0-alpha04 Wersja 1.6.0-alpha04 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązaliśmy problem, który polegał na tym, że niektóre komponenty używające Subcomposition (np. BottomSheetScaffold) w komponencie Scaffold w komponencie LookaheadScope próbowały odczytać swój rozmiar zbyt wcześnie. (If2c5d)
  • Poprawiliśmy obliczenia DropdownMenuoffset, tak aby przesunięcia w osi X zależały wyłącznie od lokalnego kierunku układu, a przesunięcia w osi Y nie były już odwracane, gdy menu znajduje się u dołu ekranu. (Iccc74, b/294103942)
  • Zoptymalizowano wewnętrzną strukturę elementu BottomSheetScaffold i naprawiono potencjalny problem z elementem BottomSheetScaffold w elemencie LookaheadLayout. (Ic0afa)

Wersja 1.6.0-alpha03

9 sierpnia 2023 r.

Publikacja androidx.compose.material:material-*:1.6.0-alpha03 Wersja 1.6.0-alpha03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Komponenty Material2 mają teraz osobny interfejs API do przekazywania windowInsets, aby obsługiwać funkcję od krawędzi do krawędzi na Androidzie. W przeciwieństwie do komponentów material3 komponenty material2 nie obsługują domyślnie wcięć, dlatego wartość należy przekazywać ręcznie. Wskazówki znajdziesz w odpowiednich przykładach. (I655e8)

Wersja 1.6.0-alpha02

26 lipca 2023 r.

Publikacja androidx.compose.material:material-*:1.6.0-alpha02 Wersja 1.6.0-alpha02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Przenosimy zależność od gęstości na poziom komponentu. Dotyczy to tych komponentów: SwipeToDismiss i komponentów opartych na arkuszu. Użyj nowego przeciążenia, w którym gęstość jest parametrem. (I1846e)
  • Dodatkowe adnotacje do określania dozwolonych danych wejściowych funkcji kompozycyjnych (I51109)
  • Zaktualizowano pliki interfejsu API, aby oznaczać pomijanie zgodności (I8e87a, b/287516207)
  • Dodano nowe wyrównanie do początku dla elementu FabPosition (Ib7aea, b/170592777)
  • TextFieldColorsWithIcons w Material 2 zostało wycofane na rzecz TextFieldColors. Jeśli zastępujesz leadingIconColor lub trailingIconColor, zastąp też przeciążenie za pomocą interactionSource. (Id57ed, b/199377790)

Wersja 1.6.0-alpha01

21 czerwca 2023 r.

Publikacja androidx.compose.material:material-*:1.6.0-alpha01 Wersja 1.6.0-alpha01 zawiera te zatwierdzenia.

Zmiany w zachowaniu

  • W typografii Material 2 domyślnie includeFontPadding jest teraz false. Domyślny styl wysokości wiersza został też zmieniony na Trim.None i Alignment.Center, a do TextStyle w Typography dodano wyraźne lineHeight (w sp). Jeśli chcesz dostosować te wartości, zapoznaj się z dokumentacją interfejsu API. Szczegółowe wyjaśnienie tych zmian znajdziesz w poście na blogu. (Icabc3, I3f801, I04c03)

Zmiany w interfejsie API

  • Interfejsy API Swipeable Material zostały wycofane. Skorzystaj z interfejsów API AnchoredDraggableFoundation, które są zoptymalizowane pod kątem prostych 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, która wskazuje postęp między bieżącym (ustalonym) punktem zakotwiczenia a najbliższym punktem zakotwiczenia w kierunku przesunięcia. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)

Wersja 1.5

Wersja 1.5.4

18 października 2023 r.

Publikacja androidx.compose.material:material-*:1.5.4 Wersja 1.5.4 zawiera te zatwierdzenia.

Wersja 1.5.3

4 października 2023 roku

Publikacja androidx.compose.material:material-*:1.5.3 Ta wersja nie zawiera żadnych zmian

Wersja 1.5.2

27 września 2023 r.

Publikacja androidx.compose.material:material-*:1.5.2 Wersja 1.5.2 zawiera te zatwierdzenia.

Wersja 1.5.1

6 września 2023 r.

androidx.compose.material:material-*:1.5.1 jest publikowany bez zmian. Wersja 1.5.1 zawiera te zatwierdzenia.

Wersja 1.5.0

9 sierpnia 2023 r.

Publikacja androidx.compose.material:material-*:1.5.0 Wersja 1.5.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.4.0

Zmiany w interfejsie API

  • Wprowadzono zmiany w interfejsach Swipeable1 API w BottomSheetScaffold. Parametr confirmStateChange w przypadku użytkownika BottomSheetState został zmieniony na confirmValueChange. progress jest teraz udostępniana jako wartość zmiennoprzecinkowa. animateTo i snapTo są wewnętrzne. Zamiast niej używaj zasad expand() i collapse(). Usunięto elementy direction i overflow. offset zastąpiono tekstem requireOffset(). I323b4
  • Oznacz funkcję snapTo w komponencie Drawer jako interfejs API w wersji nieeksperymentalnej. (Ib9c18, b/261425368)
  • Dodaliśmy parametr koloru ścieżki dla kołowych wskaźników postępu oraz parametr zakończenia linii dla kołowych i liniowych wskaźników postępu. (Ie668c, b/216325962, b/222964817)
  • Zmieniliśmy nazwę confirmStateChange w przypadku ModalBottomSheetState, ModalBottomSheetState.Saver i rememberModalBottomSheetState na confirmValueChange. (Ib48d1)
  • Dodaj Modifier.minimumInteractiveComponentSize. Można go użyć do zarezerwowania co najmniej 48 dp, aby odróżnić interakcje dotykowe, jeśli element jest mniejszy. (I33f58, b/258495559)
  • Wprowadzono zmiany w interfejsach API do przesuwania w ModalBottomSheetLayout. Funkcja animateTo w ModalBottomSheetState nie przyjmuje już parametru animationSpec, a udostępniany offset może mieć teraz wartość null. Użyj requireOffset, aby wymagać przesunięcia. (Ia2e79)
  • Dodawanie adnotacji @JvmDefaultWithCompatibility (I8f206)
  • Wprowadzono zmiany w interfejsach API obsługujących przesuwanie w ModalDrawer. DrawerState. animateTo zastąpiono metodami otwierania i zamykania, a przesunięcie jest teraz dopuszczalne jako wartość null. Użyj requireOffset, aby wymagać przesunięcia. (I3de9e)
  • Zaktualizowano panele i arkusze, aby prawidłowo opóźniać naciśnięcia w przypadku, gdy gesty mogą stać się zdarzeniami przewijania.
  • Dodano parametr minLines do komponentów tekstowych material i material3, TextField i OutlinedTextField, który umożliwia ustawienie minimalnej wysokości komponentu w liczbie wierszy (I4af1d).

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że pullRefresh nie wykorzystywał prędkości, co powodowało wyświetlanie przewijania poza zakres. Zmieniono też sygnaturę interfejsu API funkcji onRelease lambda w Modifier.pullRefresh, aby zwracała wartość zmiennoprzecinkową dla zużytej prędkości (I7db65, b/266874741).
  • BottomSheetState, ModalBottomSheetState i BottomDrawerState udostępniają teraz właściwość postępu, która wskazuje postęp między bieżącym (ustalonym) punktem zakotwiczenia a najbliższym punktem zakotwiczenia w kierunku przesunięcia. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
  • Naprawiono działanie AlertDialog odrzucania, aby pojawiało się pod działaniem potwierdzania, gdy działania były ułożone jeden nad drugim, aby zmieścić się w szerokości okna. Ta poprawka dostosowuje implementację do specyfikacji Material Design. (I029de, b/235454277)
  • Gdy parametr gesturesEnabled ma wartość false, BottomSheetScaffold nie będzie już uczestniczyć w przewijaniu zagnieżdżonym. (I634f3, b/215403277)
  • Naprawiliśmy błąd, który powodował awarię BottomSheetScaffold, gdy w przypadku slotów podano puste treści. (Ib24a5, b/235588730)
  • Poprawka dotycząca PullRefreshIndicator przechwytywania kliknięć i zdarzeń wskaźnika. (2494256, b/271777421)
  • Rozwiązaliśmy problem, który powodował awarię ModalBottomSheetLayout w przypadku zmiany orientacji w sytuacji skrajnej. Animacje układu (np. Modifier.animateContentSize) w treści arkusza działają teraz płynnie. (I2f981, b/266780234)

Wersja 1.5.0-rc01

26 lipca 2023 r.

Publikacja androidx.compose.material:material-*:1.5.0-rc01 Wersja 1.5.0-rc01 zawiera te zatwierdzenia.

Wersja 1.5.0-beta03

28 czerwca 2023 r.

Publikacja androidx.compose.material:material-*:1.5.0-beta03 Wersja 1.5.0-beta03 zawiera te zatwierdzenia.

Poprawki błędów

  • BottomSheetState, ModalBottomSheetState i BottomDrawerState udostępniają teraz właściwość postępu, która wskazuje postęp między bieżącym (ustalonym) punktem zakotwiczenia a najbliższym punktem zakotwiczenia w kierunku przesunięcia. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)

Wersja 1.5.0-beta02

7 czerwca 2023 r.

Publikacja androidx.compose.material:material-*:1.5.0-beta02 Wersja 1.5.0-beta02 zawiera te zatwierdzenia.

Wersja 1.5.0-beta01

24 maja 2023 r.

Publikacja androidx.compose.material:material-*:1.5.0-beta01 Wersja 1.5.0-beta01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Przesunięcia DrawerState i BottomDrawerState nie mogą już mieć wartości null. Zamiast tego zwracają wartość Float.NaN, aby wskazać brak przesunięcia. (Ie9855)
  • Dodaliśmy opcję przekazywania wartości ScrollState podczas tworzenia elementu DropdownMenu lub ExposedDropdownMenu w celu kontrolowania stanu przewijania w pionie wyświetlanych pozycji menu. (Idb009, b/185304441)
  • Dodaj obsługę włączania i wyłączania gestu ModalBottomSheetLayout, aby użytkownik mógł skonfigurować tę funkcję w przypadku bardziej zaawansowanego arkusza u dołu ekranu (I40af0).
  • Dodano parametr koloru do BasicText, aby umożliwić wydajne animowanie lub ustawianie koloru tekstu. (Iffd88, b/246961787)
  • Zmiana nazwy usługi Semantyka z isContainer na isTraversalGroup (I121f6)

Poprawki błędów

  • Naprawiono działanie AlertDialog odrzucania, aby pojawiało się pod działaniem potwierdzania, gdy działania były ułożone jeden nad drugim, aby zmieścić się w szerokości okna. Ta poprawka dostosowuje implementację do specyfikacji Material Design. (I029de, b/235454277)

Wersja 1.5.0-alpha04

10 maja 2023 r.

Publikacja androidx.compose.material:material-*:1.5.0-alpha04 Wersja 1.5.0-alpha04 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Przenosimy zależność od gęstości na poziom komponentu. Dotyczy to tych komponentów: BottomDrawer, ModalBottomSheetLayout, BottomSheetScaffold, Switch, ModalDrawer. Użyj nowego przeciążenia, w którym gęstość jest parametrem. (I8fbd8)

Wersja 1.5.0-alpha03

19 kwietnia 2023 r.

Publikacja androidx.compose.material:material-*:1.5.0-alpha03 Wersja 1.5.0-alpha03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Zaktualizuj wewnętrzne działanie BottomDrawer, aby korzystać z nowych interfejsów API SwipeableV2. Z tego powodu BottomDrawerState będzie teraz zawierać tylko interfejsy API zdefiniowane na poziomie klasy i nie będzie dziedziczyć metod ani właściwości z SwipeableState. Używamy kompozycji z wewnętrznym numerem SwipeableV2State. Przesunięcie jest teraz właściwością zmiennoprzecinkową, która może przyjmować wartość null. Bieżąca wartość i wartość docelowa przesunięcia są nadal dostępne za pomocą właściwości currentValue i targetValue. Poprzednie metody poziomu klasy, takie jak otwieranie/rozwijanie/zamykanie i właściwości, np. isOpen/isClosed, są nadal obsługiwane. (Iad40c, b/178529942, b/220676296)

Poprawki błędów

  • Zaktualizowano wewnętrzne elementy komponentu Przełącznik. Podczas przeciągania przełącznik będzie teraz wyświetlać podgląd najbliższego stanu (stanu docelowego). (Id90d4)
  • Animowane treści arkusza (np. Modifier.animateContentSize w treści arkusza) w BottomSheetScaffold zostały zoptymalizowane i działają teraz płynnie. (Ia913c, b/270518202, b/254446195)
  • BottomSheetScaffold nie będzie już uczestniczyć w zagnieżdżonym przewijaniu, gdy wartość parametru gesturesEnabled będzie ustawiona na false. (I634f3, b/215403277)

Wersja 1.5.0-alpha02

5 kwietnia 2023 r.

Publikacja androidx.compose.material:material-*:1.5.0-alpha02 Wersja 1.5.0-alpha02 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiliśmy błąd, który powodował awarię BottomSheetScaffold, gdy w przypadku slotów podano puste treści. (Ib24a5, b/235588730)
  • Poprawki dotyczące PullRefreshIndicator przechwytywania kliknięć i zdarzeń wskaźnika (2494256, b/271777421)

Wersja 1.5.0-alpha01

22 marca 2023 r.

Publikacja androidx.compose.material:material-*:1.5.0-alpha01 Wersja 1.5.0-alpha01 zawiera te zatwierdzenia.

Poprawki błędów

  • Dodaj przykład przepływu grupy elementów. Zaktualizuj poziomy odstęp między elementami podrzędnymi w przykładzie grupy elementów w jednym wierszu, aby był zgodny ze specyfikacją. (I3b155)
  • Rozwiązaliśmy problem, który powodował awarię ModalBottomSheetLayout w przypadku zmiany orientacji w sytuacji skrajnej. Animacje układu (np. Modifier.animateContentSize) w treści arkusza działają teraz płynnie. (I2f981, b/266780234)

Wersja 1.4

Wersja 1.4.3

3 maja 2023 r.

androidx.compose.material:material-*:1.4.3 jest publikowana bez zmian (zmienia się tylko numer wersji).

Wersja 1.4.2

19 kwietnia 2023 r.

Publikacja androidx.compose.material:material-*:1.4.2 Wersja 1.4.2 zawiera te zatwierdzenia.

Wersja 1.4.1

5 kwietnia 2023 r.

Publikacja androidx.compose.material:material-*:1.4.1 Wersja 1.4.1 zawiera te zatwierdzenia.

Wersja 1.4.0

22 marca 2023 r.

Publikacja androidx.compose.material:material-*:1.4.0 Wersja 1.4.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.3.0

Zmiany w interfejsie API

  • Dodaj Modifier.minimumInteractiveComponentSize. Można go użyć do zarezerwowania co najmniej 48 dp, aby odróżnić interakcje dotykowe, jeśli element jest mniejszy. (I33f58, b/258495559)
  • Wprowadzono zmiany w interfejsach API do przesuwania w ModalDrawer. DrawerStateanimateTo zostało zastąpione metodami open i close, a przesunięcie może teraz przyjmować wartość null. Użyj requireOffset, aby wymagać przesunięcia. (I3de9e)
  • Dodano parametr minLines do komponentów tekstowych material i material3, TextField i OutlinedTextField, który umożliwia ustawienie minimalnej wysokości komponentu w liczbie wierszy (I4af1d).
  • Dodano parametr minLines do parametrów BasicText i BasicTextField. Umożliwia ustawienie minimalnej wysokości tych komponentów w liczbie wierszy (I24294, b/122476634).

Wersja 1.4.0-rc01

8 marca 2023 r.

androidx.compose.material:material-*:1.4.0-rc01 jest publikowany bez zmian. Wersja 1.4.0-rc01 zawiera te zatwierdzenia.

Wersja 1.4.0-beta02

22 lutego 2023 roku

Publikacja androidx.compose.material:material-*:1.4.0-beta02 Wersja 1.4.0-beta02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wprowadzono zmiany w interfejsach API do przesuwania w BottomSheetScaffold. Parametr confirmStateChange w przypadku użytkownika BottomSheetState został zmieniony na confirmValueChange. progress jest teraz udostępniana jako wartość zmiennoprzecinkowa. animateTo i snapTo są wewnętrzne. Zamiast niej używaj zasad expand() i collapse(). Usunięto elementy direction i overflow. offset zastąpiono tekstem requireOffset(). (I323b4)

Poprawki błędów

  • Usunięto role semantyczne z obszarów klikalnych i możliwych do zaznaczenia oraz zaktualizowano komponenty, które ich używały, aby ustawiać role za pomocą modyfikatora semantics (Ibb4ba).
  • Drobna aktualizacja rozszerzonych ikon Material Design, która wprowadza zmiany w ikonach wypełnionych desktop_mac, directions i kitchen. (I65f5e)

Wersja 1.4.0-beta01

8 lutego 2023 r.

Publikacja androidx.compose.material:material-*:1.4.0-beta01 Wersja 1.4.0-beta01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Rozwiązaliśmy problem, który powodował, że pullRefresh nie wykorzystywał prędkości, co powodowało wyświetlanie przewijania poza zakres. Zmieniono też sygnaturę interfejsu API funkcji onRelease lambda w Modifier.pullRefresh, aby zwracała wartość zmiennoprzecinkową dla zużytej prędkości (I7db65, b/266874741).
  • Przywróć getter właściwości LocalMinimuTouchTargetEnforcement i oznacz go jako wycofany, a następnie przekieruj do LocalMinimumInteractiveComponentEnforcement. (I60dd5)

Wersja 1.4.0-alpha05

25 stycznia 2023 r.

Publikacja androidx.compose.material:material-*:1.4.0-alpha05 Wersja 1.4.0-alpha05 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował nieprawidłowe obliczanie stanu ModalBottomSheetLayout's HalfExpanded i wyświetlanie arkusza jako pływającego. (I8c615, b/265610459)
  • Naprawiliśmy błąd w ModalBottomSheetLayout, który w pewnych okolicznościach powodował awarię arkusza podczas przechodzenia ze stanu ukrytego do widocznego. (Ia9265, b/265444789)

Wersja 1.4.0-alpha04

11 stycznia 2023 r.

Publikacja androidx.compose.material:material-*:1.4.0-alpha04 Wersja 1.4.0-alpha04 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano właściwość semantyki IsContainer na platformach. Ta właściwość zostanie użyta w późniejszej zmianie, która określa kolejność przechodzenia na podstawie znaczenia semantycznego elementów, takich jak powierzchnie. (I63379)
  • Oznacz funkcję snapTo w komponencie Drawer jako interfejs API w wersji nieeksperymentalnej. (Ib9c18, b/261425368)
  • Dodaliśmy parametr koloru ścieżki dla kołowych wskaźników postępu oraz parametr zakończenia linii dla kołowych i liniowych wskaźników postępu. (Ie668c, b/216325962, b/222964817)
  • Zmieniliśmy nazwę confirmStateChange w przypadku ModalBottomSheetState, ModalBottomSheetState.Saver i rememberModalBottomSheetState na confirmValueChange. (Ib48d1)
  • Większa dopuszczalność wartości null zwracanego typu wycofanych i ukrytych funkcji (Ibf7b0)
  • Dodaj Modifier.minimumInteractiveComponentSize. Można go użyć do zarezerwowania co najmniej 48 dp, aby odróżnić interakcje dotykowe, jeśli element jest mniejszy. (I33f58, b/258495559)
  • Wprowadzono zmiany w interfejsach API do przesuwania w ModalBottomSheetLayout. Funkcja animateTo w ModalBottomSheetState nie przyjmuje już parametru animationSpec, a wartość offset jest teraz dopuszczalna. Użyj requireOffset, aby wymagać offset. (Ia2e79)

Poprawki błędów

  • Arkusz ModalBottomSheetLayout ma teraz maksymalną szerokość 640 dp. (I71a4f, b/234927577)
  • Rozwiązaliśmy problem polegający na tym, że rememberPullRefreshState nie aktualizował z czasem wartości refreshThreshold i refreshingOffset. (Ifed10, b/263159832)
  • Postęp wskaźników postępu jest teraz prawidłowo ograniczony do oczekiwanego zakresu. (I8a7eb, b/262262727)
  • Jeśli ModalBottomSheetState nie otrzymało jeszcze żadnych kotwic, zaktualizuje currentValue bez animacji, gdy zamiast zgłaszać wyjątek, wywoływane są snapTo lub animateTo. (I2c91b)
  • Naprawiono stan włączenia w implementacji Material 2 FilterChip. (Id326a, b/261329817)
  • Naprawiliśmy błąd, który powodował awarię ModalBottomSheetLayout, jeśli podczas obracania z trybu pionowego do poziomego był on HalfExpanded. Sprawdź, czy przekazujesz prawidłowy parametr initialValue, np. sprawdzając konfigurację. (Ie8df7, b/182882364)
  • Rozwiązaliśmy problem, który powodował awarię ModalBottomSheetLayout, jeśli zawartość arkusza była pusta. ModalBottomSheetLayout umożliwia teraz tworzenie pustych arkuszy. Jeśli arkusz jest pusty, będzie miał tylko stan Ukryty. (Ic2288, b/200980998, b/216693030)

Znany problem

  • Podczas aktualizacji z wersji 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 pierwotnie zgłoszono problem. Poprawka została przesłana i będzie dostępna w następnej aktualizacji Compose. Aby obejść ten problem, zaktualizuj biblioteki androidx.compose.material i androidx.compose.material3 do najnowszej wersji(1.1.0-alpha04) lub zmień wersję biblioteki androidx.compose.foundation na 1.4.0-alpha03.

Wersja 1.4.0-alpha03

7 grudnia 2022 roku

Publikacja androidx.compose.material:material-*:1.4.0-alpha03 Wersja 1.4.0-alpha03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodawanie adnotacji @JvmDefaultWithCompatibility (I8f206)
  • Wprowadzono zmiany w interfejsach API Swipeable w ModalDrawer. DrawerStateanimateTo zastąpiono metodami open i close, a przesunięcie może teraz przyjmować wartość null. Użyj requireOffset, aby wymagać przesunięcia. (I3de9e)
  • Dodano interfejs Modifier API do wysyłania zapytań o informacje o przewijaniu elementów nadrzędnych. (I2ba9d, b/203141462)
  • Używany w Clickable do prawidłowego opóźniania interakcji naciśnięcia, gdy gesty mogą stać się zdarzeniami przewijania.
  • Rozwiązaliśmy problem z nieprawidłowym opóźnianiem efektów falowania przez atrybut Clickables, gdy był używany w elemencie Scrollable ViewGroup.
  • Zaktualizowano panele i arkusze, aby prawidłowo opóźniać naciśnięcia w przypadku, gdy gesty mogą stać się zdarzeniami przewijania.

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że funkcja PullRefreshIndicator mogła się zawieszać po wywołaniu funkcji onRefresh, jeśli stan odświeżania nie został zmieniony na „true”. (Ie2416, b/248274004)

Aktualizacje zależności

  • Biblioteki Compose UI i Compose Material zależą teraz od biblioteki Lifecycle w wersji 2.5.1. (I05ab0, b/258038814)

Wersja 1.4.0-alpha02

9 listopada 2022 r.

Publikacja androidx.compose.material:material-*:1.4.0-alpha02 Wersja 1.4.0-alpha02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Atrybuty awaitFirstDown i waitForUpOrCancellation akceptują teraz PointerEventPass, co zapewnia większą elastyczność. (I7579a, b/212091796)
  • Dodano parametr minLines do komponentów tekstowych material i material3, TextField i OutlinedTextField, który umożliwia ustawienie minimalnej wysokości komponentu w liczbie wierszy (I4af1d).
  • Dodano parametr minLines do BasicTex i BasicTextField. Umożliwia ustawienie minimalnej wysokości tych komponentów w liczbie wierszy (I24294, b/122476634).

Wersja 1.4.0-alpha01

24 października 2022 r.

Publikacja androidx.compose.material:material-*:1.4.0-alpha01 Wersja 1.4.0-alpha01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodaliśmy nową metodę awaitEachGesture() dla detektorów gestów. Działa podobnie do forEachGesture(), ale pętla gestów działa w całości w ramach AwaitPointerEventScope, więc zdarzenia nie mogą zostać utracone między iteracjami.
  • Element forEachGesture() został wycofany na rzecz elementu awaitEachGesture(), ponieważ umożliwia on utratę zdarzeń między gestami. (Iffc3f, b/251260206)

Wersja 1.3

Wersja 1.3.1

9 listopada 2022 r.

Publikacja androidx.compose.material:material-*:1.3.1 Wersja 1.3.1 zawiera te zatwierdzenia.

Wersja 1.3.0

24 października 2022 r.

Publikacja androidx.compose.material:material-*:1.3.0 Wersja 1.3.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.2.0

Zmiana powodująca niezgodność w zachowaniu

  • Maksymalna obsługiwana wysokość w oknach i wyskakujących okienkach została zmniejszona do 8 dp.

Zmiany w interfejsie API

  • Dodanie komponentu „Przeciągnij, aby odświeżyć” do Compose (I29168).
  • Zmiana nazwy parametru z wartości na wartość w suwaku zakresu (I3b79a).

Wersja 1.3.0-rc01

5 października 2022 r.

Publikacja androidx.compose.material:material-*:1.3.0-rc01 Wersja 1.3.0-rc01 zawiera te zatwierdzenia.

Wersja 1.3.0-beta03

21 września 2022 r.

Publikacja androidx.compose.material:material-*:1.3.0-beta03 Wersja 1.3.0-beta03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodanie komponentu „Pociągnij, aby odświeżyć” do Compose (I29168)

Wersja 1.3.0-beta02

7 września 2022 roku

Publikacja androidx.compose.material:material-*:1.3.0-beta02 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.

Publikacja androidx.compose.material:material-*:1.3.0-beta01 Wersja 1.3.0-beta01 zawiera te zatwierdzenia.

Zmiana powodująca niezgodność w zachowaniu

Maksymalna obsługiwana wysokość w oknach i wyskakujących okienkach została zmniejszona do 8 dp.

Maksymalna obsługiwana wysokość dla okien dialogowych i wyskakujących w Compose została zmniejszona z 30 dp do 8 dp. Ta zmiana dotyczy zarówno niestandardowych okien dialogowych, jak i wyskakujących okien interfejsu. Ta zmiana została wprowadzona, aby wyeliminować błąd ułatwień dostępu w wersjach Androida starszych niż S i zapewnić, że usługi ułatwień dostępu w tych oknach będą mogły wchodzić w interakcję z zawartością okna lub wyskakującego okienka.

Ta zmiana będzie miała wpływ tylko na Ciebie, jeśli tworzysz niestandardowe okno lub wyskakujące okienko z ustawionym poziomem podniesienia powyżej 8 dp. Rozważ zmniejszenie wysokości okna lub wyskakującego okienka. Jeśli chcesz zrezygnować z tego nowego zachowania, rozważ utworzenie własnego okna lub wyskakującego okienka z ustawionym odpowiednim poziomem. Nie jest to zalecane, ponieważ może negatywnie wpłynąć na ułatwienia dostępu. Deweloper musi zadbać o to, aby dolna część okna lub wyskakującego okienka była interaktywna i czytelna dla usług ułatwień dostępu.

Wersja 1.3.0-alpha03

10 sierpnia 2022 r.

Publikacja androidx.compose.material:material-*:1.3.0-alpha03 Wersja 1.3.0-alpha03 zawiera te zatwierdzenia.

Wersja 1.3.0-alpha02

27 lipca 2022 roku

Publikacja androidx.compose.material:material-*:1.3.0-alpha02 Wersja 1.3.0-alpha02 zawiera te zatwierdzenia.

Wkład zewnętrzny

  • Rozwiąż problem AnimatedVisibility z FloatingActionButton w Scaffold (I3a0ae, b/224005027)

Wersja 1.3.0-alpha01

29 czerwca 2022 r.

Publikacja androidx.compose.material:material-*:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Zmiana nazwy parametru z wartości na wartość w RangeSlider (I3b79a)

Poprawki błędów

  • Zaktualizuj przykładową plakietkę, aby podać bardziej szczegółowy opis treści. (I10b9d)

Wersja 1.2

Wersja 1.2.1

10 sierpnia 2022 r.

Publikacja androidx.compose.material:material-*:1.2.1 Wersja 1.2.1 zawiera te zatwierdzenia.

Wersja 1.2.0

27 lipca 2022 roku

Publikacja androidx.compose.material:material-*:1.2.0 Wersja 1.2.0 zawiera te zatwierdzenia.

Wersja 1.2.0-rc03

29 czerwca 2022 r.

Publikacja androidx.compose.material:material-*:1.2.0-rc03 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.

Publikacja androidx.compose.material:material-*:1.2.0-rc02 Wersja 1.2.0-rc02 zawiera te zatwierdzenia.

Wersja 1.2.0-rc01

15 czerwca 2022 r.

Publikacja androidx.compose.material:material-*:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Interfejsy w bibliotekach Compose są teraz tworzone przy użyciu domyślnych metod interfejsu jdk8 (I5bcf1).

Poprawki błędów

  • Aktualizuje kartę z ikoną wiodącą, aby przypiąć plakietkę do etykiety zamiast do ikony. (I90993)

Wersja 1.2.0-beta03

1 czerwca 2022 r.

Publikacja androidx.compose.material:material-*:1.2.0-beta03 Wersja 1.2.0-beta03 zawiera te zatwierdzenia.

Poprawki błędów

  • Usunęliśmy błąd, który powodował, że element BottomSheetScaffold był rysowany na cieniu górnego paska aplikacji. BottomSheetScaffold uwzględnia teraz stan arkusza podczas umieszczania wyskakujących komunikatów: w stanie zwiniętym wyskakujące komunikaty są umieszczane nad arkuszem i przyciskiem FAB, a w stanie rozwiniętym są przytwierdzane do dołu arkusza. (Ia80b5, b/187771422)

Wersja 1.2.0-beta02

18 maja 2022 r.

Publikacja androidx.compose.material:material-*:1.2.0-beta02 Wersja 1.2.0-beta02 zawiera te zmiany.

Wersja 1.2.0-beta01

11 maja 2022 roku

Publikacja androidx.compose.material:material-*:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zatwierdzenia.

Nowe funkcje

  • To pierwsza wersja beta 1.2.

Zmiany w interfejsie API

  • Zmieniono nazwę funkcji kompozycyjnej TextFieldDefaults.BorderStroke, która rysuje obramowanie w OutlinedTextField, na TextFieldDefaults.BorderBox. (I5f295)

Wersja 1.2.0-alpha08

20 kwietnia 2022 r.

Publikacja androidx.compose.material:material-*:1.2.0-alpha08 Wersja 1.2.0-alpha08 zawiera te zmiany.

Zmiany w interfejsie API

  • Częściowe wykorzystanie (w dół LUB pozycja) zostało wycofane w PointerInputChange. Aby w pełni wykorzystać zmianę, możesz użyć consume(). Za pomocą isConsumed możesz sprawdzić, czy ktoś inny wcześniej wykorzystał zmianę.
  • PointerInputChange::copy() zawsze tworzy teraz płytką kopię. Oznacza to, że kopie PointerInputChange zostaną wykorzystane, gdy jedna z nich zostanie wykorzystana. Jeśli chcesz utworzyć niepowiązany element PointerInputChange, użyj konstruktora. (Ie6be4, b/225669674)

Wersja 1.2.0-alpha07

6 kwietnia 2022 roku

Publikacja androidx.compose.material:material-*:1.2.0-alpha07 Wersja 1.2.0-alpha07 zawiera te zmiany.

Wersja 1.2.0-alpha06

23 marca 2022 r.

Publikacja androidx.compose.material:material-*:1.2.0-alpha06 Wersja 1.2.0-alpha06 zawiera te zmiany.

Zmiany w interfejsie API

  • Aktualizacje interfejsu API klikalnych kart w celu dostosowania go do zmian w interfejsie Surface API (I56bcb)
  • Aktualizacje interfejsu Material 2 Surface API, które dodają dodatkowe przeciążone funkcje dla powierzchni, które można wybrać i włączyć. (Ifcca5)

Wersja 1.2.0-alpha05

9 marca 2022 r.

Publikacja androidx.compose.material:material-*:1.2.0-alpha05 Wersja 1.2.0-alpha05 zawiera te zmiany.

Zmiany w interfejsie API

  • Wartości LazyVerticalGrid i LazyHorizontalGrid są teraz stabilne. (I307c0)
  • 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ę polegającą na poleganiu wyłącznie na widoku w przypadku WindowInsetsControllerCompat i ponownie wymagane jest okno, które jest niezbędne do zarządzania niektórymi flagami okna. Wycofano ViewCompat.getWindowInsetsController na rzecz WindowCompat.getInsetsController, aby mieć pewność, że używane jest prawidłowe okno (np. jeśli widok znajduje się w oknie dialogowym). (I660ae, b/219572936)
  • Tekst:includeFontPadding jest teraz domyślnie wyłączony. Problemy z obcinaniem wynikające z includeFontPadding=false zostały rozwiązane i nie powinno już dochodzić do obcinania w przypadku wysokich skryptów. (I31c84, b/171394808)
  • Dodaliśmy nowy interfejs LazyVerticalGrid API do określania rozmiarów osi poprzecznej (I17723).

Wersja 1.2.0-alpha04

23 lutego 2022 r.

Publikacja androidx.compose.material:material-*:1.2.0-alpha04 Wersja 1.2.0-alpha04 zawiera te zmiany.

Zmiany w interfejsie API

  • Add support for filter chips (I39a6e, b/192585545)
  • Dodano TextFieldDecorationBox i OutlinedTextFieldDecorationBox. Używanie ich razem z BasicTextField pomoże Ci tworzyć niestandardowe pola tekstowe oparte na polach tekstowych Material Design, ale z większą liczbą opcji dostosowywania.
  • Umożliwiliśmy dostosowywanie poziomych i pionowych odstępów w polach tekstowych. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
  • Dodano adnotacje ComposableTarget, ComposableTargetMarker i ComposableOpenTarget, które umożliwiają zgłaszanie w czasie kompilowania sytuacji, w których funkcja typu „composable” jest wywoływana z kierowaniem na applier, do którego nie została zaprojektowana.

    W większości przypadków adnotacje te mogą być wywnioskowane przez wtyczkę kompilatora Compose, więc bezpośrednie używanie tych adnotacji powinno być rzadkie . Nie można wywnioskować przypadków tworzenia i używania niestandardowego aplikatora, abstrakcyjnych funkcji kompozycyjnych (takich jak metody interfejsu), pól lub zmiennych globalnych, które są kompozycyjnymi wyrażeniami lambda (zmienne lokalne i parametry są wywnioskowane), ani podczas używania ComposeNode lub powiązanych funkcji kompozycyjnych.

    W przypadku niestandardowych funkcji stosujących funkcje kompozycyjne, które wywołują ComposeNode lub ReusableComposeNode, należy dodać adnotację CompoableTarget do funkcji i wszystkich typów parametrów lambda kompozycyjnych. Zalecamy jednak utworzenie adnotacji oznaczonej symbolem ComposableTargetMarker, a następnie użycie jej zamiast symbolu ComposableTarget. Adnotacja kompozycyjna oznaczona symbolem ComposableTargetMarker jest równoważna adnotacji ComposbleTarget z pełną i jednoznaczną nazwą klasy atrybutu jako parametrem stosującym. Przykład użycia elementu ComposableTargetMarker znajdziesz w sekcji anroidx.compose.ui.UiComposable. (I38f11)

Wersja 1.2.0-alpha03

9 lutego 2022 r.

Publikacja androidx.compose.material:material-*:1.2.0-alpha03 Wersja 1.2.0-alpha03 zawiera te zmiany.

Poprawki błędów

Wersja 1.2.0-alpha02

26 stycznia 2022 r.

Publikacja androidx.compose.material:material-*:1.2.0-alpha02 Wersja 1.2.0-alpha02 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaliśmy NonRestartableComposable do metod, które są przeciążeniami istniejących metod bez złożonej logiki. Zmniejsza to liczbę sprawdzania przez kompilator zapamiętywania (równości) dla wszystkich parametrów, które są powtarzane w wywoływanej funkcji wewnętrznej. (I90490)
  • Dodanie obsługi elementu działania (I07100, b/192585545)

Wersja 1.2.0-alpha01

12 stycznia 2022 r.

Publikacja androidx.compose.material:material-*:1.2.0-alpha01 Wersja 1.2.0-alpha01 zawiera te zmiany.

Aktualizacje zależności

  • Teraz zależy od Kotlin 1.6.10.

Wkład zewnętrzny

  • ModalBottomSheetState ma teraz flagę isSkipHalfExpanded. Można ją ustawić w konstruktorze lub zaktualizować później, ustawiając właściwość ModalBottomSheetStateisSkipHalfExpanded na true. Aktualizacja wartości isSkipHalfExpanded powoduje rekompozycję arkusza. (I18b86, b/186669820)

Wersja 1.1

Wersja 1.1.1

23 lutego 2022 r.

Publikacja androidx.compose.material:material-*:1.1.1 Wersja 1.1.1 zawiera te zatwierdzenia.

Poprawki błędów

  • Poprawka NullPointerException w androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059, b/206677462)
  • Rozwiązaliśmy problem z awarią spowodowaną przez zawartość schowka podczas odczytu ze schowka na urządzeniu z Androidem. (I06020, b/197769306)
  • Poprawiono RTL w LazyVerticalGrid (aosp/1931080, b/207510535)

Wersja 1.1.0

9 lutego 2022 r.

Publikacja androidx.compose.material:material-*:1.1.0 Wersja 1.1.0 zawiera te zmiany.

Ważne zmiany od wersji 1.0.0

  • Stabilna obsługa efektu przewijania w Androidzie 12
  • Ulepszenia rozmiaru docelowego elementu dotykowego
  • Pamiętaj, że w przypadku Compose 1.0 komponenty Material rozszerzą swój obszar układu, aby spełnić wytyczne dotyczące ułatwień dostępu w interfejsie Material w zakresie rozmiaru obszaru klikalnego. 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 biblioteka Compose Material zachowuje się tak samo jak komponenty Material Design, co zapewnia spójne działanie w przypadku łączenia widoków i elementów Compose. Ta zmiana zapewnia też, że podczas tworzenia interfejsu za pomocą komponentów Compose Material spełnione zostaną minimalne wymagania dotyczące dostępności docelowych elementów dotykowych.
  • Stabilna obsługa kolumny nawigacji
  • Przekształcenie kilku eksperymentalnych interfejsów API w stabilne
  • Obsługa nowszych wersji języka Kotlin

Wersja 1.1.0-rc03

26 stycznia 2022 r.

Publikacja androidx.compose.material:material-*:1.1.0-rc03 Wersja 1.1.0-rc03 zawiera te zatwierdzenia.

Zmiany w działaniu

Pamiętaj, że w przypadku Compose 1.0 komponenty Material rozszerzają przestrzeń układu, aby spełniać wymagania dotyczące ułatwień dostępu w Material Design w zakresie rozmiaru obszaru klikalnego. 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 biblioteka Compose Material zachowuje się tak samo jak komponenty Material Design, co zapewnia spójne działanie w przypadku łączenia widoków i elementów Compose. Ta zmiana zapewnia też, że podczas tworzenia interfejsu za pomocą komponentów Compose Material spełnione zostaną minimalne wymagania dotyczące dostępności docelowych elementów dotykowych.

Poprawki błędów

  • Dodano lepsze informacje na potrzeby debugowania w [narzędziu] Layout Inspector podczas sprawdzania modyfikatorów minimalnego docelowego elementu dotykowego. (aosp/1955036)

Wersja 1.1.0-rc01

15 grudnia 2021 roku

Publikacja androidx.compose.material:material-*:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zmiany.

Poprawki błędów

Wersja 1.1.0-beta04

1 grudnia 2021 r.

Publikacja androidx.compose.material:material-*:1.1.0-beta04 Wersja 1.1.0-beta04 zawiera te zmiany.

Nowe funkcje

  • Zaktualizowano, aby była zgodna z Kotlinem w wersji 1.6.0

Wersja 1.1.0-beta03

17 listopada 2021 r.

Publikacja androidx.compose.material:material-*:1.1.0-beta03 Wersja 1.1.0-beta03 zawiera te zmiany.

Wersja 1.1.0-beta02

3 listopada 2021 r.

Publikacja androidx.compose.material:material-*:1.1.0-beta02 Wersja 1.1.0-beta02 zawiera te zmiany.

Poprawki błędów

  • Efekty falowania i inne wskaźniki będą teraz opóźniane tylko wtedy, gdy znajdują się w kontenerze Modifier.scrollable(), a nie zawsze w przypadku zdarzenia naciśnięcia. (Ibefe0, b/203141462)

Wersja 1.1.0-beta01

27 października 2021 r.

Publikacja androidx.compose.material:material-*:1.1.0-beta01 Wersja 1.1.0-beta01 zawiera te zmiany.

Nowe funkcje

  • Efekty falowania obsługują teraz stany najechania kursorem i zaznaczenia, więc najechanie kursorem lub zaznaczenie komponentu, takiego jak przycisk, spowoduje wyświetlenie prawidłowej nakładki stanu.

Wersja 1.1.0-alpha06

13 października 2021 r.

Publikacja androidx.compose.material:material-*:1.1.0-alpha06 Wersja 1.1.0-alpha06 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodano przeciążenie bez elementów podrzędnych dla układu z większą wydajnością (Ib0d9a).
  • Implementacja funkcji ExposedDropdownMenu na podstawie funkcji ExposedDropdownMenuBox z elementami TextField i DropdownMenu wewnątrz (If60b2)
  • dismissOnOutsideClick zostało dodane do PopupProperties, zastępując dismissOnClickOutside, które zostało wycofane. Nowa właściwość otrzymuje pozycję kliknięcia i granice elementu zakotwiczonego, co zapewnia większą kontrolę nad tym, czy należy wywołać funkcję onDismissRequest. Może to być przydatne na przykład w przypadku zapobiegania zamykaniu kotwicy po dotknięciu jej.
    • updateAndroidWindowManagerFlags dodano do PopupProperties, co zapewnia niskopoziomową kontrolę nad flagami przekazywanymi przez wyskakujące okienko do menedżera okien Androida. Parametrem funkcji lambda będą flagi obliczone na podstawie wartości PopupProperties, które powodują flagi WindowManager, np. focusable. Wynikiem funkcji lambda będą ostateczne flagi, które zostaną przekazane do menedżera okien Androida. Domyślnie funkcja updateAndroidWindowManagerFlags pozostawia flagi obliczone na podstawie parametrów bez zmian. Tego interfejsu API należy używać ostrożnie, tylko w przypadkach, gdy wyskakujące okienko ma bardzo specyficzne wymagania dotyczące działania. (I6e9f9)

Wersja 1.1.0-alpha05

29 września 2021 r.

Publikacja androidx.compose.material:material-*:1.1.0-alpha05 Wersja 1.1.0-alpha05 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaje minimalny rozmiar docelowego elementu dotykowego w przypadku komponentów Material, które nie mają dostępnego docelowego elementu dotykowego. Dodaje to dodatkowe odstępy wokół komponentów, aby zapewnić wystarczająco duży docelowy element dotykowy. Może to zmienić istniejące interfejsy, które zakładają, że rozmiar tych komponentów jest ich rozmiarem wizualnym i nie uwzględniają rozmiaru docelowego elementu dotykowego. Możesz użyć eksperymentalnego LocalMinimumTouchTargetEnforcement elementu kompozycyjnego, aby wyłączyć to zachowanie w całej hierarchii, ale jest to tylko tymczasowe rozwiązanie, które ma ułatwić aktualizowanie istniejących interfejsów, aby uwzględniały nowy rozmiar minimalny. (I9b966, b/149691127, b/171509422)
  • Dodaliśmy eksperymentalny interfejs TextFieldColorsWithIcons, który rozszerza TextFieldColors, aby udostępniać InteractionSource do leadingColor i trailingColor. Umożliwia to modyfikowanie wyglądu elementu TextField w zależności od stanu zaznaczenia. (I66923, b/198402662)

Wersja 1.1.0-alpha04

15 września 2021 r.

Publikacja androidx.compose.material:material-*:1.1.0-alpha04 Wersja 1.1.0-alpha04 zawiera te zmiany.

Zmiany w interfejsie API

  • Wycofano funkcje performGesture i GestureScope, które zostały zastąpione przez performTouchInput i TouchInjectionScope. (Ia5f3f, b/190493367)
  • Dodano touchBoundsInRoot do SemanticsNode, które zawiera minimalny rozmiar docelowego elementu dotykowego, aby deweloperzy mogli mieć pewność, że docelowe elementy dotykowe spełniają minimalne wymagania dotyczące dostępności. (I2e14b, b/197751214)

Poprawki błędów

  • Zezwalaj na rozszerzanie granic docelowego elementu dotykowego poza obszar przycinania na potrzeby minimalnego docelowego elementu dotykowego. (I43e10, b/171509422)
  • Zaktualizowano funkcję Divider, aby uwzględniała parametr Dp.Hairline grubości, co umożliwia rysowanie separatorów o szerokości 1 piksela niezależnie od gęstości wyświetlacza. (I16ffb, b/196840810)

Wersja 1.1.0-alpha03

1 września 2021 roku

Publikacja androidx.compose.material:material-*:1.1.0-alpha03 Wersja 1.1.0-alpha03 zawiera te zmiany.

Nowe funkcje

  • Zaktualizowano bibliotekę Compose 1.1.0-alpha03, aby była zależna od języka Kotlin 1.5.30. (I74545)

Zmiany w interfejsie API

  • Dodano metodę testową, aby uzyskać przycięte granice. (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-alpha02

18 sierpnia 2021 r.

Publikacja androidx.compose.material:material-*:1.1.0-alpha02 Wersja 1.1.0-alpha02 zawiera te zmiany.

Wkład zewnętrzny

  • Naprawiliśmy działanie elementu SwipeableState w sytuacji, gdy przesunięcie przesunięcia mieści się w granicach błędu zaokrąglenia kotwicy. (I03d39, b/191993377)

Wersja 1.1.0-alpha01

4 sierpnia 2021 r.

Publikacja androidx.compose.material:material-*:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • Zaktualizowana metoda DrawScope#drawImage, która wykorzystuje prostokąty źródłowe i docelowe, aby wykorzystywać opcjonalny parametr FilterQuality. Jest to przydatne w przypadku grafiki pikselowej, która ma być pikselowana po powiększeniu. Zaktualizowano funkcję BitmapPainter i kompozycję Image, aby korzystały też z opcjonalnego parametru FilterQuality (Ie4fb0, b/180311607)
  • Zmiana nazwy BadgeBox na BadgedBox, zmiana parametrów w celu akceptowania komponentu Badge. Dodano komponent Badge, który jest typową treścią plakietki w komponencie BadgedBox. (I639c6)
  • Dodano komponent NavigationRail. Informacje o sposobie użycia znajdziesz w dokumentacji i przykładach (I8de77).

Poprawki błędów

  • Dodaliśmy próbkę NavigationRail wyrównaną do dołu i aplikację katalogową demo. (I3cffc)
  • Okna dialogowe są teraz dopasowywane do rozmiaru platformy. Aby zastąpić to działanie, ustaw wartość usePlatformDefaultWidth na false. (Iffaed, b/192682388)
  • Dodano wersję demonstracyjną paska nawigacyjnego do aplikacji katalogu. (I04960)
  • Dodaliśmy do aplikacji katalogu wersję demonstracyjną plakietki. (If285d)

Wersja 1.0

Wersja 1.0.5

3 listopada 2021 r.

Publikacja androidx.compose.material:material-*:1.0.5 Wersja 1.0.5 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązaliśmy problem z awarią śledzenia instancji derivedStateOf. (aosp/1792247)

Wersja 1.0.4

13 października 2021 r.

Publikacja androidx.compose.material:material-*:1.0.4 Wersja 1.0.4 zawiera te zatwierdzenia.

Aktualizacje zależności

  • Zaktualizowano, aby zależał od wersji 1.5.31 języka Kotlin

Wersja 1.0.3

29 września 2021 r.

Publikacja androidx.compose.material:material-*:1.0.3 Wersja 1.0.3 zawiera te zatwierdzenia.

Aktualizacje zależności

  • Zaktualizowano, aby zależał od wersji 1.5.30 języka Kotlin

Wersja 1.0.2

1 września 2021 roku

Publikacja androidx.compose.material:material-*:1.0.2 Wersja 1.0.2 zawiera te zatwierdzenia.

Zaktualizowano, aby obsługiwać wersję 1.0.2 Compose. Compose 1.0.2 jest nadal zgodny z Kotlinem 1.5.21.

Wersja 1.0.1

4 sierpnia 2021 r.

Publikacja androidx.compose.material:material-*:1.0.1 Wersja 1.0.1 zawiera te zatwierdzenia.

Aktualizacje zależności

  • Zaktualizowano zależność od Kotlina 1.5.21.

Wersja 1.0.0

28 lipca 2021 roku

Publikacja androidx.compose.material:material-*:1.0.0 Wersja 1.0.0 zawiera te zatwierdzenia.

Główne funkcje wersji 1.0.0

To pierwsza stabilna wersja Compose. Więcej informacji znajdziesz na oficjalnym blogu Compose Release.

Znane problemy

  • Jeśli używasz Androida Studio Bumblebee Canary 4 lub wtyczki Androida do obsługi Gradle w wersji 7.1.0-alpha04/7.1.0-alpha05, może wystąpić ten błąd:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    Aby rozwiązać ten problem, tymczasowo zwiększ wartość parametru minSdkVersion do 24 lub wyższej w pliku build.gradle. Ten problem zostanie rozwiązany w kolejnej wersji Androida Studio Bumblebee i wtyczki Androida do obsługi Gradle 7.1. (b/194289155)

Wersja 1.0.0-rc02

14 lipca 2021 roku

Publikacja androidx.compose.material:material-*:1.0.0-rc02 Wersja 1.0.0-rc02 zawiera te zatwierdzenia.

Poprawki błędów

  • Okna dialogowe są teraz dopasowywane do rozmiaru platformy. Aby zastąpić to działanie, ustaw wartość usePlatformDefaultWidth na „false”. (Iffaed, b/192682388)

Wersja 1.0.0-rc01

1 lipca 2021 r.

Publikacja androidx.compose.material:material-*:1.0.0-rc01 Wersja 1.0.0-rc01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano komponent BadgeBox. Informacje o używaniu znajdziesz w dokumentacji i przykładach (I5e284).
  • 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 zachować zgodność ze specyfikacjami Material Design, w przypadku komponentu OutlinedTextField z nieprawidłowymi danymi wejściowymi przestaliśmy używać koloru błędu dla etykiety, gdy jest ona używana jako tekst zastępczy. Druga sytuacja ma miejsce, gdy w polu tekstowym nie ma tekstu wejściowego i nie jest ono zaznaczone. Wraz z tą zmianą zmieniło się też znaczenie parametru error:Boolean w funkcji TextFieldColors.labelColor(): będzie ona teraz zwracać wartość false nawet wtedy, gdy dane wejściowe są nieprawidłowe, jeśli etykieta jest używana jako symbol zastępczy. (I45f78)

Wersja 1.0.0-beta09

16 czerwca 2021 r.

Publikacja androidx.compose.material:material-*:1.0.0-beta09 Wersja 1.0.0-beta09 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano parametr Shape do komponentu OutlinedTextField, aby umożliwić dostosowywanie kształtu obramowania (I8f39e, b/181322957).
  • TextOverflow jest zmieniany na klasę wbudowaną. (I433af)

Poprawki błędów

  • Scrim w komponentach BottomDrawer, BackdropScaffold i ModalBottomSheetLayout zniknie, gdy zostanie przekazany Color.Unspecified (I2d899, b/182063309)

Dodane reguły profilu

Ta wersja dodaje reguły profilu do tych modułów kompozycji (I14ed6):

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

Czym są reguły profilu?

  • Reguły profilu dla biblioteki są określone w pliku tekstowym baseline-prof.txt znajdującym się w katalogu src/main lub w odpowiednim katalogu. Plik zawiera regułę w każdym wierszu. W tym przypadku reguła jest wzorcem dopasowywanym do metod lub klas w bibliotece. Składnia tych reguł jest nadzbiorem formatu profilu ART czytelnego dla człowieka, który jest używany podczas korzystania z adb shell profman --dump-classes-and-methods .... Te reguły przyjmują jedną z 2 form, aby kierować reklamy na metody lub klasy.

  • Reguła metody będzie mieć ten wzorzec:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Reguła klasy będzie miała następujący wzorzec:

    <CLASS_DESCRIPTOR>
    
  • W tym przypadku <FLAGS> to co najmniej jeden z tych znaków: H, S i P. Wskazuje on, czy ta metoda powinna być oznaczona jako „Hot”, „Startup” lub „Post Startup”.

  • Symbol <CLASS_DESCRIPTOR> to deskryptor klasy, do której należy docelowa metoda. Na przykład klasa androidx.compose.runtime.SlotTable będzie miała deskryptor Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> to sygnatura metody, która zawiera jej nazwę, typy parametrów i typy zwracanych wartości. Na przykład metoda fun isPlaced(): Boolean w LayoutNode ma sygnaturę isPlaced()Z.

  • Wzorce mogą zawierać symbole wieloznaczne (**, * i ?), dzięki czemu jedna reguła może obejmować wiele metod lub klas.

Do czego służą reguły?

  • Metoda z flagą H oznacza, że jest to „gorąca” metoda, która powinna zostać skompilowana z wyprzedzeniem.

  • Metoda oznaczona flagą S jest wywoływana podczas uruchamiania i powinna być skompilowana z wyprzedzeniem, aby uniknąć kosztów kompilacji i interpretacji w momencie uruchamiania.

  • Metoda oznaczona flagą P jest wywoływana po uruchomieniu.

  • Klasa obecna w tym pliku wskazuje, że jest używana podczas uruchamiania i powinna być wstępnie przydzielona w stercie, aby uniknąć kosztów ładowania klasy.

Jak to działa?

  • Biblioteki mogą definiować te reguły, które będą pakowane w artefakty AAR. Gdy zostanie utworzony plik APK zawierający te artefakty, reguły zostaną połączone, a połączone reguły zostaną użyte do utworzenia kompaktowego binarnego profilu ART, który jest specyficzny dla pliku APK. ART może następnie wykorzystać ten profil podczas instalowania pliku APK na urządzeniach, aby skompilować z wyprzedzeniem określony podzbiór aplikacji i zwiększyć jej wydajność, zwłaszcza podczas pierwszego uruchomienia. Pamiętaj, że nie będzie to miało wpływu na aplikacje, które można debugować.

Wersja 1.0.0-beta08

2 czerwca 2021 r.

Publikacja androidx.compose.material:material-*:1.0.0-beta08 Wersja 1.0.0-beta08 zawiera te zatwierdzenia.

Nowe funkcje

Zmiana w interfejsie API powodująca zmianę działania

  • ZMIANA ZACHOWANIA: komponent Card teraz przechwytuje kliknięcia, co sprawia, że kliknięcia dodane za pomocą Card(Modifier.clickable) nie mają żadnego efektu. Użyj nowej eksperymentalnej wersji komponentu Card, która akceptuje onClick. (Ia8744, b/183775620)
    • Dodano nowe przeciążenie funkcji Card, które obsługuje kliknięcia oraz inne funkcje klikalne: wskazanie, źródło interakcji, włączanie i wyłączanie. Nie można było użyć zwykłej karty, której nie można kliknąć, z Modifier.clickable, ponieważ w takich przypadkach karta nie przycina efektu fali.
  • ZMIANA WPŁYWAJĄCA NA DZIAŁANIE: komponent Surface wykorzystuje teraz kliknięcia, co sprawia, że kliknięcia dodawane za pomocą Surface(Modifier.clickable) nie mają żadnego efektu. Używaj nowej eksperymentalnej wersji komponentu Surface, która akceptuje onClick. (I73e6c, b/183775620)
    • Dodano nowe przeciążenie Surface, które obsługuje kliknięcia i inne funkcje klikania: wskazanie, źródło interakcji, włączone/wyłączone. Nie można było użyć zwykłej, nieklikanej powierzchni z elementem Modifier.clickable, ponieważ w takich przypadkach nie będzie ona przycinać efektu fali.

Zmiany w interfejsie API

  • FabPosition został przekształcony w klasę wbudowaną z wyliczenia, aby umożliwić potencjalne rozszerzenie w przyszłości (I030fb).
  • Zmieniliśmy sposób używania wyliczeń, aby uniknąć problemów z wyczerpującymi instrukcjami „when” po dodaniu nowych wartości wyliczenia. (I2b5eb)
  • Dodaje limit czasu kliknięcia do elementów klikalnych lub przełączalnych, aby zapobiec wyświetlaniu efektu fali podczas przewijania lub przeciągania (Ia2704, b/168524931).
  • Właściwości semantyczne ContentDescription i Text nie są już pojedynczymi wartościami, ale listami. Dzięki temu można je łączyć w całość, a nie tylko łączyć ze sobą. Udostępniliśmy też lepsze interfejsy API do testowania, które umożliwiają korzystanie z tych zmian (Ica6bf, b/184825850).
  • Środowisko wykonawcze Modifier.focusModifier() zostało wycofane i zastąpione środowiskiem Modifier.focusTarget() (I6c860)
  • Zastąpiono wyliczenie FocusState interfejsem FocusState (Iccc1a, b/187055290).
  • Usunięto LocalRippleNativeRendering, ponieważ implementacja efektu fali opartego na widoku jest stabilna (I7fab3, b/188569367).

Poprawki błędów

  • Modifier.onGloballyPositioned() zmieniono tak, aby raportował współrzędne tego modyfikatora w łańcuchu modyfikatorów, a nie współrzędne układu po zastosowaniu wszystkich modyfikatorów. Oznacza to, że kolejność modyfikatorów wpływa teraz na raportowane współrzędne. (Ieb67d, b/177926591)
  • Dodaliśmy plik README do istniejącego katalogu komponentów Material w Compose. (If9191)

Wersja 1.0.0-beta07

18 maja 2021 r.

Publikacja androidx.compose.material:material-*:1.0.0-beta07 Wersja 1.0.0-beta07 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Nie musisz już używać metod rozszerzających do obsługi tras w Navigation Compose. (I22beb, b/172823546)

Wersja 1.0.0-beta06

5 maja 2021 roku

Publikacja androidx.compose.material:material-*:1.0.0-beta06 Wersja 1.0.0-beta06 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Ripple został przeniesiony do wewnętrznego korzystania z RippleDrawable na urządzeniach z Androidem. Oznacza to, że animacje falowe będą wykonywane w wątku renderowania, a więc będą płynne nawet wtedy, gdy wątek UI będzie obciążony, np. podczas przechodzenia między ekranami. Nie zmienia to interfejsu API efektu fali, ale w wyniku tej zmiany mogą wystąpić zmiany w jego działaniu. Aby ułatwić migrację, dodano LocalRippleNativeRendering – podaj wartość false w tym elemencie CompositionLocal, aby wrócić do poprzedniej implementacji efektu fali w elemencie CompositionLocalProvider. Ten interfejs API jest tymczasowy i zostanie w przyszłości usunięty, więc jeśli napotkasz problemy, które spowodują, że będziesz musiał go użyć, 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 jej elementów dla usług ułatwień dostępu (Id54ef, b/180479017).
  • Dodano interfejs API ułatwień dostępuerror, który umożliwia oznaczanie węzła zawierającego nieprawidłowe dane wejściowe (I12997, b/180584804, b/182142737).

Poprawki błędów

  • Zaktualizowana implementacja wstawek katalogu Compose Material z: https://github.com/google/accompanist/pull/365. (I25dc3)
  • Elementy podrzędne w wierszu i kolumnie z atrybutem weight(fill = false) nie powodują już wypełnienia przez element nadrzędny całej dostępnej przestrzeni osi głównej. (Ied94d, b/186012444, b/184355105)

Wersja 1.0.0-beta05

21 kwietnia 2021 r.

Publikacja androidx.compose.material:material-*:1.0.0-beta05 Wersja 1.0.0-beta05 zawiera te zatwierdzenia.

Poprawki błędów

  • Dodaliśmy do istniejącego katalogu Compose Material 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.

Publikacja androidx.compose.material:material-*:1.0.0-beta04 Wersja 1.0.0-beta04 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • ZMIANA API: DrawerState nie rozszerza już eksperymentalnego stanu SwipeableState.
    • ZMIANA INTERFEJSU API: interfejs BottomDrawerState został oznaczony jako eksperymentalny, aby pasował do eksperymentalnego komponentu BottomDrawer (I81114, b/181656094)
  • Zmień nazwy hideSoftwareKeyboard i showSoftwareKeyboard SoftwareKeyboardController na hide() i show() odpowiednio.
    • Udostępnia pełny interfejs CompositionLocal dla LocalSoftwareKeyboardController, co umożliwia jego ustawienie (szczególnie przydatne w testach) (I579a6).
  • Dodano interfejs API ułatwień dostępu LiveRegion. Jeśli węzeł jest oznaczony jako aktywny region, usługi ułatwień dostępu automatycznie powiadomią użytkownika o jego zmianach (Idcf6f, b/172590946).

Poprawki błędów

  • Dodano implementację katalogu Compose Material do istniejącego modułu. Obecnie brakuje: obrazów kafelków komponentów, selektora motywów (zostanie dodany w kolejnych zmianach). (Ie7a94)

Wersja 1.0.0-beta03

24 marca 2021 r.

Publikacja androidx.compose.material:material-*:1.0.0-beta03 Wersja 1.0.0-beta03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Interfejs DefaultMonotonicFrameClock został wycofany. Wywołanie funkcji withFrameNanos lub Recomposer.runRecomposeAndApplyChanges bez MonotonicFrameClock spowoduje teraz zgłoszenie błędu IllegalStateException. (I4eb0d)
  • Dodaliśmy nowy interfejs API LeadingIconTab, który umożliwia wyświetlanie ikony i tekstu w karcie. (I23267)

Wkład zewnętrzny

  • [by Jossi Wolf] BottomDrawer otacza teraz zawartość gniazda szuflady. BottomDrawer nie zgłasza błędu IllegalStateException, gdy element nadrzędny ma nieskończoną wysokość. Jeśli dolne okienko jest mniejsze niż 50% okienka nadrzędnego, otworzy się w stanie rozwiniętym. Dokumenty dotyczące BottomDrawerState i ModalBottomSheetLayoutState zostały zaktualizowane. BottomDrawerState#isOpen zwraca teraz wartość „prawda”, jeśli jest w stanie otwartym lub rozwiniętym. (I87241)

Wersja 1.0.0-beta02

10 marca 2021 r.

Publikacja androidx.compose.material:material-*:1.0.0-beta02 Wersja 1.0.0-beta02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano nowy LocalSoftwareKeyboardController komponent lokalny API, który zastępuje poprzedni SoftwareKeyboardController interfejs w TextField. (I5951e, b/168778053)

Poprawki błędów

  • Wymuszanie ograniczeń dotyczących publicznego korzystania z eksperymentalnych interfejsów API (I6aa29, b/174531520)
  • Zmieniono domyślne wyrównanie w poziomie komponentów TopAppBar i BottomAppBar na Start, zgodnie z komponentem Row (Ib2dc7).
  • Dodano nowy moduł i interfejs zastępczy dla katalogu Compose Material, który jest obecnie zagnieżdżony w istniejących wersjach demonstracyjnych testów integracyjnych. (Idfcb3)
  • androidx.compose.ui:ui nie zależy już od AppCompat ani Fragment. Jeśli w aplikacji używasz ComposeView oraz Fragment lub AppCompat, upewnij się, że używasz AppCompat w wersji 1.3 lub nowszej albo Fragment w wersji 1.3 lub nowszej. Te wersje są potrzebne do prawidłowego ustawienia właścicieli cyklu życia i zapisanego stanu wymaganych przez ComposeView. (I1d6fa, b/161814404)

Wersja 1.0.0-beta01

24 lutego 2021 r.

Publikacja androidx.compose.material:material-*:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zatwierdzenia.

To pierwsza wersja Compose 1.0.0 Beta.

Zmiany w interfejsie API

  • Zmieniono nazwy modyfikatorów rozmiaru. Modyfikatory Modifier.width/height/size zostały zmienione na requiredWidth/requiredHeight/requiredSize. Zmienne Modifier.preferredWidth/preferredHeight/preferredSize zostały zmienione na width/height/size. (I5b414)
  • imageResource i vectorResource są teraz funkcjami rozszerzającymi odpowiednio obiekty ImageBitmap i ImageVector. Funkcje load{Image,Vector,Font}Resource zostały usunięte. (I89130)
  • Modyfikatory rozmiaru do wartości wewnętrznych nie są już eksperymentalne. (I15744)
  • Usunięto asercje dp (I798d2)
  • Usunięto wywołanie zwrotne SoftwareKeyboardController ze wszystkich pól tekstowych, które wkrótce zostaną zastąpione nowym interfejsem API. (Iae869, b/168778053)
  • Funkcje lambda działań Switch, Checkbox i RadioButton mogą teraz zwracać wartość null. Przykłady pól wyboru w wierszu z możliwością kliknięcia zostały zaktualizowane, aby korzystać z tej funkcji. (If601b, b/171819073)
  • InteractionState zostało zastąpione przez [Mutable]InteractionSource
    • Interfejsy odpowiadają za wysyłanie i zbieranie zdarzeń interakcji.
    • Zamiast przekazywać interactionState = remember { InteractionState() } do komponentów takich jak Button i Modifier.clickable(), używaj interactionSource = remember { MutableInteractionSource() }.
    • Zamiast: Interaction.Pressed in interactionState używaj funkcji rozszerzających w przypadku InteractionSource, np. InteractionSource.collectIsPressedAsState().
    • W przypadku złożonych przypadków użycia możesz użyć InteractionSource.interactions, aby obserwować strumień interakcji. Więcej informacji znajdziesz w dokumentacji i przykładach dotyczących InteractionSource.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • Dodanie interfejsu AccessibilityMananger i LocalAccessibilityMananger do CompositionLocals (I53520)
  • Usunięto przestarzałe metody LayoutCoordinates. Zamiast właściwości positionInParent i boundsInParent używaj funkcji (I580ed, b/169874631, b/175142755)
  • Suwak obsługuje teraz stan włączony/wyłączony (I6d56b, b/179793072)
  • Utworzono nową klasę TextInputSession dla sesji wprowadzania danych z komponentów tekstowych niskiego poziomu, takich jak CoreTextField. (I8817f, b/177662148)
  • Usunięto AnimationEndReason.Interrupted. Jeśli animacja zostanie przerwana, zostanie zgłoszony wyjątek CancellationException. (I2cbbc, b/179695417)
  • Usunięto @ExperimentalRippleApi i zmieniono RippleAlpha na klasę z właściwościami zamiast interfejsu. (I6df7c)
  • Dodano interfejs TextFieldColors, który reprezentuje różne kolory używane w elementach TextField i OutlinedTextField w różnych stanach. W przypadku domyślnej implementacji zobacz TextFieldDefaults.textFieldColors i TextFieldDefaults.outlinedTextFieldColors.
  • Dodanie modyfikatora selectionGroup, który umożliwia oznaczanie kolekcji kart lub przycisków opcji na potrzeby ułatwień dostępu (Ie5c29)
  • Dodaj LazyListState.animateScrollToItem

    Ta metoda umożliwia płynne przewijanie do określonego elementu na liście. (I4bfd7)

  • ScrollableState.smoothScrollBy() zmieniono na animateScrollBy() LazyListState.snapToItemIndex() zmieniono na scrollToItem() ScrollState.smoothScrollTo() zmieniono na animateScrollTo() (I35ded)

  • Wszystkie funkcje kompozycyjne oznaczone symbolem @ReadOnlyComposable są teraz weryfikowane w czasie kompilacji, aby mieć pewność, że wywołują tylko inne funkcje kompozycyjne oznaczone symbolem @ReadOnlyComposable (I58961).@ReadOnlyComposables

  • Usunięto interfejs TargetAnimation API. (If47d1, b/177457083)

  • Pozycja przewijania w funkcjach Modifier.verticalScroll()/horizontalScroll() jest teraz reprezentowana przez liczby całkowite (I81298).

  • Pakiety metod smoothScrollBy i scrollBy zostały zmienione na androidx.compose.foundation.gestures.* (I3f7c1, b/175294473)

  • Klasa FlingConfig została zmieniona na FlingBehavior i umożliwia teraz dostosowywanie animacji zawieszenia zamiast predefiniowanych zanikań. (I02b86, b/175294473)

  • Zmieniono nazwy modyfikatorów rozmiaru. Modyfikatory Modifier.width/height/size zostały zmienione na requiredWidth/requiredHeight/requiredSize. Zmienne Modifier.preferredWidth/preferredHeight/preferredSize zostały zmienione na width/height/size. (I5b414)

  • Zmieniliśmy nazwę defaultMinSizeConstraints na defaultMinSize. (I4eaae)

  • Orientacja została przeniesiona do pakietu podstawowego. Interfejs VelocirtTracker został przeniesiony z ui.gesture do ui.input.pointer. (Iff4a8, b/175294473)

  • Funkcje drawerState.open() i drawerState.close() są teraz funkcjami zawieszającymi. Aby je wywołać, użyj funkcji rememberCoroutineScope() do pobrania zakresu kompozycji (I16f60, b/175294473).

  • Nazwa Providers została zmieniona na CompositionLocalProvider

    • Konstruktor Composition nie akceptuje już parametru key i został wycofany.
    • currentCompositeKeyHash został przekształcony w właściwość najwyższego poziomu typu „composable”, a nie w funkcję najwyższego poziomu typu „composable”.
    • Klasy CompositionData i CompositionGroup zostały przeniesione do przestrzeni nazw androidx.compose.runtime.tooling.
    • Funkcja ComposableLambda stała się interfejsem zamiast klasy konkretnej i nie ma już parametrów typu.
    • ComposableLambdaN stał się interfejsem zamiast klasy konkretnej i nie ma już parametrów typu.
    • Funkcja snapshotFlow została przeniesiona do przestrzeni nazw androidx.compose.runtime
    • metoda scalania SnapshotMutationPolicy nie jest już eksperymentalna;
    • Usunięto funkcję @TestOnly najwyższego poziomu clearRoots. Nie jest już potrzebne.
    • Funkcje keySourceInfoOf i resetSourceInfo zostały usunięte. Nie są już potrzebne.
    • Funkcja Composer.collectKeySourceInformation została usunięta. Nie jest już potrzebne.
    • Usunęliśmy metody isJoinedKey, joinedKeyLeft i joinedKeyRight. Nie są już potrzebne.
    • Różne interfejsy API najwyższego poziomu zostały przeniesione i zreorganizowane w różnych plikach. Ze względu na semantykę klasy plików w Kotlinie spowoduje to utratę zgodności binarnej, ale nie źródłowej, więc nie powinno stanowić problemu dla większości użytkowników.
    • (I99b7d, b/177245490)
  • Zmodyfikowano element Modifier.scrollable. Teraz używa interfejsu Scrollable zamiast klasy ScrollableController (I4f5a5, b/174485541, b/175294473).

  • Modyfikator draggable akceptuje teraz DraggableState zamiast prostej lambdy.Stan możesz utworzyć za pomocą rememberDraggableState { delta -> }, aby uzyskać takie samo działanie jak wcześniej (Ica70f, b/175294473).

  • Funkcje ZoomableController.smoothScaleBy i ZoomableController.stopAnimation są teraz funkcjami zawieszania. (I7f970, b/177457083)

  • Usunięto niektóre wcześniej wycofane interfejsy API (Ice5da, b/178633932)

  • Wprowadziliśmy te zmiany w interfejsie Material API:

    • Dodano parametr contentPadding do komponentów TopAppBar i BottomAppBar, aby umożliwić dostosowywanie domyślnego dopełnienia.
    • Zmieniono kolejność parametrów w komponencie BackdropScaffold, aby była zgodna z wytycznymi interfejsu API, zgodnie z którymi parametry wymagane powinny występować przed parametrami opcjonalnymi.
    • Parametr icon w elemencie BottomNavigationItem został przeniesiony i jest teraz po parametrach selected i onClick.
    • Zmieniono nazwę parametru alwaysShowLabels w elemencie BottomNavigationItem na alwaysShowLabel.
    • Zmieniliśmy nazwy parametrów bodyContent w kilku komponentach na content.
    • Zmieniono kolejność parametrów w ButtonDefaults.buttonColors(). Pamiętaj, że typ parametrów nie uległ zmianie, więc nie spowoduje to błędu w kodzie. Upewnij się, że używasz parametrów nazwanych lub ręcznie zaktualizuj kolejność, w przeciwnym razie kod nie będzie działać tak jak wcześniej.
    • Dodano parametr secondaryVariant do elementu darkColors(). Ten kolor jest zwykle taki sam jak secondary w ciemnym motywie, ale dodajemy go, aby zapewnić spójność i umożliwić dalsze dostosowywanie.
    • Usunięto ElevationDefaults i animateElevation() z publicznego interfejsu API, ponieważ nie były one powszechnie używane ani przydatne.
    • Zmieniono nazwę onValueChangeEnd w Slider na onValueChangeFinished i ustawiono ją jako dopuszczającą wartość null.
    • Zmieniono nazwę parametru text w Snackbar na content, aby zachować spójność.
    • Dodano parametr contentPadding do DropdownMenuItem, aby umożliwić dostosowywanie domyślnego dopełnienia, a content stał się rozszerzeniem RowScope.
    • Zmieniono nazwę ModalDrawerLayout na ModalDrawer.
    • Zmieniono nazwę BottomDrawerLayout na BottomDrawer.
    • (I1cc66)
  • Komponent BasicTextField akceptuje teraz obiekt Brush zamiast Color, co zapewnia lepsze możliwości dostosowywania (I83a36).

  • imageResource i vectorResource są teraz funkcjami rozszerzającymi odpowiednio obiekty ImageBitmap i ImageVector. Funkcje load{Image,Vector,Font}Resource zostały usunięte. (I89130)

  • Zmieniono funkcję Indication#createIndication() na Indication#rememberUpdatedIndication(InteractionState) i usunięto parametr InteractionState z funkcji IndicationInstance#drawIndication(). IndicationInstance powinna odpowiadać tylko za rysowanie efektów wizualnych, a nie za uruchamianie animacji ani zapisywanie stanu w odpowiedzi na zmiany InteractionState. Animacje i zapisy stanu powinny odbywać się w ramach rememberUpdatedIndication(). Parametr indication w pliku Modifier.indication został też zmieniony na wymagany. (Ic1764, b/152525426)

Poprawki błędów

  • Dodano nowy lokalny interfejs API LocalSoftwareKeyboardController do zastąpienia poprzedniego interfejsu SoftwareKeyboardController w polu TextField. (I658b6, b/168778053)

Wersja 1.0.0-alpha12

10 lutego 2021 r.

Publikacja androidx.compose.material:material-*:1.0.0-alpha12 Wersja 1.0.0-alpha12 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Modifier.pointerInput wymaga teraz kluczy pamięci, aby wskazywać, kiedy współprogram wykrywania danych wejściowych wskaźnika powinien zostać ponownie uruchomiony w przypadku nowych zależności. (I849cd)
  • Elementy BottomDrawerLayout i ListItem zostały oznaczone jako @ExperimentalMaterialApi (Id766e).
  • Dodano PaddingValues.Absolute, którego można używać w interfejsach API akceptujących PaddingValues. (Ia5f30)
  • Metoda onImeActionPerformed jest wycofana. Zamiast niej używaj KeyboardActions (If0bbd, b/179071523)
  • Aby lepiej dopasować konwencje nazewnictwa do ImageBitmap i ImageVector, zmieniliśmy nazwę ImagePainter na BitmapPainter, aby była podobna do VectorPainter. (Iba381, b/174565889)
  • Funkcje Animatable.snapTo i Animatable.stop są teraz funkcjami zawieszania (If4288).
  • Funkcja ComponentActivity.setContent została przeniesiona do pakietu androidx.activity.compose.setContent w module androidx.activity:activity-compose. (Icf416)
  • Metody destrukcji i copy() zostały usunięte z kilku klas, w których były rzadko używane. (I26702, b/178659281)
  • Ustawienie funkcji halfExpand() i expand() w ModalBottomSheetState jako wewnętrznych (Ic914e)
  • Zmieniono funkcję Indication#createInstance na @Composable i zmieniono LocalIndication tak, aby zawierała Indication, a nie () -> Indication. (I5eeea, b/157150564)
  • Przeniesiono AlertDialog i DropdownMenu, aby na razie były dostępne tylko na Androidzie. Dodano parametr PopupProperties do komponentu DropdownMenu, aby umożliwić dalszą konfigurację bazowego komponentu Popup. (I9c443)
  • Metoda loadFontResource została wycofana. Zamiast niej użyj fontResource. imageResource, loadImageResource, vectorResource i loadVectorResource są wycofane. Zamiast tego użyj painterResource. (I6b809)
  • Usunięto parametry toggle i toggleModifier z funkcji DropdownMenu oraz zmieniono nazwy parametrów dropdownModifier, dropdownOffset i dropdownContent na odpowiednio modifier, offset i content. Komponent DropdownMenu działa teraz tak samo jak Popup, czyli do określania pozycji menu używany jest layout nadrzędny. W większości przypadków możesz przenieść element toggle, aby był na tym samym poziomie co element DropdownMenu, i oba umieścić w elemencie Box. Więcej informacji o korzystaniu z tego interfejsu API znajdziesz w zaktualizowanym przykładzie w dokumentacji. (I884fb)
  • Funkcja toIntPx() została zmieniona na roundToPx(). (I9b7e4, b/173502290)
  • Zmieniliśmy nazwę IntBounds na IntRect i ulepszyliśmy interfejs API. (I1f6ff)
  • Dodano działania semantyczne rozwijania i zwijania. Dodano funkcje expand i halfExpand w ModalBottomSheetState (Ib5064)
  • Funkcja Modifier.dragGestureFilter została wycofana. Użyj w zamian zasady Modifier.pointerInput { detectDragGestures (...)}. Możesz też użyć modyfikatora Modifier.draggable do przeciągania w jednej osi (I0ba93, b/175294473).
  • Zmieniono nazwy elementów Ambients, aby pasowały do zmiany nazwy Ambient -> CompositionLocal. Wcześniej zmienne środowiskowe miały nazwy AmbientFoo, a teraz zmienne CompositionLocals mają nazwy LocalFoo. (I2d55d)
  • Zaznaczenie zostało przeniesione do fundamentu. (I7892b)
  • Podobnie jak wcześniej usunęliśmy funkcję state { 0 } i teraz promujemy używanie funkcji remember { mutableStateOf(0) }, usuniemy funkcję savedInstanceState { 0 }. Zamiast tego używaj rememberSaveable { mutableStateOf(0) }, które automatycznie zapisuje i przywraca stan, jeśli typ użyty w MutableState można przechowywać w obiekcie Bundle. Jeśli wcześniej przekazywano niestandardowy obiekt zapisujący, teraz należy użyć nowego przeciążenia funkcji rememberSaveable, które ma parametr stateSaver. Użycie będzie wyglądać tak: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • Dodano ProgressBarRangeInfo.Indeterminate, aby oznaczać nieokreślone paski postępu na potrzeby ułatwień dostępu (I6fe05)
  • Adnotacja @ComposableContract została wycofana na rzecz 3 bardziej szczegółowych adnotacji.

    • @ComposableContract(restartable = false) zmieniło się w @NonRestartableComposable
    • @ComposableContract(readonly = true) zmieniło się w @ReadOnlyComposable
    • @ComposableContract(preventCapture = true) zmieniło się w @DisallowComposableCalls
    • Usunięto @ComposableContract(tracked = true).
    • (I60a9d)
  • Narzędzia emptyContent() i (@Composable () -> Unit).orEmpty() zostały wycofane, ponieważ nie mają już pozytywnego wpływu na skuteczność ani wartość (I0484d).

  • Funkcja rememberSavedInstanceState() została zmieniona na rememberSaveable() i przeniesiona do pakietu androidx.compose.runtime.saveable. (I1366e, b/177338004)

  • Funkcje Saver, listSaver(), mapSaver() i autoSaver zostały przeniesione z pakietu androidx.compose.runtime.savedinstancestate do pakietu androidx.compose.runtime.saveable (I77fe6).

  • Parametry w klasach RounderCornerShape, CutCornerShape i CornerBasedShape zostały zmienione z left/right na start/end, aby umożliwić automatyczne odzwierciedlanie kształtu w kierunku od prawej do lewej. Kształty AbsoluteRounderCornerShape i AbsoluteCutCornerShape zostały wprowadzone w przypadkach, gdy automatyczne dublowanie nie jest pożądane. (I61040, b/152756983)

  • Zmieniliśmy parametry text i icon komponentu Tab oraz parametr label komponentu BottomNavigationItem, aby można było przypisać im wartość null. Dzięki temu lepiej odzwierciedlają zachowanie komponentu, gdy te parametry są lub nie są podane, ponieważ wpływa to na rozmiar i układ komponentu. Jeśli obecnie przekazujesz wartość emptyContent(), aby oznaczyć brak tekstu, ikony lub etykiety, użyj zamiast niej wartości null. (I57ed4)

  • Zmiana nazwy parametru koloru contentColorFor na backgroundColor (I5bb67)

  • Wycofano TabDefaults i zastąpiono go TabRowDefaults. (I0f189)

  • Wprowadzono interfejs ColorMatrix API, który służy do modyfikowania wartości RGB treści źródłowych. Zrefaktoryzowano interfejs ColorFilter API, aby był interfejsem i pasował do implementacji PathEffect. (Ica1e8)

  • Klasa AnimatedValue/Float została wycofana. Zamiast niej użyj interfejsu Animatable. (I71345, b/177457083)

  • Dodaj interfejs SemanticsProperties.PaneTitle API. (I20d5a)

  • Dodaliśmy włączone parametry do elementów Tab i BottomNavigationItem, aby uniemożliwić ich klikanie. Zmieniliśmy BottomNavigationItem na RowScope.BottomNavigationItem, aby lepiej odzwierciedlać wymagania dotyczące układu w interfejsie API. (Id683d)

  • Filtry tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter i pressIndicaitonGestureFilter zostały wycofane. Zamiast tego użyj funkcji Modifier.clickable lub Modifier.pointerInput z funkcją detectTapGestures. (I6baf9, b/175294473)

  • Dodaj parametr layoutDirection do funkcji createOutline w klasie Shape. Umożliwia to tworzenie kształtów uwzględniających kierunek układu. (I57c20, b/152756983)

  • Kontakt Recomposer.current() został usunięty. [Abstract]ComposeView now default to lazily created, window-scoped Recomposers driven by the ViewTreeLifecycleOwner for the window. Rekompozycja i tyki animacji oparte na withFrameNanos są wstrzymywane, gdy cykl życia hosta jest zatrzymany. (I38e11)

Poprawki błędów

  • Ikona będzie teraz skalowana w górę, aby dopasować się do swojego rozmiaru, z uwzględnieniem zastosowanych do niej modyfikatorów rozmiaru. Na przykład Icon(.., modifier = Modifier.size(50.dp) będzie teraz rysowany w przestrzeni o wymiarach 50 x 50 dp. (Ib2ba9, b/178796190)

Wersja 1.0.0-alpha11

28 stycznia 2021 roku

Publikacja androidx.compose.material:material-*:1.0.0-alpha11 Wersja 1.0.0-alpha11 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Promuje niektóre interfejsy API Material, aby nie były już @Experimental (I5d20e).
  • Do obrazu i ikony dodano parametr opisu treści. Służy do przekazywania opisu usługom ułatwień dostępu (I2ac4c).
  • Zmienia interfejsy parametrów stanowych Material na funkcje @Composable, które zwracają State<T>. Dodaje Animatable.asState(), aby ułatwić przekształcenie obiektu Animatable w stan. Zmienia też animateElevation na rozszerzenie zawieszające w przypadku Animatable. (If613c)
  • Snackbar, SnackbarHost i SnackbarHostState nie są już @ExperimentalMaterialAPI (Id1fb5)
  • Zmiany w typografii, kształtach i pozycji kart, które nie są już klasami danych. Dodaje funkcję kopiowania typografii i kształtów, aby zastąpić wygenerowane elementy. (I40037)
  • Usunięto niektóre wcześniej wycofane interfejsy API Material (Ifaa25)

Poprawki błędów

  • Funkcje onCommit, onDispose i onActive zostały wycofane na rzecz interfejsów SideEffect i DisposableEffect API (If760e).
  • Przejście oparte na TransitionDefinition zostało wycofane (I0ac57)
  • Stan początkowy w funkcji updateTransition jest teraz obsługiwany (Ifd51d)
  • Funkcja WithConstraints została przekształcona w BoxWithConstraints i przeniesiona do foundation.layout. (I9420b, b/173387208)
  • Wycofanie funkcji scrollBy bez zawieszania, usunięcie funkcji scrollTo bez zawieszania

    Zalecamy teraz używanie funkcji zawieszających do kontrolowania przewijania i oczekiwania na jego zakończenie. W ramach tej zmiany wycofujemy lub usuwamy wersje tych funkcji, które nie powodują zawieszenia. (Ie9ced)

  • Wycofanie funkcji smoothScrollBy, która nie jest funkcją zawieszającą Zalecamy teraz używanie funkcji zawieszających do sterowania przewijaniem i oczekiwania na zakończenie przewijania. W ramach tej zmiany wycofujemy wersje tych funkcji, które nie są zawieszane. (I12880)

  • Wprowadzono ComposeContentTestRule, która rozszerza ComposeTestRule i definiuje setContent, która została usunięta z ComposeTestRule. Dodano metodę fabryczną createEmptyComposeRule(), która zwraca obiekt ComposeTestRule i nie uruchamia aktywności. Użyj tej opcji, gdy chcesz uruchomić aktywność podczas testu, np.za pomocą ActivityScenario.launch (I9d782, b/174472899).

  • Efekt fali używany w komponentach Button i FloatingActionButton nie może być już dostosowywany przez podanie nowego wskaźnika za pomocą AmbientIndication – nigdy nie miało to być sposobem na dostosowywanie tych komponentów, a teraz są one zgodne z innymi komponentami Material. Aby dostosować efekty falowania w aplikacji, zapoznaj się z informacjami o motywie RippleTheme. (I546c5)

  • Funkcja animateAsState została zmieniona na animateFooAsState, gdzie Foo to typ animowanej zmiennej, np. Float, Dp, Offset itp. (Ie7e25)

  • Komponent BasicTextField otrzymał nowy parametr o nazwie decorationBox. Umożliwia dodawanie do pola tekstowego elementów dekoracyjnych, takich jak ikony, symbole zastępcze czy etykiety, oraz zwiększanie obszaru docelowego kliknięcia. (I16996)

  • Poprawka błędu, który uniemożliwiał ustawienie szerokości pola tekstowego materiału na mniej niż 280 pikseli dp (I78373).

  • Usunięto parametr canDrag z funkcji Modifier.draggable (Ic4bec, b/175294473)

  • Usuń displaySize, ponieważ należy go unikać. Zwykle lepiej jest używać co najmniej rozmiaru onRoot() lub rozmiaru okna. (I62db4)

  • Komponent Surface może teraz mieć wiele elementów podrzędnych układu. (I66a92, b/144488459)

  • Funkcje invalidate i compositionReference() zostały wycofane na rzecz funkcji currentRecomposeScope i rememberCompositionReference. (I583a8)

  • Zmiana PopupPositionProvider na używanie współrzędnych względnych okna, a nie współrzędnych globalnych. Zmienia nazwę parentGlobalBounds na anchorBounds, a windowGlobalBounds na windowSize: IntSize (I2994a).

  • Wartości Duration i Uptime zostaną zastąpione wartościami Long w milisekundach, a ten krok usuwa zależność danych wejściowych wskaźnika od tych klas. (Ia33b2, b/175142755, b/177420019)

  • Usunięto funkcję AnimatedFloat.fling, która akceptuje FlingConfig. Zamiast niej użyj metody suspend Animatable.animateDecay. (I4659b, b/177457083)

  • klikane, przełączane i wybieralne elementy można teraz tworzyć poza kompozycją (I0a130, b/172938345, b/175294473).

  • Wygładzanie zostało zmienione na interfejs funkcyjny (Ib14e5).

  • Komponenty ScrollableColumn i ScrollableRow zostały wycofane. Używanie komponentu ScrollableColumn jest mniej wydajne niż LazyColumn w przypadku długich treści, które można przewijać, ponieważ w przypadku komponentu LazyColumn możemy tylko komponować, mierzyć i rysować widoczne elementy. Aby zapobiec nieefektywnemu korzystaniu z tych funkcji, postanowiliśmy wycofać ScrollableColumn i ScrollableRow oraz promować zamiast nich LazyColumn i LazyRow. Użytkownicy mogą nadal decydować, że nie potrzebują leniwego zachowania, i używać modyfikatorów bezpośrednio w ten sposób: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083).

  • Nowa metoda fabryczna items(count: Int) dla zakresu LazyColumn/LazyRow/LazyVerticalGrid. Funkcje items(items: List) i itemsIndexed(items: List) są teraz funkcjami rozszerzającymi, więc musisz je ręcznie importować, gdy ich używasz. Nowe przeciążenia rozszerzeń dla tablic: items(items: Array) i itemsIndexed(Array) (I803fc, b/175562574)

  • Usunięto eksperymentalne metody monotonicFrameAnimationClockOf (Ib753f, b/170708374)

  • Wycofano metody globalnych współrzędnych i wprowadzono nowe metody współrzędnych oparte na oknach. (Iee284)

  • Dodano Modifier.toolingGraphicsLayer, który dodaje modyfikator warstwy graficznej, gdy włączone jest sprawdzanie. (I315df)

  • Metoda FocusRequester.createRefs jest teraz oznaczona jako eksperymentalna, ponieważ może ulec zmianie. (I2d898, b/177000821)

  • Właściwość SemanticsPropertyReceiver.hidden została zmieniona na invisibleToUser i oznaczona adnotacją @ExperimentalComposeUiApi. Zmiana nazwy AccessibilityRangeInfo na ProgressBarRangeInfo. stateDescriptionRange na progressBarRangeInfo. Zmieniono nazwę AccessibilityScrollState na ScrollAxisRange. Zmieniono nazwę horizontalAccessibilityScrollState na horizontalScrollAxisRange. Zmieniono nazwę verticalAccessibilityScrollState na verticalScrollAxisRange. (Id3148)

  • Używanie TestCoroutineDispatcher w testach (I532b6)

  • Zaktualizowano interfejs API grafiki wektorowej, aby obsługiwał analizowanie odcieni zastosowanych do głównego elementu grafiki wektorowej. (Id9d53, b/177210509)

Wersja 1.0.0-alpha10

13 stycznia 2021 r.

Publikacja androidx.compose.material:material-*:1.0.0-alpha10 Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Zmodyfikowano Velocity, aby zawierał składowe i operacje matematyczne. (Ib0447)
  • Zmieniono nazwę @ExperimentalTesting na @ExperimentalTestApi, aby zachować spójność z podobnymi adnotacjami interfejsu API w wersji eksperymentalnej (Ia4502, b/171464963)
  • Zmiana nazwy pozycji na DpOffset i usunięcie funkcji getDistance() (Ib2dfd)
  • Zmieniono nazwę funkcji Color.useOrElse() na Color.takeOrElse() (Ifdcf5)
  • Dodaj przełącznik do pliku Strings.kt (I4a5b7, b/172366489)
  • Elementy FlowRow i FlowColumn zostały wycofane. Zamiast niego użyj układu niestandardowego. (I09027)
  • Metody Modifier.focus() i Modifier.focusRequester() zostały wycofane. Zamiast tego użyj Modifier.focusModifier() i Modifier.focusReference(). (I75a48, b/175160751, b/175160532, b/175077829)
  • Przeniesiono klasę nativeClass do modułu ui i ustawiono ją jako wewnętrzną. Zaktualizowano użycie nativeClass w implementacjach equals, aby zamiast niego używać „is MyClass”. (I4f734)

Poprawki błędów

  • Dodano obsługę wyłączonych i tylko do odczytu pól tekstowych (I35279, b/171040474, b/166478534)
  • animate() zastąpiono funkcją animateAsState(), która zwraca wartość State<T> zamiast T. Umożliwia to lepszą wydajność, ponieważ zakres unieważnienia można zawęzić do miejsca, w którym odczytywana jest wartość State. (Ib179e)
  • Dodaj interfejs API roli Semantics i dodaj rolę jako parametr do klikalnego, wybieralnego i przełączalnego elementu SemanticsModifier. Zmiana Modifier.progressSemantics, aby można było go używać również w przypadku suwaka. (I216cd)

Wersja 1.0.0-alpha09

16 grudnia 2020 roku

Publikacja androidx.compose.material:material-*:1.0.0-alpha09 Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • dodano interfejs API do ręcznego wywoływania animacji rozliczenia i przeciągania w funkcji Modifier.swipeable (Iaa17a, b/162408885);
  • Zmieniono nazwy obiektów *Constants, np. ButtonConstants, tak aby kończyły się słowem Defaults, np. ButtonDefaults. Usuwa też niepotrzebne prefiksy default z właściwości w tych nowych obiektach. (Ibb915, b/159982740)
  • Compose obsługuje funkcje pobierające właściwości, które mogą wywoływać funkcje kompozycyjne. Obsługa tej funkcji nie zostanie wycofana, ale zmieni się składnia deklarowania funkcji pobierającej właściwość jako @Composable.

    Obecnie przestarzała składnia polegała na dodaniu adnotacji do samej usługi:

        @Composable val someProperty: Int get() = ...
    

    Prawidłowa składnia w tym przypadku to dodanie adnotacji do funkcji pobierającej właściwość:

       val someProperty: Int @Composable get() = ...
    

    Obie składnie będą działać przez pewien czas, ale starsza, wycofana składnia ostatecznie spowoduje błąd kompilacji. (Id9197)

  • Dodano androidx.compose.material:material-ripple bibliotekę zawierającą interfejsy API efektu falowania, aby umożliwić tworzenie interaktywnych komponentów bez konieczności korzystania z pozostałej części biblioteki Material. Funkcja rememberRippleIndication została wycofana i zastąpiona funkcją rememberRipple. (Ibdf11)

Poprawki błędów

  • Funkcje lambda w modyfikatorach przesunięcia zwracają teraz wartość IntOffset zamiast Float. (Ic9ee5, b/174137212, b/174146755)
  • Zmodyfikowano klasę ShaderBrush, aby leniwie tworzyć instancję shadera, gdy dostępne są informacje o rozmiarze środowiska rysowania. Jest to przydatne do definiowania gradientów, które w momencie kompozycji zajmują pełne granice rysowania komponentu, bez konieczności implementowania niestandardowych implementacji DrawModifier.

    Wycofano interfejsy API konstruktora funkcji gradientu na rzecz metod fabrykujących w obiekcie Gradient. (I511fc, b/173066799)

  • Modyfikator Modifier.focusObserver został wycofany. Zamiast tego użyj Modifier.onFocusChanged lub Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)

  • Wycofanie funkcji LazyColumnFor, LazyRowFor, LazyColumnForIndexed i LazyRowForIndexed. Zamiast tego używaj elementów LazyColumn i LazyRow (I5b48c)

  • Przeniesiono klasy Dp.VectorConverter, Position.VectorConverter itp. do pakietu animation-core i wycofano stare klasy VectorConveters (If0c4b).

  • Interfejs Autofill API jest teraz interfejsem eksperymentalnym i wymaga zgody użytkownika (I0a1ec).

  • Dodawanie deklaracji destrukcyjnych do tworzenia instancji FocusRequester (I35d84, b/174817008)

  • accessibilityLabel zmieniło nazwę na contentDescription. accessibilityValue zmieniło nazwę na stateDescription. (I250f2)

  • Nowa funkcja infiniteRepeatable do tworzenia elementu InfiniteRepeatableSpec (I668e5)

  • Zmieniliśmy nieco sposób pozycjonowania menu rozwijanych zgodnie ze specyfikacją Material. (I34c72, b/168594123)

  • Dodaliśmy obsługę stanu interakcji w przypadku pól tekstowych. (I61d91)

  • Dodano Modifier.clearAndSetSemantics, aby wyczyścić semantykę elementów podrzędnych i ustawić nową. (I277ca)

  • Przeniesiono ContentDrawScope do modułu ui-graphics, aby był razem z DrawScope. (Iee043, b/173832789)

Wersja 1.0.0-alpha08

2 grudnia 2020 r.

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 są udostępnione. Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Motyw MaterialTheme ustawia teraz prawidłowe kolory uchwytów zaznaczenia i tła zaznaczenia. Aplikacje inne niż Material Design mogą ręcznie używać AmbientTextSelectionColors, aby dostosować kolory używane do zaznaczania. (I1e6f4, b/139320372, b/139320907)
  • Dodano sprawdzanie lint dla nazw i pozycji parametrów funkcji kompozycyjnej lambda, aby zapewnić spójność ze wskazówkami dotyczącymi Compose. Zgodnie z kontrolą i wskazówkami dotyczącymi lintowania niektóre interfejsy API zostały przeniesione z użyciem children jako nazwy funkcji lambda na końcu na content. (Iec48e)
  • Zmiana nazwy VectorAsset na ImageVector Przeniesienie i zmiana nazwy VectorAsset na Builder, aby była klasą wewnętrzną ImageVector zgodnie z wytycznymi rady API. Dodano alias typu VectorAssetBuilder, aby zapewnić zgodność z ImageVector.Builder. (Icfdc8)
  • Zmieniliśmy nazwy ImageAsset i powiązanych metod na ImageBitmap. (Ia2d99)
  • Przeniesiono właściwości semantyki podstawowej do interfejsu (I6f05c)
  • Interfejs fun RippleIndication() został wycofany i zastąpiony interfejsem rememberRippleIndication(), aby zachować spójność z innymi interfejsami API. (Id8e2c)
  • Dodano parametr singleLine do komponentów BasicTextField, TextField i OutlinedTextField. Ustaw ten parametr na „true”, aby pole tekstowe było pojedynczym wierszem z możliwością przewijania w poziomie. (I57004, b/168187755)

Poprawki błędów

  • Dodaj działanie semantyczne Odrzuć (I2b706)
  • Przeniesiono interfejsy DrawModifier API z pakietu androidx.compose.ui do pakietu androidx.compose.ui.draw. Utworzono plik DrawModifierDeprecated.kt, który zawiera aliasy typów i metody pomocnicze ułatwiające migrację z przestarzałych interfejsów API na obecne. (Id6044, b/173834241)
  • Zmiana nazwy Modifier.drawLayer na Modifier.graphicsLayer. Zaktualizowano też powiązane klasy do GraphicsLayer zgodnie z opiniami na temat interfejsu API. (I0bd29, b/173834241)
  • Element <T> został usunięty z deklaracji SubcomposeLayout. Możesz teraz używać tego parametru bez określania typu. (Ib60c8)
  • Dodano interfejsy API Modifier.scale/rotate jako ułatwienia dla drawLayer.
    • Zmieniono nazwę Modifier.drawOpacity na Modifier.alpha
    • Zmieniono nazwę Modifier.drawShadow na Modifier.shadow (I264ca, b/173208140)
  • Parametr wyrównania elementu Box został zmieniony na contentAlignment. (I2c957)
  • Modyfikatory offsetPx zostały zmienione na offset. Zamiast parametru State przyjmują teraz parametry lambda. (Ic3021, b/173594846)
  • Wprowadzono interfejsy SweepGradientShader i SweepGradientBrush API. (Ia22c1)
  • Dodaliśmy sprawdzanie parametrów modyfikatora w funkcjach kompozycyjnych. Ta kontrola linter sprawdza nazewnictwo, zwracany typ, wartość domyślną i kolejność parametru pod kątem spójności z wytycznymi dotyczącymi Compose. (If493b)
  • Zaktualizowany interfejs TextFieldValue API
    • pole TextFieldValue.composition zostało ustawione jako tylko do odczytu.
    • usunięto wyjątek zgłaszany w przypadku nieprawidłowego zakresu wyboru (I4a675, b/172239032);
  • Dodano nowe przeciążenie Modifier.drawLayer(). Przyjmuje blok lambda w nowym zakresie GraphicsLayerScope, w którym definiujesz parametry warstwy w sposób umożliwiający pominięcie rekompozycji i ponownego układu, gdy nastąpi zmiana stanu. DrawLayerModifier jest teraz wewnętrzny w ramach przygotowań do przeniesienia jego logiki do metody placeable.placeWithLayer() LayoutModifier (I15e9f, b/173030831).
  • Wycofaliśmy Ambients z sufiksem Ambient i zastąpiliśmy je nowymi właściwościami z prefiksem Ambient, zgodnie z innymi Ambientami i wytycznymi interfejsu Compose API. (I33440)
  • Dodano sprawdzanie kodu, aby upewnić się, że fabryki modyfikatorów używają wewnętrznie funkcji androidx.compose.ui.composed {} zamiast być oznaczane jako @Composable. (I3c4bc)
  • Argument semantyczny mergeAllDescendants został zmieniony na mergeDescendants. (Ib6250)
  • Kontrola czasu w testach (TestAnimationClock i jego zastosowania) jest teraz eksperymentalna (I6ef86, b/171378521).
  • Usuwanie starego modułu ui-test i jego stubów (I3a7cb)
  • W celu zachowania spójności z innymi jednostkami nazwa TextUnit.Inherit została zmieniona na TextUnit.Unspecified. (Ifce19)
  • Interfejs wyrównania został zaktualizowany i jest już funkcjonalny. (I46a07, b/172311734)
  • W przypadku elementu LayoutIdParentData nazwa id została zmieniona na layoutId. Zmieniliśmy nazwę Measurable.id 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 są udostępnione. Wersja 1.0.0-alpha07 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wyróżnienie zostało wycofane i zastąpione przez AmbientContentAlpha. AmbientContentAlpha to prostsza abstrakcja, która reprezentuje preferowaną wartość alfa treści dla części hierarchii, podobnie jak AmbientContentColor reprezentuje preferowany kolor treści. Tekst i ikona domyślnie korzystają teraz z bieżącej wartości AmbientContentAlpha. Możesz też ręcznie wykonać działanie color.copy(alpha = AmbientContentAlpha.current), aby uzyskać ten sam efekt w swoich komponentach. Zamiast używać funkcji ProvideEmphasis, możesz bezpośrednio podać wartość za pomocą AmbientContentAlpha i użyć nowych poziomów domyślnych w ContentAlpha, aby zastąpić stare poziomy EmphasisLevels. (Idf03e, b/159017896)
  • Dodaje androidx.compose.material.AmbientContentColor, aby zastąpić androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770)
  • Dodaje komponent androidx.compose.material.Text, który zastępuje komponent androidx.compose.foundation.Text jako komponent tekstowy wysokiego poziomu z możliwością stosowania motywów. W przypadku podstawowego komponentu tekstowego, który nie korzysta z koloru ani stylu tekstu z motywu, użyj BasicText. (Ie6ae0)
  • Dodano maxLines do pól tekstowych (Ib2a5b)
  • Aktualizacja pól tekstowych, aby akceptowały KeyboardOptions (Ida7f3)
  • Usługa Surface używa teraz bezwzględnej (całkowitej) wysokości podczas obliczania nakładek wysokościowych, więc usługa Surface zagnieżdżona w innej usłudze Surface będzie używać połączonej wysokości do rysowania nakładki. (I7bd2b, b/171031040)

Poprawki błędów

  • captureToBitmap został przeniesiony do captureToImage. (I86385)
  • Podstawowe funkcje AmbientTextStyle, ProvideTextStyle i AmbientContentColor zostały wycofane. Zamiast tego używaj nowych wersji dostępnych w bibliotece Material. W przypadku aplikacji innych niż Material należy utworzyć własny system projektowania z motywami, które można wykorzystać w komponentach. (I74acc, b/172067770)
  • foundation.Text został wycofany i zastąpiony przez material.Text. Podstawowy interfejs API tekstu bez opinii, który nie wykorzystuje wartości z motywu, znajdziesz w artykule androidx.compose.foundation.BasicText. (If64cb)
  • Zmiana nazwy KeyboardOptions na ImeOptions (I82f36)
  • Przeniesiono KeyboardType i ImeAction do KeyboardOptions (I910ce)
  • Komponent BaseTextField został wycofany. Zamiast tego użyj BasicTextField. (I896eb)
  • Usunięto adnotację ExperimentalSubcomposeLayoutApi. Funkcja SubcomposeLayout może być teraz używana bez dodawania adnotacji @OptIn (I708ad)
  • FirstBaseline i LastBaseline zostały przeniesione do pakietu androidx.compose.ui.layout (Ied2e7).
  • Zaktualizowano interfejs Icon API, aby przyjmował wartość Color.Unspecified jako możliwy kolor odcienia, który będzie rysować podany zasób lub malarza bez filtra ColorFilter. Wcześniejsze próby zignorowania odcienia za pomocą Color.Unspecified powodowały odcień przezroczystego koloru, co w efekcie nie dawało żadnego renderowania. (I049e2, b/171624632)
  • Zmieniliśmy nazwę parametru relativePaddingFrom na paddingFrom. Dodaliśmy modyfikator paddingFromBaseline, aby ułatwić określanie odległości od granic układu do linii bazowych tekstu. (I0440a, b/170633813)
  • Aby zachować spójność z interfejsami SideEffect i DisposableEffect API, zmieniliśmy nazwę LaunchedTask na LaunchedEffect. Aby zachęcać do stosowania sprawdzonych metod, nie zezwalamy na używanie funkcji LaunchedEffect bez parametrów subject. (Ifd3d4)
  • Element MeasureResult został przeniesiony poza element MeasureScope. (Ibf96d, b/171184002)
  • Kilka symboli związanych z układem zostało przeniesionych z pakietu androidx.compose.ui do 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 są udostępnione. Wersja 1.0.0-alpha06 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • androidx.compose.foundation.Icon został przeniesiony do androidx.compose.material.Icon. Jeśli nie chcesz korzystać z biblioteki Material, możesz też użyć komponentu Image lub funkcji Modifier.paint() z obiektem Painter. (I9f622)
  • Dodaje FloatingActionButtonElevation, aby reprezentować poziom uniesienia używany przez przyciski FAB w różnych stanach. Domyślną implementację znajdziesz w FloatingActionButtonConstants.defaultElevation() (I2d4f5).
  • Dodaje interfejs SwitchColors, który reprezentuje kolory używane przez przełącznik w różnych stanach. Aby dostosować te kolory, zapoznaj się z dokumentacją SwitchConstants.defaultColors. (I93805)
  • Dodaje interfejsy ButtonElevation i ButtonColors, które reprezentują wysokość i kolory używane przez przyciski w różnych stanach. Aby dostosować te parametry, zapoznaj się z funkcjami domyślnymi w klasie ButtonConstants. (Ic5b7b)
  • Dodaje interfejs RadioButtonColors, który reprezentuje kolory używane przez RadioButton w różnych stanach. Aby dostosować kolory używane w różnych stanach, użyj RadioButtonConstants.defaultColors(). (I74130)
  • Dodaje interfejs CheckboxColors, który reprezentuje kolory używane przez pole wyboru w różnych stanach. Aby dostosować kolory używane w różnych stanach, użyj metody CheckboxConstants.defaultColors(). (I7dbdb)

Poprawki błędów

  • Komponenty Material nie ustawiają już wysokości jako zIndex. Oznacza to, że w ramach tego samego elementu nadrzędnego dziecko z większym cieniem nie będzie automatycznie rysowane na wierzchu dziecka z mniejszym cieniem. Jeśli nadal potrzebujesz takiego zachowania, ustaw ręcznie Modifier.zIndex() w odpowiednich miejscach (I70417, b/170623932).
  • Wycofanie funkcji VectorPainter na rzecz funkcji rememberVectorPainter, aby lepiej wskazywać, że interfejs API funkcji kompozycyjnych wewnętrznie wykorzystuje funkcję „remember” do utrwalania danych w kompozycjach. (Ifda43)
  • Włączanie przejść w ComposeTestRule; usuwanie opcji włączania migającego kursora z ComposeTestRule. (If0de3)
  • Dodano opcję klawiatury z jednym wierszem w komponencie CoreTextField (I72e6d)
  • Zmieniliśmy nazwę interfejsu Radius API na CornerRadius, aby lepiej odzwierciedlała sposób jego użycia w całym Compose. Zaktualizowano dokumentację, aby wskazać, że ujemne promienie zaokrąglenia są przycinane do zera. (I130c7, b/168762961)
  • Zmiana DrawScope i ContentDrawScope na interfejsy zamiast klas abstrakcyjnych.
    • Utworzono implementację CanvasDrawScope interfejsu DrawScope
    • Zmiana implementacji DrawScope na CanvasScope
    • Utworzono DrawContext do opakowywania zależności dla DrawScope
    • Usunięto wycofane metody w klasie DrawScope (I56f5e)
  • Funkcja Box została przekształcona 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 są udostępnione. Wersja 1.0.0-alpha05 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wyskakujące okienka i okna dialogowe dziedziczą teraz FLAG_SECURE z okna nadrzędnego. Dodano też opcję wyraźnej konfiguracji tego ustawienia (I64966, b/143778148, b/143778149).
  • Modyfikator swipeable ma teraz domyślnie progi 56 dp dla stanów (Iab825, b/168610267)
  • wszystkie stany komponentu Scaffold zostały oznaczone jako @Stable; właściwość drawerGesturesEnabled w komponencie ScaffoldState została przeniesiona do komponentu Scaffold; (I36645, b/168297016)
  • Usuwa typ dopuszczający wartość null z parametrów lambda elementu Scaffold. Aby wskazać brak treści dla danego parametru, możesz użyć funkcji emptyContent(). (I2b318, b/157633857, b/158551084)
  • Wycofuje interfejsy contentColor() i currentTextStyle() i zastępuje je odpowiednio AmbientContentColor i AmbientTextStyle. Aktualną wartość możesz uzyskać, używając funkcji .current w przypadku właściwości otoczenia, tak jak w przypadku każdego innego otoczenia. Ta zmiana została wprowadzona w celu zachowania spójności i uniknięcia sytuacji, w której to samo zadanie można wykonać na kilka sposobów. Dodatkowo zmieniliśmy nazwy niektórych właściwości otoczenia, aby lepiej opisywały ich przeznaczenie:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
  • Dodaje AmbientElevationOverlay, co umożliwia dostosowywanie lub wyłączanie domyślnej nakładki podniesienia stosowanej do elementów interfejsu w ciemnym motywie. (I5b74d)

Poprawki błędów

  • W ramach standaryzacji wartości wartowniczych w przypadku klas wbudowanych zmień nazwę Color.Unset na Color.Unspecified, aby zachować spójność z innymi klasami wbudowanymi (I97611, b/169797763).
  • Wprowadzono TextOverflow.None. Gdy wartość parametru overflow to None, komponent Text nie będzie już obsługiwać przepełnienia i będzie zgłaszać do komponentu LayoutNode swój rzeczywisty rozmiar. (I175c9, b/158830170)
  • Zmiana nazwy launchInComposition na LaunchedTask, aby była zgodna ze wskazówkami dotyczącymi interfejsu Compose API (I99a8e).
  • Zmiana nazwy OnPositionedModifier na OnGloballyPositionedModifier, a onPositioned() 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 są udostępnione. Wersja 1.0.0-alpha04 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Udostępnia parametry InteractionState w komponentach Material z zachowywaniem stanu, aby umożliwić przenoszenie stanu oraz odczytywanie i kontrolowanie stanu. (Iaca5f, b/168025711, b/167164434)
  • Zmienia parametry *color w przypadku elementów RadioButton i TriStateCheckbox, aby umożliwić pełne dostosowanie kolorów używanych w każdym stanie, a także zmianę sposobu animowania kolorów między stanami. Więcej informacji znajdziesz w nowych funkcjach kolorów animateDefault* w plikach CheckboxConstants i RadioButtonConstants. (I1c532)
  • Zmieniono nazwę funkcji rememberBackdropState na rememberBackdropScaffoldState i dodano dodatkowy parametr zegara animacji. Zmiana nazwy parametru backdropScaffoldState w komponencie BackdropScaffold na scaffoldState. Zmiana nazwy BackdropConstants na BackdropScaffoldConstants. (Ib644d)
  • Dodano eksperymentalny komponent BottomSheetScaffold. (Ie02f0, b/148996320)
  • Dodano eksperymentalny komponent ModalBottomSheetLayout. (Ic209e, b/148996320)
  • Zmienia nazwę ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation na defaultElevation i zwraca teraz wartość Dp zamiast AnimatedValue. (I5f3ed)

Poprawki błędów

  • Zaktualizowano wiele interfejsów API grafiki.
    • Zaktualizowano interfejsy API przekształceń skalowania i obracania, aby używały jednego parametru Offset do reprezentowania współrzędnych punktu obrotu zamiast oddzielnych parametrów zmiennoprzecinkowych dla współrzędnych x/y w DrawScope i DrawTransform.
    • Usunięto metody Rect.expandToInclude i Rect.join
    • Zaktualizowana dokumentacja dotycząca promienia, w której oprócz kształtu eliptycznego podano też owalny.
    • Dodano dokumentację, aby wskazać, że publiczny konstruktor klasy wbudowanej Radius nie powinien być wywoływany bezpośrednio, ale zamiast tego obiekty Radius powinny być tworzone za pomocą konstruktorów funkcji.
    • Usunięto interfejsy API RoundRect do wysyłania zapytań o wartości topRight, bottomRight, bottomCenter itp.
    • Wycofanie Rect.shift na rzecz Rect.translate
    • Usunięto interfejsy API RoundRect.grow i Rect.shrink
    • Zmiana nazwy RoundRect.outerRect na Rect.boundingRect
    • Usunięto metody RoundRect.middleRect/tallMiddleRect/wideMiddleRect i Rect.isStadium
    • Zmiana nazwy RoundRect.longestSide na RoundRect.maxDimension
    • Zmiana nazwy RoundRect.shortestSide na RoundRect.minDimension
    • Zmiana RoundRect.center na właściwość zamiast funkcji
    • Zaktualizowano konstruktor RoundRect, aby korzystał z właściwości Radius zamiast z poszczególnych parametrów wartości promienia x/y
    • Usunięto interfejsy API rozmiaru, które zakładały, że jest to prostokąt o początku w punkcie 0,0
    • Dodano interfejs API niszczenia do Radius
    • Przeniesiono różne funkcje rozszerzeń RoundRect, aby były właściwościami.
    • (I8f5c7, b/168762961)
  • Klasa foundation.Box została wycofana. Zamiast niego użyj foundation.layout.Box. (Ie5950, b/167680279)
  • Grupa została zmieniona na Box. Wcześniej istniejący komponent Box zostanie wycofany na rzecz nowego komponentu Box w pakiecie compose.foundation.layout. Nowy element Box układa elementy podrzędne jeden na drugim, gdy ma ich kilka. Różni się to od poprzedniego elementu Box, który działał podobnie do elementu Column. (I94893, b/167680279)
  • Parametry dekoracji pola zostały wycofane. Jeśli chcesz dodać dekoracje lub wypełnienie do elementu Box, użyj zamiast tego modyfikatorów (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279).
  • Zaktualizowano wiele interfejsów API grafiki.
    • Zaktualizowano interfejsy DrawScope API o metody przekształcania w określonym zakresie, aby wskazać, że przekształcenie jest stosowane tylko w wywołaniu zwrotnym i usuwane po jego wywołaniu.
    • Zaktualizowaliśmy dokumentację clipPath, aby odwoływała się do ścieżki zamiast do zaokrąglonego prostokąta
    • Poprawiono odstępy w dokumentacji parametru right w elemencie clipPath
    • Zmieniono nazwę funkcji DrawScope.drawCanvas na drawIntoCanvas i usunięto parametr rozmiaru
    • Zmiana nazw parametrów dx/dy w metodzie inset na horizontal i vertical
    • Dodano przeciążenie wstawki, które zapewnia tę samą wartość wstawki dla wszystkich 4 obszarów.
    • Usunięto dokumentację dotyczącą metody wstawiania, która wskazywała, że wstawianie będzie stosowane do wszystkich 4 stron.
    • Zaktualizowana dokumentacja klasy Rect
    • Zaktualizowano komentarze dotyczące parametrów Rect, aby były zgodne ze stylem kdoc.
    • Usunięto Rect.join i Rect.expandToInclude
    • Utworzono przeciążenie funkcji Rect.translate(offset) i wycofano funkcję Rect.shift
    • (If086a, b/167737376)
  • Zapobiegliśmy statycznemu importowaniu treści z zakresów układu (np. alignWithSiblings w RowScope). Zamiast tego użyj zakresu jawnego: 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 są udostępnione. Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Zmienia nazwę onSelectparametru BottomNavigationItem na onClick (I91925, b/161809324)
  • Dodaje parametr InteractionState do elementów BottomNavigationItem i Tab, co umożliwia przenoszenie tego stanu i dostosowywanie wyglądu komponentu w różnych stanach. (Ia3e9e, b/168025711)
  • Usuwa z przycisków parametry disabledBackgroundColor i disabledContentColor. Zamiast tego użyj nowych funkcji domyślnego koloru w ButtonConstants. Jeśli ustawiasz już jawnie contentColor lub backgroundColor, zamiast tego użyj tych funkcji domyślnych i dostosuj niektóre lub wszystkie parametry, aby uniknąć zastąpienia koloru w przypadku stanów włączonych i wyłączonych. (If9b52)
  • Kolor tła pola tekstowego nie stosuje już domyślnie przezroczystości alfa. Zamiast tego każdy kolor podany w parametrze backgroundColor zostanie zastosowany bezpośrednio. (Iecee9, b/167951441)
  • Wewnętrzne dopełnienie zostało zmienione na PaddingValues. (I195f1, b/167389171)
  • Parametry resistanceFactorAtMin i resistanceFactorAtMax w Modifier.swipeable zostały zastąpione jednym parametrem oporu. W SwipeableConstants dodano nową metodę defaultResistanceConfig. (I54238)
  • Dodaje obsługę animowanego stanu podniesienia w przypadku komponentów Button i FloatingActionButton. Wysokość jest teraz animowana między stanem domyślnym a stanem po naciśnięciu. Aby dostosować wysokość między stanami, użyj ButtonConstants.defaultAnimatedElevation() i FloatingActionButtonConstants.defaultAnimatedElevation() zamiast ustawiać stałą wartość Dp we wszystkich przypadkach. (I37925)
  • Etykieta stała się parametrem opcjonalnym w przypadku komponentów TextField i OutlinedTextField (I267f6, b/162234081)

Poprawki błędów

  • Globalne funkcje testowe, takie jak onNode lub waitForIdle, są teraz wycofane. Przejdź na ich nowe odpowiedniki zdefiniowane w ComposeTestRule (I7f45a).
  • Interfejs DpConstraints i interfejsy API, które go używają, zostały wycofane. (I90cdb, b/167389835)
  • Parametry minWidth i maxWidth w widthIn zostały zmienione na min i max. Podobnie w przypadku preferredWidthIn, heightIn i preferredHeightIn. (I0e5e1, b/167389544)
  • Usuń działania semantyczne przewijania do przodu i do tyłu. Dodano kroki w AccessibilityRangeInfo. (Ia47b0)
  • W interfejsach API układu wszystkie wystąpienia słowa „gravity” zostały zmienione na „align” lub „alignment”. (I2421a, b/164077038)
  • Dodano metody onNode i inne metody globalne w klasie ComposeTestRule, ponieważ obecne metody globalne zostaną wycofane. (Ieae36)
  • Przeniesiono elementy createAndroidComposeRule i AndroidInputDispatcher z androidx.ui.test.android do androidx.ui.test (Idef08, b/164060572)

Wersja 1.0.0-alpha02

2 września 2020 r.

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 są udostępnione. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano eksperymentalny komponent BackdropScaffold. (Iad908)

Poprawki błędów

  • Matrix4 został zastąpiony przez Matrix. Wszystkie inne części pakietu vectormath zostały usunięte. (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 są udostępnione. Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.

Znany problem

= Pierwszego znaku w materiale TextField nie można usunąć za pomocą klawisza Backspace (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 są udostępnione. Wersja 0.1.0-dev17 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wycofane wcześniej komponenty RadioGroup i RadioGroupItems zostały usunięte. Zamiast tego użyj elementów Row i RadioButton (I381b7, b/163806637)
  • Usunięto wywołania zwrotne onFocusChanged z pola tekstowego. Zamiast tego użyj Modifier.focusObserver. (I51089, b/161297615)
  • Funkcja Modifier.drawBorder została wycofana. Zamiast tego użyj Modifier.border. Klasa danych Border została zastąpiona klasą BorderStroke (I4257d, b/158160576)
  • Zmieniliśmy nazwy niektórych właściwości w klasie SwipeableState: swipeTarget –> targetValue, swipeProgress –> progress, swipeDirection –> direction. Dodaliśmy funkcję rememberSwipeableState do tworzenia obiektów SwipeableState. (I2fc9c, b/163129614, b/163132293)
  • Dodano obsługę paska powiadomień z rozmieszczaniem i odpowiednim kolejkowaniem. Możesz uzyskać do niej dostęp za pomocą funkcji zawieszania SnackbarHostState.showSnackbar. Dodatkowo:
    • Dodano komponenty SnackbarHost. Zawiera on wyskakujące komunikaty w zależności od stanu i jest odpowiedzialny za przechodzenie między nimi.
    • Dodano SnackbarHostState, aby umożliwić sterowanie paskami powiadomień i ich hostami oraz oddzielić je od ScaffoldState. Dostęp do tego stanu można uzyskać również za pomocą scaffoldState.snackbarHostState.
    • Dodano przeciążenie paska powiadomień, aby obsługiwać wspólny interfejs między stanem hosta paska powiadomień a samymi paskami powiadomień. (I79aaa)
  • Dodaje parametr enabled do elementu IconButton i zmienia kolejność parametrów w elemencie IconToggleButton (I0a941, b/161809385, b/161807956)
  • Wersja ListItem z interfejsem API opartym na ciągach znaków została usunięta. Zamiast tego użyj wersji gniazda. (Ib8f57, b/161804681)
  • Usunięto wycofany komponent FilledTextField. Zamiast niego używaj komponentu TextField, aby uzyskać implementację pola tekstowego wypełnionego zgodną z Material Design. (I5e889)
  • AlertDialog używa teraz FlowRow w przypadku przycisków (I00ec1, b/161809319, b/143682374)
  • Dodano parametry w Modifier.swipeable, które umożliwiają zmianę oporu podczas przesuwania poza granice. Usunięto parametry [min/max]Value. (I93d98)
  • Dodano parametr backgroundColor do LinearProgressIndicator i usunięto wewnętrzny dopełnienie z CircularProgressIndicator. Dodano nową klasę ProgressIndicatorConstants.DefaultProgressAnimationSpec, której można używać jako domyślnej klasy AnimationSpec podczas animowania postępu między wartościami (If38b5, b/161809914, b/161804677).
  • Do Modifier.swipeable dodano opcjonalny parametr velocityThreshold. (I698ba)
  • bottomBarSize, fabSize i inne nie są już dostępne w ScaffoldState. Zamiast tego użyj Modifier.onPosition w komponencie, którego rozmiar chcesz poznać. Do komponentu Scaffold dodano parametry contentColor i Modifier (Ic6f7b, b/161811485, b/157174382).
  • Zmiana nazw i kolejności niektórych parametrów na karcie w celu zachowania spójności z innymi interfejsami API (Ia2d12, b/161807532)
  • Dzieli TabRow na TabRow i ScrollableTabRow, usuwając isScrollable z TabRow. Udostępnia też edgePadding w ScrollableTabRow, co pozwala kontrolować wolną przestrzeń przed i po kartach. (I583e8, b/161809544)
  • Obiekt TabRow został usunięty i zastąpiony przez TabConstants. Element TabRow.TabPosition został przeniesiony na najwyższy poziom (TabPosition), a element indicatorContainer został zmieniony na indicator. Szczegółowe informacje o korzystaniu z zaktualizowanego interfejsu API i wartościach domyślnych znajdziesz w przykładach i dokumentacji. (I54d45, b/161809544)
  • Parametr progów w modyfikatorze swipeable został zmodyfikowany.Teraz przyjmuje parę stanów (typu T) i zwraca próg między nimi w postaci ThresholdConfig. Do komponentu SwipeToDismiss dodano parametr dismissThresholds, który jest funkcją lambda (DismissDirection) -> ThresholdConfig. (Ie1080)
  • Suwak ma więcej kolorów, co umożliwia szczegółowe dostosowywanie (I73e64, b/161810475)
  • Parametr koloru karty został zmieniony na backgroundColor (I01fc1, b/161809546)
  • Pasek powiadomień ma teraz konfigurowalne kolory tła i treści (I238f2, b/161804381).
  • Do komponentu Drawers dodano parametry dostosowywania modyfikatora, backgroundColor, contentColor i scrimColor (I23655, b/161804378).
  • Funkcja state { ... } została wycofana na rzecz jawnych wywołań funkcji remember { mutableStateOf(...) }, w celu uniknięcia wątpliwości. Zmniejsza to ogólną powierzchnię interfejsu API i liczbę koncepcji zarządzania stanem oraz pasuje do wzorca by mutableStateOf() delegowania właściwości klasy. (Ia5727)
  • Parametr dopełnienia przycisku został zmieniony na contentPadding (Id252e, b/161809394)
  • Dodaj eksperymentalny komponent materiałowy SwipeToDismiss. (I129e5)

Poprawki błędów

  • Usunięto onChildPositioned i OnChildPositionedModifier. Zamiast tego deweloperzy powinni używać w układzie podrzędnym zasad onPositioned i OnPositionedModifier. (I4522e, b/162109766)
  • Dodano funkcję lambda mergePolicy do SemanticsPropertyKey. Można jej użyć do zdefiniowania niestandardowych zasad scalania wszystkich elementów podrzędnych. Domyślna zasada polega na używaniu wartości nadrzędnej, jeśli jest już obecna, w przeciwnym razie używana jest wartość podrzędna. (Iaf6c4, b/161979921)
  • IntSize jest teraz klasą wbudowaną (I2bf42).
  • PlacementScope.placeAbsolute() została zmieniona na PlacementScope.place(), a poprzednia PlacementScope.place() została zmieniona na PlacementScope.placeRelative(). W rezultacie metoda PlacementScope.place() nie będzie już automatycznie odzwierciedlać pozycji w kontekstach pisanych od prawej do lewej. Jeśli chcesz to zrobić, użyj zasady PlacementScope.placeRelative(). (I873ac, b/162916675)
  • Wycofano PxBounds na rzecz Rect. Zaktualizowano wszystkie użycia PxBounds za pomocą funkcji rect i dodano odpowiednie adnotacje dotyczące wycofania/zastąpienia w celu ułatwienia migracji. (I37038, b/162627058)
  • Zmiana nazwy RRect na RoundRect w celu lepszego dopasowania do wzorców nazewnictwa w Compose Utworzenie podobnych konstruktorów funkcji do RRect i wycofanie konstruktorów funkcji RRect (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 są udostępnione. Wersja 0.1.0-dev16 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Klasa Colors jest teraz klasą finalną, a nie interfejsem. Zamiast rozszerzać i zapewniać niestandardową implementację, utwórz nowe środowisko dla niestandardowego obiektu motywu i uzyskaj dostęp do obiektu motywu za pomocą nowego środowiska w komponentach, podobnie jak działa to wewnętrznie w przypadku MaterialTheme. (Ibae84)
  • Zmieniliśmy nazwę ColorPalette na Colors, aby lepiej odzwierciedlała system kolorów Material Design i uniknąć nieporozumień związanych z tym, że ColorPalette jest „ogólnym” obiektem motywu, a nie konkretną implementacją systemu kolorów Material Design. Dodatkowo zmienia nazwy lightColorPalette i darkColorPalette na lightColors i darkColors. (I9e976, b/161812111)
  • Zmienia nazwy parametrów BottomNavigationItem: text na label, onSelected na onSelect, activeColor na selectedContentColor, inactiveColor na unselectedContentColor i aktualizuje kolejność parametrów zgodnie z wytycznymi. (Icb605, b/161809324)
  • Modifier.stateDraggable został całkowicie przekształcony i zmieniono jego nazwę na Modifier.swipeable. Wprowadzono nową klasę SwipeableState, a klasy DrawerState i BottomDrawerState zostały zmodyfikowane tak, aby z niej dziedziczyć. [Modal/Bottom]DrawerLayout nie przyjmuje już parametru onStateChange. (I72332, b/148023068)
  • Pakiet foundation.shape.corner został spłaszczony do foundation.share (I46491, b/161887429).
  • Dodano adnotację ExperimentalMaterialApi. RippleTheme oznaczony jako eksperymentalny (Ic5fa0, b/161784800)
  • Komponent Material FilledTextField został zmieniony na TextField, a komponent podstawowy TextField został zmieniony na BaseTextField, aby ułatwić odkrywanie i używanie najprostszego interfejsu API (Ia6242, b/155482676).

Poprawki błędów

  • Metoda OnChildPositioned została wycofana. Zamiast tego użyj OnPositioned w przypadku elementu podrzędnego. (I87f95, b/162109766)
  • Rozwiązanie problemów z interfejsem API (I077bc)
    1. Usuwanie nieużywanego interfejsu OffsetBase
    2. Ujednolicenie klas Offset i IntOffset w celu zapewnienia spójnego interfejsu API
    3. Zmiana nazwy IntOffset.Origin na IntOffset.Zero w celu zachowania spójności z interfejsem Offset API
    4. Przeniesiono metodę nativeCanvas z interfejsu Canvas, aby umożliwić konsumentom tworzenie własnych instancji Canvas.
    5. Utworzono klasę stub EmptyCanvas, aby przekształcić DrawScope w parametr o wartości innej niż null zamiast lateinit i zapewnić, że pole nie będzie miało wartości null.
    6. Zmiana nazw wyliczeń ClipOp na Pascal Case
    7. Zmiana nazwy wyliczeń FilterQuality na Pascal Case
    8. Zmieniono nazwy wyliczeń StrokeJoin na Pascal Case
    9. Zmiana nazwy wyliczeń PointMode na Pascal Case
    10. Zmiana nazwy wyliczeń PaintingStyle na Pascal Case
    11. Zmiana nazwy wyliczeń PathFillType na Pascal Case
    12. Zmieniono nazwy wyliczeń StrokeCap na Pascal Case
    13. Zaktualizowano implementację DrawCache, aby nie używać już parametrów lateinit.
    14. Zaktualizowano DrawScope, aby nie używać już leniwego delegowania w przypadku wewnętrznych parametrów fillPaint i strokePaint
    15. Zaktualizowano funkcję kompozycyjną Image, aby uniknąć używania Boxa i zmniejszyć obciążenie.
    16. Zaktualizowano klasę Outline, aby zawierała adnotacje @Immutable
    17. Zaktualizowano klasę PathNode, aby zawierała adnotacje @Immutable dla każdej instrukcji ścieżki.
    18. Zaktualizowano podkompozycję wektora, aby usunąć zbędne sprawdzanie warunkowe równości, ponieważ kompozycja już je obsługuje.
    19. Wycofanie metod konstruktora towarzyszącego Rect na rzecz konstruktorów funkcji
    20. Zaktualizowano klasy Brush i konstruktory funkcji za pomocą interfejsów API @Immutable i @Stable
    21. Zaktualizowano wyliczenie VertexMode, aby używać notacji PascalCase
    22. Zaktualizowano metodę selectPaint w klasie DrawScope, aby warunkowo zastępować parametry pędzla w obiekcie Paint, jeśli uległy zmianie.
    23. Zaktualizowano klasę Size, aby dodać interfejs API destructuring, zmienić nazwę UnspecifiedSize na Unspecified i usunąć nieużywane metody.
  • Przeniesienie okna do interfejsu (I47fa6)
  • Kontakt SemanticsNodeInteraction.performPartialGesture został usunięty. Zamiast niej użyj zasady SemanticsNodeInteraction.performGesture. (Id9b62)
  • Zmieniono nazwę SemanticsNodeInteraction.getBoundsInRoot() na SemanticsNodeInteraction.getUnclippedBoundsInRoot() (Icafdf, b/161336532)
  • Interfejsy API obsługujące pisanie od prawej do lewej zostały zaktualizowane. Dodano LayoutDirectionAmbient, którego można używać do odczytywania i zmieniania kierunku układu. Usunięto Modifier.rtl i Modifier.ltr. (I080b3)
  • Właściwość Modifier.deternimateProgress została zmieniona na Modifier.progressSemantics (I9c0b4)
  • Aktualizuje pakiet material-icons-extended o najnowsze ikony dodane do Material.io/icons (I4b1d3).
  • Wymagaj jawnego określenia typu T w przypadku transitionDefinition. (I1aded)
  • Metoda Modifier.plus została wycofana. Zamiast niej używaj metody Modifier.then. Słowo „then” (wtedy) silniej sygnalizuje kolejność, a także uniemożliwia wpisanie znaku Modifier.padding().background() + anotherModifier, który przerywa łańcuch i utrudnia czytanie (Iedd58, b/161529964).
  • Zmiana nazwy AndroidComposeTestRule na createAndroidComposeRule. (I70aaf)
  • Dodaj SemanticsMatcher isFocused() i isNotFocused(). (I0b760)
  • Usunięto BaseGestureScope.globalBounds, którego nie należy używać w testach. Zamiast tego używaj współrzędnych lokalnych węzła, z którym wchodzisz w interakcję. (Ie9b08)
  • Stała pozycja wyskakującego okienka na wyświetlaczach z wycięciem. (Idd7dd)
  • Funkcja 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 są udostępnione. Wersja 0.1.0-dev15 zawiera te zatwierdzenia.

Aktualizacja zależności

  • Aby używać wersji 0.1.0-dev15 biblioteki Compose, musisz zaktualizować zależności zgodnie z nowymi fragmentami kodu podanymi powyżej w sekcji Deklarowanie zależności.

Zmiany w interfejsie API

  • Adnotacja @Model została wycofana. Używaj zamiast nich state i mutableStateOf. Decyzja o wycofaniu została podjęta po dokładnym rozważeniu wszystkich argumentów.

    Uzasadnienie

    Uzasadnienie obejmuje m.in.:

    • Zmniejsza obszar interfejsu API i liczbę koncepcji, których musimy nauczyć
    • Jest bardziej zbliżony do innych porównywalnych zestawów narzędzi (Swift UI, React, Flutter).
    • Decyzja odwracalna. Zawsze możemy później przywrócić @Model.
    • Usuwa rzadkie przypadki użycia i trudne pytania dotyczące konfigurowania usługi @Model jako kwestie, którymi musimy się zająć.
    • @Model klasy danych, equals, hashcode itp.
    • Jak sprawić, aby niektóre usługi były „obserwowane”, a inne nie?
    • Jak określić, czy w obserwacji ma być używane równanie strukturalne czy referencyjne?
    • Zmniejsza „magię” w systemie. Zmniejszyłoby to prawdopodobieństwo, że ktoś uzna system za bardziej inteligentny, niż jest w rzeczywistości (np. że wie, jak porównać listy).
    • Ułatwia intuicyjne określanie szczegółowości obserwacji.
    • Ulepsza możliwość refaktoryzacji ze zmiennej -> właściwości w klasie
    • Może otworzyć możliwości ręcznego dostosowywania optymalizacji do poszczególnych stanów.
    • Jest bardziej zgodny z pozostałą częścią ekosystemu i zmniejsza niejednoznaczność w odniesieniu do stanu niezmiennego lub „przyjmowania stanu zmiennego”.

    Notatki dotyczące migracji

    Prawie wszystkie dotychczasowe zastosowania symbolu @Model można łatwo przekształcić na jeden z 2 sposobów. W przykładzie poniżej znajduje się klasa @Model z 2 właściwościami, która 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 }
     )
    }
    

    Alternatywa 1: użyj State<OriginalClass> i utwórz kopie.

    To podejście jest łatwiejsze dzięki klasom danych w języku Kotlin. Wszystkie poprzednie var właściwości przekształć w val właściwości klasy danych, a potem używaj state zamiast remember i przypisuj wartość stanu do sklonowanych kopii oryginału za pomocą metody wygody copy(...) klasy danych.

    Należy pamiętać, że to podejście działa tylko wtedy, gdy jedyne zmiany w tej klasie zostały wprowadzone w tym samym zakresie, w którym utworzono instancję State. Jeśli klasa zmienia się wewnętrznie poza zakresem użycia i polegasz na obserwacji tej zmiany, użyj następnego 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) }
     )
    }
    

    Alternatywa 2. Użyj funkcji mutableStateOf i delegatów właściwości

    Ułatwiają to delegaty właściwości Kotlin i interfejs mutableStateOf API, który umożliwia tworzenie instancji MutableState poza kompozycją. Zastąp wszystkie właściwości var oryginalnej klasy właściwościami var, które mają mutableStateOf jako delegata właściwości. Ma to tę zaletę, że sposób użycia klasy nie ulegnie zmianie, a zmieni się tylko jej wewnętrzna implementacja. Zachowanie nie jest jednak całkowicie identyczne z pierwotnym przykładem, ponieważ każda właściwość jest teraz obserwowana lub subskrybowana indywidualnie, więc ponowne kompozycje, które zobaczysz po tej zmianie, mogą być bardziej ograniczone (co jest korzystne).

    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/143263925, b/139653744)

  • Wywołanie zwrotne onFocusChange w polach tekstowych zostało zmienione na onFocusChanged (Ida4a1)

  • Dodano parametr progów w stateDraggable, aby określić progi między punktami zakotwiczenia. Użyto go do ustawienia progu 56 dp w dolnym panelu. Klasa BottomDrawerLayout korzysta teraz z osobnego wyliczenia BottomDrawerState. (I533fa)

  • Usuwa wcześniej wycofany modyfikator Modifier.ripple. Komponent Clickable używa teraz efektu falowania jako domyślnego wskaźnika (jeśli w aplikacji masz ustawiony komponent MaterialTheme{}), więc w większości przypadków możesz po prostu użyć komponentu Clickable i uzyskać efekt falowania bez dodatkowych działań. Jeśli chcesz dostosować kolor, rozmiar lub parametr ograniczony efektu falowania, możesz ręcznie utworzyć RippleIndication i przekazać go do funkcji clickable jako parametr indication. (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).

  • Miejsce na treść przycisku działa teraz jak wiersz (przydatne, gdy chcesz mieć ikonę z tekstem – przykłady znajdziesz w sekcji dotyczącej pisania przycisków) (I0ff10, b/158677863)

  • Elementy RadioGroup i RadioGroupItem zostały wycofane. Użyj elementów Box z modyfikatorem Modifier.selectable, Row i Column, aby utworzyć odpowiedni zestaw opcji radioButton zgodnie z projektem (I7f5cf, b/149528535).

  • Dodano pole tekstowe Material Outlined (I1a518)

  • Interfejsy androidx.ui.foundation.TextFieldValue i androidx.ui.input.EditorValue zostały wycofane. Elementy kompozycyjne TextField, FilledTextField i CoreTextField, które używają tego typu, również zostały wycofane. Zamiast tego używaj androidx.ui.input.TextFieldValue (I4066d, b/155211005)

  • TabRow.TabPosition nie zawiera pozycji w jednostkach dp, tylko w jednostkach IntPx (I34a07, b/158577776)

  • Zastąpiono użycie IntPx wartością Int. Zastąpiono IntPxPosition wartością IntOffset. Zastąpiono IntPxSize wartością IntSize. (Ib7b44)

  • Aby zmniejszyć liczbę klas używanych do reprezentowania informacji o rozmiarach, ujednolić użycie klasy Size zamiast PxSize. Dzięki temu możesz korzystać z zalet klasy wbudowanej, aby używać typu long do pakowania 2 wartości zmiennoprzecinkowych reprezentujących szerokość i wysokość. (Ic0191)

  • Wycofuje Modifier.ripple. Komponent Clickable używa teraz efektu falowania jako domyślnego wskaźnika (jeśli w aplikacji masz ustawiony komponent MaterialTheme{}), więc w większości przypadków możesz po prostu użyć komponentu Clickable i uzyskać efekt falowania bez dodatkowych działań. Jeśli chcesz dostosować kolor, rozmiar lub parametr ograniczony efektu falowania, możesz ręcznie utworzyć RippleIndication i przekazać go do funkcji clickable jako parametr indication. (I101cd, b/155375067)

  • Przebudowaliśmy interfejs Scaffold API: zmieniliśmy nazwy kilku parametrów i dodaliśmy nowe, aby zapewnić lepsze dostosowywanie. Dodano funkcję pobierania rozmiarów elementów Fab, TopBar i BottomBar (I0e7ce).

  • Dodano komponent DropdownMenu w ui-material, czyli implementację menu Material Design. (I9bb3d)

  • Zezwalaj na ręczne wyświetlanie i ukrywanie klawiatury ekranowej za pomocą klasy SoftwareKeyboardController (Ifb9d6, b/155427736)

  • Do pakietu podstawowego dodano pole Modifier.indication. Używaj go do wyświetlania informacji o naciśnięciu, przeciągnięciu lub innych interakcjach w przypadku niestandardowych elementów interaktywnych (I8425f, b/155287131).

  • Ujednoliciliśmy implementacje CanvasScope, więc teraz są tylko DrawScope i ContentDrawScope. Zmieniliśmy nazwę CanvasScope na DrawScope. Zaktualizowano DrawScope, aby implementować interfejs Density i udostępniać LayoutDirection. Usunięto podklasę DrawScope w ContentDrawScope. Zaktualizowano Painter i PainterModifier, aby nie utrzymywały już same właściwości RTL, ponieważ DrawScope już je udostępnia bez ręcznego podawania (I1798e).

  • Zmiana nazwy funkcji Emphasis.emphasize() na Emphasis.applyEmphasis() (Iceebe)

  • Wyłączone przyciski są teraz wizualnie zgodne ze specyfikacją Material Design (I47dcb, b/155076924).

  • Komponent FilledTextField obsługuje teraz działanie IME, transformację wizualną i typ klawiatury (I1f9cf, b/155075201).

  • Dodaje parametr strokeWidth do komponentu CircularProgressIndicator, aby dostosować rozmiar obrysu. Aby zmienić rozmiar (wysokość) paska LinearProgressIndicator, możesz użyć modyfikatora Modifier.preferredHeight() lub innego modyfikatora rozmiaru. (Icea16, b/154919081)

  • Dodaje parametr strokeWidth do komponentu CircularProgressIndicator, aby dostosować rozmiar obrysu. Aby zmienić rozmiar (wysokość) paska LinearProgressIndicator, możesz użyć modyfikatora Modifier.preferredHeight() lub innego modyfikatora rozmiaru. (Icea16, b/154919081)

  • Dodano interfejs API slotu dla ikon na początku i na końcu komponentu FilledTextField oraz obsługę stanu błędu (Ic12e0).

  • Domyślny kolor przycisków FAB i Extended FAB został zmieniony na MaterialTheme.colors.secondary. (I3b9b9, b/154118816)

  • Zastąpiono wszystkie użycia koloru dopuszczającego wartość null w interfejsie API kolorem niedopuszczającym wartości null i zamiast wartości null użyto Color.Unset (Iabaa7).

  • Zmieniono nazwę EdgeInsets na InnerPadding. Zmieniono nazwę parametru innerPadding w przyciskach Material na padding. (I66165)

  • Suwak jest teraz bezstanowy. Użytkownicy będą musieli samodzielnie przekazywać i aktualizować stan, tak jak w przypadku innych elementów sterujących. (Ia00aa)

  • Usunięto komponent StaticDrawer. W razie potrzeby użyj elementu Box o szerokości określonej w specyfikacji materiału (I244a7).

  • Dodano implementację pola tekstowego wypełnionego w Material Design (Ic75cd)

  • Dodano parametr modyfikatora do elementu ListItem i zmieniono kolejność parametrów, aby promować końcową treść wyrażenia lambda (I66e21)

  • Dodaje parametr konstruktora defaultFontFamily do klasy Typography, co umożliwia określenie domyślnej rodziny czcionek, która będzie używana w przypadku wszystkich podanych stylów tekstowych, które nie mają ustawionej rodziny. (I89d07)

  • Tymczasowo usunęliśmy tabele danych o materiałach z interfejsu API. (Iaea61)

  • Zmiana nazw parametrów w kompozycji Divider (Ic4373)

  • dzieci (Ia6d19),

  • Usuwa MaterialTheme.emphasisLevels. Zamiast tego użyj EmphasisAmbient.current, aby pobrać poziomy podkreślenia (Ib5e40).

  • System motywów kształtów jest aktualizowany zgodnie ze specyfikacją Material Design. Możesz teraz podać małe, średnie i duże kształty, które będą używane przez większość komponentów (Ifb4d1).

  • Zmieniliśmy interfejsy API MaterialTheme, takie jak MaterialTheme.colors() i MaterialTheme.typography(), tak aby były właściwościami, a nie funkcjami. Usunięcie nawiasów z dotychczasowych wywołań nie powinno spowodować żadnych zmian w działaniu. (I3565a)

  • Przebudowano interfejsy FloatingActionButton API, aby akceptowały lambdy z funkcjami kompozycyjnymi zamiast typów prostych. Aktualne przykłady użycia znajdziesz w informacjach o używaniu. (I00622)

  • dodanie parametru enabled do komponentów Checkbox, Switch i Toggleable (I41c16)

  • Efekt falowania jest teraz modyfikatorem. Chociaż element Clickable nie został jeszcze przekonwertowany, zalecane użycie to Clickable(onClick = { ... }, modifier = ripple()) (Ie5200, b/151331852, b/150060763).

  • Komponenty Surface i Card zostały przeniesione z androidx.ui.material.surface do androidx.ui.material (I88a6d, b/150863888)

  • Komponenty Button, FloatingActionButton i Clickable mają teraz osobny parametr enabled. Niektóre parametry w elemencie Button zmieniły nazwę lub kolejność. (I54b5a)

  • Zmieniliśmy nazwę Image na ImageAsset, aby lepiej odróżnić dane Image od nadchodzącego komponentu Image, który będzie używany do tworzenia układu i rysowania treści. _Body:Utworzono metodę rozszerzającą w klasie android.graphics.Bitmap, Bitmap.asImageAsset(), aby utworzyć instancję klasy ImageAsset przydatną do łączenia tradycyjnego tworzenia aplikacji na Androida z platformą Compose (Id5bbd).

  • Usunięto interfejs Snackbar API z parametrami String na rzecz używania przeciążenia, które akceptuje lambdy z możliwością komponowania. Zobacz zaktualizowane przykłady informacji o użyciu (I55f80)

  • Przebudowano interfejsy Tab API, aby akceptowały wyrażenia lambda text i icon (Ia057e).

  • Dodano komponent BottomNavigation. Informacje o używaniu znajdziesz w dokumentacji i przykładach (I731a0).

  • Dodano komponenty Icon, IconButton i IconToggleButton, a usunięto AppBarIcon. Możesz bezpośrednio zastąpić istniejące użycia AppBarIcon elementem IconButton, a będą one teraz miały prawidłowy docelowy element dotykowy. Informacje o użyciu znajdziesz w przykładach, a ikony Material Icons, których możesz używać bezpośrednio w tych komponentach, znajdziesz w sekcji Ikony. (I96849)

  • Zastąpiono ButtonStyle odrębnymi funkcjami i usunięto przeciążenie tekstu (ciągu znaków). Informacje o użyciu znajdziesz w zaktualizowanych przykładach. (If63ab, b/146478620, b/146482131)

  • zmiana nazwy modyfikatora Border na DrawBorder (I8ffcc)

  • W przypadku elementu LayoutCoordinates nie ma już właściwości position. Właściwość position nie ma sensu w przypadku modyfikatorów układu, obrotu ani skalowania. Zamiast tego deweloperzy powinni używać funkcji parentCoordinates i childToLocal() do obliczania przekształcenia z jednego obiektu LayoutCoordinate na inny.

    W przypadku właściwości size w klasie LayoutCoordinates używany jest typ IntPxSize zamiast PxSize. Układy korzystają z rozmiarów w pikselach, więc wszystkie rozmiary układów powinny być liczbami całkowitymi, a nie wartościami zmiennoprzecinkowymi. (I9367b)

  • Zmiany powodujące niezgodność w interfejsie API ambients. Szczegółowe informacje znajdziesz w logu i Ambient<T> dokumentacji (I4c7ee, b/143769776).

  • Dodano komponent materiału rusztowania. Implementacje szkieletu (I7731b)

  • Zastąpiono DrawBorder na rzecz modyfikatora obramowania (Id335a)

Poprawki błędów

  • FocusModifier został wycofany na rzecz Modifier.focus, Modifier.focusRequester i Modifier.focusObserver. FocusState i FocusDetailedState zostały wycofane na rzecz FocusState2 (I46919, b/160822875, b/160922136).
  • Komponenty VerticalScroller i HoriziontalScroller zostały wycofane. Użyj komponentów ScrollableColumn i ScrollableRow, aby wbudować funkcje z zachowaniem i parametrami Column/Row, lub użyj modyfikatorów Modifier.verticalScroll i Modifier.horizontalScroll we własnym elemencie. Podobnie ScrollerPosition został wycofany na rzecz ScrollState' (I400ce, b/157225838, b/149460415, b/154105299).
  • Interfejsy API Modifier.draggable i Modifier.scrollable zostały zmodyfikowane. Właściwość DragDirection została usunięta na rzecz właściwości Orientation. Uprościliśmy stan wymagany w przypadku elementów przewijanych. Klasa ScrollableState została zmieniona na ScrollableController (Iab63c, b/149460415).
  • runOnIdleCompose zmienił(a) nazwę na runOnIdle (I83607)
  • Właściwości semantyczne pojedynczej wartości używają teraz stylu wywoływania. Na przykład „semantics { hidden = true }” jest teraz zapisywane jako „semantics { hidden() }”. (Ic1afd, b/145951226, b/145955412)
  • Zmieniliśmy nazwy kilku interfejsów API do testowania, aby były bardziej intuicyjne. Wszystkie interfejsy API findXYZ zostały zmienione na onNodeXYZ. Wszystkie interfejsy API doXYZ zostały zmienione na performXYZ. (I7f164)
  • Interfejs Transition API został zmieniony tak, aby zwracał wartość TransitionState zamiast przekazywać ją do elementów podrzędnych. Dzięki temu interfejs API jest bardziej spójny z interfejsami animate(). (I24e38)
  • Dodano klasę jednostki IntBounds, która reprezentuje granice pikseli w liczbach całkowitych z układu. Interfejs API PopupPositionProvider został zaktualizowany, aby z niego korzystać. (I0d8d0, b/159596546)
  • Do narzędzi do wyszukiwania testów dodano nowy opcjonalny flag useUnmergedTree. (I2ce48)
  • Usunięto nieaktualne interfejsy API do testowania rozmiaru. (Iba0a0)
  • Usunięto klasę wbudowaną Shader, która opakowywała klasę oczekiwaną NativeShader. Zmieniono nazwę klasy NativeShader na Shader. Klasa wbudowana Shader nie wnosiła niczego wartościowego do interfejsu API i była klasą wbudowaną, więc używaj bezpośrednio klasy NativeShader. (I25e4d)
  • Wyskakujące okienka, okna dialogowe i menu dziedziczą teraz kontekstowy motyw MaterialTheme (Ia3665, b/156527485).
  • Menu DropdownMenu w Material Design są teraz przewijane. (Ide699)
  • Usunięto parametr kierunku układu z bloku miary funkcji Layout(). Kierunek układu jest jednak dostępny w wywołaniu zwrotnym za pomocą obiektu zakresu pomiaru (Ic7d9d).
  • W interfejsach API najwyższego poziomu używaj AnimationSpec zamiast AnimationBuilder, aby wyjaśnić koncepcję statycznej specyfikacji animacji. Ulepsz DSL przejścia, usuwając wymaganie lambdy do tworzenia specyfikacji animacji, takich jak tween i spring. Zamiast tego przyjmują one bezpośrednio parametry konstruktora. – Zwiększenie ogólnej łatwości użycia AnimationSpec przez udostępnienie konstruktorów zamiast polegania na konstruktorach. (Ica0b4)
  • Przycisk „Przełącz teraz” jest wyłączony, gdy wartość enabled jest ustawiona na false (If4624, b/155941869, b/159331694).
  • Aby uniknąć pomyłki z Modifier.testTag, zmieniliśmy nazwę Modifier.tag na Modifier.layoutId. (I995f0)
  • Pozycje liczb całkowitych w liniach wyrównania zwracane przez Placeable#get(AlignmentLine) nie są już wartościami null. Jeśli wyszukiwana linia wyrównania nie istnieje, zwracana jest wartość AlignmentLine.Unspecified. (I896c5, b/158134875)
  • Zmieniono klasę Radius na klasę wbudowaną. Usunięto metody tworzenia elementów towarzyszących na rzecz konstruktora funkcji z parametrem domyślnym, aby promień wzdłuż osi Y był zgodny z obowiązkowym parametrem promienia wzdłuż osi X.

    Zaktualizowano DrawScope.drawRoundRect, aby używać jednego parametru Radius zamiast 2 oddzielnych wartości zmiennoprzecinkowych dla promienia wzdłuż osi X i Y (I46d1b).

  • Aby zmniejszyć liczbę klas używanych do reprezentowania informacji o pozycjonowaniu, zamiast klasy PxPosition używaj klasy Offset. Dzięki temu można korzystać z zalet klasy wbudowanej, aby używać typu long do pakowania 2 wartości zmiennoprzecinkowych reprezentujących przesunięcia x i y. (I3ad98)

  • Zastąpiono użycie klasy Px w różnych klasach kompozycji w ramach dużego refaktoryzacji, aby w przypadku parametrów pikseli używać tylko typów Dp i podstawowych. Usunięto całą klasę Px (I3ff33)

  • Komponent przełączany został wycofany. Zamiast tego użyj Modifier.toggleable (I35220, b/157642842)

  • W ramach dużych zmian w kodzie zastąpiono użycie klasy Px w różnych klasach Compose, aby w przypadku parametrów pikseli używać tylko typów Dp i pierwotnych (I086f4).

  • W ramach dużego refaktoryzacji zastąpiono użycie klasy Px w różnych klasach kompozycji, aby w przypadku parametrów pikseli używać tylko typów Dp i pierwotnych (Id3434).

  • Zastąpiono użycie klasy Px w różnych klasach Compose w ramach dużego refaktoryzowania, aby w przypadku parametrów pikseli używać tylko typów Dp i pierwotnych (I97a5a).

  • Naprawiono problem z nieaktywacją funkcji onClick w przypadku elementów DropdownMenuItem. (I3998b, b/157673259)

  • Element MutuallyExclusiveSetItem został wycofany. Zamiast tego użyj Modifier.selectable. (I02b47, b/157642842)

  • TestTag został wycofany. Zamiast tego użyj Modifier.testTag. (If5110, b/157173105)

  • Kursor w polu tekstowym ma animację migania (Id10a7)

  • Zastąpiono użycie klasy Px w różnych klasach Compose w ramach dużego refaktoryzacji, aby w przypadku parametrów pikseli używać tylko typów Dp i podstawowych (I19d02).

  • Komponent VerticalScroller udostępnia teraz kolumnę od razu po wyjęciu z pudełka. Komponent HorizontalScroller udostępnia teraz wiersz od razu po wyjęciu z pudełka. (Ieca5d, b/157020670)

  • W ramach dużego refaktoryzacji zastąpiono użycie klasy Px w różnych klasach kompozycji, aby w przypadku parametrów pikseli używać tylko typów Dp i podstawowych (Iede0b).

  • Wycofanie funkcji Modifier.semantics zostało cofnięte, aby umożliwić używanie jej w komponentach wyższego poziomu. (I4cfdc)

  • Zmieniliśmy interfejs API modyfikatorów DrawLayer: outlineShape zmieniliśmy na shape i ustawiliśmy domyślną wartość RectangleShape, a także zmieniliśmy go na niepusty; clipToOutline zmieniliśmy na clip; clipToBounds usunęliśmy, ponieważ jest to to samo co clip == true z RectangleShape (I7ef11, b/155075735).

  • Zaktualizowane interfejsy API Compose wyższego poziomu, które udostępniają Canvas, aby zamiast tego udostępniać CanvasScope. Dzięki temu konsumenci nie muszą utrzymywać własnych obiektów Paint. Konsumenci, którzy nadal potrzebują dostępu do elementu Canvas, mogą użyć metody drawCanvas rozszerzenia, która zapewnia wywołanie zwrotne do wydawania poleceń rysowania za pomocą bazowego elementu Canvas. (I80afd)

  • Funkcja kompozycyjna AlignmentLineOffset została wycofana. Zamiast niej używaj modyfikatora relativePaddingFrom(). Kompozycja CenterAlignmentLine została usunięta. (I60107)

  • Zmieniono interfejs API lambda końcowego WithConstraints. Zamiast 2 parametrów ma teraz zakres odbiorcy, który oprócz ograniczeń i kierunku układu udostępnia właściwości minWidth, maxWidth, minHeight i maxHeight w jednostkach dp (I91b9a, b/149979702).

  • Dodano domyślny modyfikator układu defaultMinSizeConstraints, który ustawia ograniczenia rozmiaru na opakowany układ tylko wtedy, gdy przychodzące odpowiednie ograniczenia nie są określone (0 – minimalne ograniczenia, nieskończoność – maksymalne ograniczenia). (I311ea, b/150460257)

  • Usunięto FocusManagerAmbient. Aby uzyskać fokus, użyj FocusModifier.requestFocus. (Ic4826)

  • Utworzono interfejs CanvasScope API, który opakowuje obiekt Canvas, aby udostępniać bezstanowy, deklaratywny interfejs API do rysowania. Przekształcenia są zawarte w zakresie własnego odbiornika, a informacje o rozmiarze są również ograniczone do odpowiednich granic wstawki. Nie wymaga to od użytkownika utrzymywania własnego obiektu stanu Paint do konfigurowania operacji rysowania.

    Dodano CanvasScopeSample, a także zaktualizowano aplikację w wersji demonstracyjnej, aby zawierała demonstrację grafiki deklaratywnej (Ifd86d).

  • Dodanie możliwości dostosowania koloru kursora w elemencie TextField (I6e33f)

  • Wartość TextFieldValue używana z polem TextField może teraz przetrwać ponowne utworzenie aktywności, jeśli jest używana w ten sposób: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce, b/155075724)

  • Zmieniono nazwę LayoutModifier2 na LayoutModifier. (Id29f3)

  • Usunięto wycofany interfejs LayoutModifier. (I2a9d6)

  • Zastąpiono parametr focusIdentifier w komponencie CoreTextField/TextField parametrem FocusNode, aby zintegrować go z podsystemem fokusu. (I7ea48)

  • Funkcje pomiarów wewnętrznych w kompozycjach i modyfikatorach kompozycji 2 mają teraz odbiornik IntrinsicMeasureScope, który udostępnia interfejs API zapytań o wartości wewnętrzne z niejawnym kierunkiem kompozycji. (Id9945)

  • Dodano nowy modyfikator Modifier.zIndex(), który umożliwia kontrolowanie kolejności rysowania elementów podrzędnych w tym samym układzie nadrzędnym. Właściwość elevation w modifikatorze DrawLayerModifier została zmieniona na shadowElevation i nie kontroluje już kolejności rysowania. Zmieniono kolejność parametrów funkcji DrawShadow: pierwszy to teraz elevation, a drugi to shape z domyślnym RectangleShape. (I20150, b/152417501)

  • RectangleShape przeniesiono z androidx.ui.foundation.shape.* do androidx.ui.graphics.* (Ia74d5, b/154507984)

  • Aktualizacja interfejsu TextField API – scalenie wywołań zwrotnych onFocus i onBlur w jedno wywołanie zwrotne onFocusChange(Boolean) z parametrem (I66cd3)

  • Dodaliśmy parametry verticalGravity i horizontalGravity odpowiednio do wiersza i kolumny. (I7dc5a)

  • Zaktualizowano funkcje wrapContentWidth i wrapContentHeight, aby oczekiwały wyrównania w pionie lub poziomie, a nie dowolnego wyrównania. Modyfikator grawitacji został zaktualizowany, aby akceptować wyrównanie w pionie lub poziomie. Wiersz, Kolumna i Stos zostały zaktualizowane, aby obsługiwać niestandardowe ciągłe wyrównania. (Ib0728)

  • Utworzono interfejs PixelMap API, który umożliwia wysyłanie zapytań o informacje o pikselach z obiektu ImageAsset. (I69ad6)

  • Usuwa ProvideContentColor, zamiast tego używa bezpośrednio ContentColorAmbient z Providers (Iee942).

  • Moduł ui-text-compose został zmieniony na ui-text. Moduł ui-text zawiera teraz funkcje kompozycyjne CoreText i CoreTextField (Ib7d47).

  • Moduł ui-text został zmieniony na ui-text-core (I57dec)

  • Przeniesiono funkcje kompozycyjne ui-framework/CoreText i CoreTextField do pakietu ui-text-compose. Możesz uwzględnić ui-text-compose w swoim projekcie. (I32042)

  • Ulepszenie interfejsu DrawModifier API:

    • Zmieniono zakres odbiornika funkcji draw() na ContentDrawScope
    • Usunięto wszystkie parametry funkcji draw()
    • DrawScope ma taki sam interfejs jak poprzedni CanvasScope
    • ContentDrawScope ma metodę drawContent() (Ibaced, b/152919067)
  • runOnIdleCompose i runOnUiThread są teraz funkcjami globalnymi, a nie metodami w ComposeTestRule. (Icbe8f)

  • [Mutable]State property delegate operators moved to extensions to support Kotlin 1.4 property delegate optimizations. Aby nadal używać funkcji by state { ... } lub by mutableStateOf(...), wywołujący muszą dodać importy. (I5312c)

  • Dodano positionInParent i boundsInParent dla LayoutCoordinates. (Icacdd, b/152735784)

  • Komponent ColoredRect został wycofany. Zamiast tego użyj Box(Modifier.preferredSize(width, height).drawBackground(color)). (I499fa, b/152753731)

  • Zmieniono nazwę LayoutResult na MeasureResult. (Id8c68)

  • Dodano LayoutModifier2, nowy interfejs API do definiowania modyfikatorów układu; wycofano LayoutModifier (If32ac).

  • Zastąpienie operatora modyfikatora plus funkcjami rozszerzenia fabryki (I225e4)

  • Funkcja Draggable została przeniesiona do modyfikatora (Id9b16, b/151959544)

  • Komponent ParentData został wycofany. Możesz utworzyć modyfikator, który implementuje interfejs ParentDataModifier, lub użyć modyfikatora LayoutTag, jeśli chcesz tylko otagować elementy podrzędne układu, aby można było je rozpoznać w bloku pomiaru. (I51368, b/150953183)

  • Wycofany komponent kompozycyjny Center. Należy go zastąpić modyfikatorem LayoutSize.Fill + LayoutAlign.Center lub jednym z kompozycji Box lub Stack z odpowiednimi modyfikatorami (Idf5e0).

  • Dodano interfejs VectorPainter API, który zastępuje dotychczasowy interfejs subcomposition API w przypadku grafiki wektorowej. Wynikiem subkompozycji jest obiekt VectorPainter zamiast DrawModifier. Wycofano poprzednie funkcje kompozycyjne DrawVector na rzecz VectorPainter.

    Zmiana nazwy interfejsu Image(Painter) API na PaintBox(Painter). Utworzenie komponentu Vector, który działa jak komponent Image, ale zamiast ImageAsset używa VectorAsset (I9af9a, b/149030271).

  • Zmieniono nazwę LayoutFlexible na LayoutWeight. Zmieniliśmy nazwę parametru „tight” na „fill”. (If4738)

  • Usunięto RepaintBoundary na rzecz DrawLayerModifier (I00aa4)

  • Funkcja DrawVector została zmieniona z zwykłej funkcji typu „composable” na funkcję zwracającą modyfikator drawVector(), który rysuje wektor jako tło układu. (I7b8e0)

  • Funkcja typu „composable” Opacity została zastąpiona modyfikatorem drawOpacity. (I5fb62)

  • Zastąp funkcję typu „composable” Clip modyfikatorem drawClip(). DrawClipToBounds to wygodny modyfikator do użycia, gdy chcesz przyciąć tylko do granic warstwy w kształcie prostokąta. (If28eb)

  • Funkcja typu „composable” DrawShadow została zastąpiona modyfikatorem drawShadow(). Cienie są teraz rysowane w ramach modyfikatora warstwy. (I0317a)

  • Dodano LayerModifier, modyfikator, który umożliwia dodanie RenderNode do Layout. Umożliwia ustawianie przycinania, krycia, obrotu, skalowania i cieni. Zastąpi on RepaintBoundary. (I7100d, b/150774014)

  • Klasa androidx.compose.ViewComposer została przeniesiona do androidx.ui.node.UiComposer. Klasa androidx.compose.Emittable została usunięta. Było to zbędne w przypadku ComponentNode. androidx.compose.ViewAdapters zostało usunięte. Nie są już obsługiwane. Funkcja Compose.composeInto została wycofana. Użyj w zamian zasady setContent lub setViewContent. Metoda Compose.disposeComposition została wycofana. Zamiast tego użyj metody dispose na obiekcie Composition zwróconym przez setContent. Funkcja androidx.compose.Compose.subcomposeInto została przeniesiona do androidx.ui.core.subcomposeInto. Funkcja ComponentNode#emitInsertAt została zmieniona na ComponentNode#insertAt. Funkcja ComponentNode#emitRemoveAt została zmieniona na ComponentNode#removeAt. Funkcja ComponentNode#emitMode została zmieniona na ComponentNode#move (Idef00).

  • Utworzono komponent CreatedImage, który obsługuje zmianę rozmiaru i układu, a także rysuje na ekranie dany element ImageAsset. Ten komponent obsługuje też rysowanie dowolnej instancji Painter z uwzględnieniem jej rozmiaru wewnętrznego oraz obsługę danego stałego rozmiaru lub rozmiaru minimalnego (Ibcc8f).

  • Wycofany komponent Wrap. Można go zastąpić modyfikatorem LayoutAlign lub funkcją kompozycyjną Stack (Ib237f).

  • Dodano parametr LayoutDirection do funkcji WithConstraints (I6d6f7)

  • Umożliwiliśmy propagowanie kierunku układu z węzła układu nadrzędnego do węzłów podrzędnych. Dodano modyfikator kierunku układu. (I3d955)

  • Komponent stosu obsługuje kierunek od prawej do lewej (Ic9e00)

  • Funkcja kompozycyjna DrawShape została usunięta. Zamiast tego użyj modyfikatora DrawBackground. (I7ceb2)

  • Obsługa kierunku od prawej do lewej w modyfikatorze LayoutPadding (I9e8da)

  • Dodano komponent AdapterList, czyli listę przewijaną, która tylko komponuje i układa widoczne elementy. Obecnie znane problemy obejmują to, że jest on tylko pionowy i nie obsługuje w pełni wszystkich przypadków zmian w jego elementach podrzędnych. (Ib351b)

  • Zmieniliśmy flagę ComposeFlags.COMPOSER_PARAM na true, co spowoduje zmianę strategii generowania kodu w przypadku wtyczki do tworzenia. W uproszczeniu powoduje to generowanie funkcji z adnotacją @Composable z dodatkowym parametrem syntetycznym, który jest przekazywany do kolejnych wywołań funkcji z adnotacją @Composable, aby środowisko wykonawcze mogło prawidłowo zarządzać wykonaniem. Jest to istotna zmiana binarna, która jednak powinna zachować zgodność na poziomie źródła we wszystkich dozwolonych przypadkach użycia funkcji Compose. (I7971c)

  • Dodano komponent obszaru roboczego. Ten komponent zajmuje pewną przestrzeń (określoną przez użytkownika) i umożliwia rysowanie za pomocą CanvasScope (I0d622).

  • Parametry Density i DensityScope zostały połączone w jeden interfejs. Zamiast ambientDensity() możesz teraz używać DensityAmbient.current. Zamiast withDensity(density) używaj with(density) (I11cb1)

  • Zmieniono LayoutCoordinates, aby providedAlignmentLines było zbiorem zamiast mapy, a LayoutCoordinates implementowało operator get() zamiast pobierania wartości. Ułatwia to modyfikatorom modyfikowanie co najmniej jednej wartości zestawu bez tworzenia nowej kolekcji dla każdego modyfikatora. (I0245a)

  • Elementy przewijane działają teraz tak jak w przypadku gestu szybkiego przesunięcia na urządzeniach z Androidem. (I922af, b/147493715)

  • Ulepszenia interfejsu API ograniczeń (I0fd15)