Utwórz materiał

Twórz interfejsy użytkownika Jetpack Compose z gotowymi do użycia komponentami Material Design. Jest to punkt wejścia wyższego poziomu Compose, zaprojektowany z myślą o dostarczaniu komponentów pasujących do tych opisanych na stronie www.material.io.
Najnowsza aktualizacja Wersja stabilna Kandydat do publikacji Wersja Beta Wersja alfa
20 marca 2024 r. 1.6.4 - - 1.7.0-alfa05

Struktura

Tworzenie stanowi połączenie 7 identyfikatorów grupy Maven w usłudze androidx. Każda grupa zawiera wybrany podzbiór funkcji z własnym zestawem informacji o wersjach.

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

GrupaOpis
compose.animation,Twórz animacje w aplikacjach Jetpack Compose, aby zwiększyć wygodę użytkowników.
compose.buildr,Przekształć funkcje @Composable i włącz optymalizacje za pomocą wtyczki kompilatora Kotlin.
compose.foundationPisz aplikacje Jetpack Compose, korzystając z gotowych elementów składowych i rozszerzaj podstawy do tworzenia własnych elementów systemu.
compose.material,Twórz interfejsy użytkownika Jetpack Compose z gotowymi do użycia komponentami Material Design. Jest to punkt wejścia wyższego poziomu Compose, zaprojektowany z myślą o dostarczaniu komponentów pasujących do tych opisanych na stronie www.material.io.
compose.material3,Twórz interfejsy użytkownika Jetpack Compose za pomocą komponentów Material Design 3, czyli nowej ewolucji Material Design. Material 3 zawiera zaktualizowane motywy i komponenty oraz funkcje personalizacji Material You, takie jak dynamiczny kolor. Został zaprojektowany tak, aby zachować spójność z nowym stylem wizualnym i interfejsem systemu Androida 12.
compose.runtime,Podstawowe elementy modelu programowania i zarządzania stanem w usłudze Compose, a także podstawowe środowisko wykonawcze, na które ma być kierowana wtyczka Compose Compiler.
compose.ui;Podstawowe komponenty interfejsu tworzenia wiadomości niezbędne do interakcji z urządzeniem, w tym układ, rysowanie i wprowadzanie tekstu.

Deklarowanie zależności

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

W pliku build.gradle aplikacji lub modułu dodaj zależności artefaktów, których potrzebujesz:

Odlotowy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.11"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.11"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

Opinia

Twoja opinia pomoże nam ulepszyć Jetpack. Daj nam znać, jeśli znajdziesz nowe wydania lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nową bibliotekę, przejrzyj problemy z tą biblioteką. Możesz oddać głos w ramach istniejącego problemu, klikając przycisk gwiazdki.

Utwórz nowy numer

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

Wersja 1.7

Wersja 1.7.0-alfa05

20 marca 2024 r.

Aplikacja androidx.compose.material:material-*:1.7.0-alpha05 została zwolniona. Wersja 1.7.0-alpha05 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Flaga ScaffoldSubcomposeInMeasureFix została usunięta. (I67363)

Wersja 1.7.0-alfa04

6 marca 2024 roku

Aplikacja androidx.compose.material:material-*:1.7.0-alpha04 została zwolniona. Wersja 1.7.0-alpha04 zawiera te zatwierdzenia.

Nowe funkcje

Wersja 1.7.0-alfa03

21 lutego 2024 r.

Aplikacja androidx.compose.material:material-*:1.7.0-alpha03 została zwolniona. Wersja 1.7.0-alpha03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Gra BottomDrawer została zmieniona z eksperymentalnej na stabilną. BottomDrawerState prezentuje teraz postęp jako funkcję, co umożliwia wysyłanie zapytań o postępy między konkretnymi celami. BottomDrawerState umożliwia teraz dostosowanie specyfikacji animacji, a confirmStateChange nie jest już końcowym lambda. (I9c029, b/261423850)
  • Gra BackdropScaffold została zmieniona z eksperymentalnej na stabilną. Zgodnie z wytycznymi specyfikacja animacji ma teraz postać tween. Parametr snackbarHost funkcji BackdropScaffold nie jest już ostatnim parametrem, który pozwala uniknąć pomyłek związanych z końcowymi znakami lambda. BackdropScaffoldState udostępnia interfejs API progress(from, to), aby wysyłać zapytania o postępy między kotwicami. (I73f48, b/261423218)
  • Standardowe arkusze dolne zostały przekształcone w „eksperymentalne” na stabilne. Wycofane konstruktory zostały usunięte. Specyfikacja animacji jest teraz wersją dla starszych dzieci, zgodnie z wytycznymi. (I3c1a8, b/278692145, b/261409034)
  • Modalne arkusze dolne zostały przekształcone w „eksperymentalne” na stabilne. Wycofane konstruktory zostały usunięte. Zgodnie z wytycznymi specyfikacja animacji ma teraz postać tween. (Ic53f4, b/278692145, b/266780235, b/261409034)

Poprawki błędów

  • Naprawiono błąd, który powodował awarię BackdropScaffold w określonych scenariuszach w połączeniu z polem LookaheadScope. (I51396)
  • Usunięto kompozycję podrzędną w elemencie BottomSheetScaffold, aby poprawić wydajność. Naprawiono błąd, który powodował awarię BottomSheetScaffold w określonych sytuacjach w połączeniu z atrybutem LookaheadScope. (I2f90c)
  • Usunięto skład podrzędny w elemencie ModalBottomSheetLayout, aby poprawić wydajność. (I7a025)

Wersja 1.7.0-alfa02

7 lutego 2024 r.

Aplikacja androidx.compose.material:material-*:1.7.0-alpha02 została zwolniona. Wersja 1.7.0-alpha02 zawiera te zatwierdzenia.

Wersja 1.7.0-alfa01

24 stycznia 2024 r.

Aplikacja androidx.compose.material:material-*:1.7.0-alpha01 została zwolniona. Wersja 1.7.0-alpha01 zawiera te zatwierdzenia.

Zmiany w działaniu

  • Komponenty materiałowe zostały przeniesione, aby korzystały z nowych interfejsów API Echa i nie wysyłają już zapytań dotyczących interfejsu RippleTheme.

Zmiany w interfejsie API

  • Interfejsy rememberRipple i RippleTheme zostały wycofane z Material-ripple. Do bibliotek Material i innych systemów projektowania dodano nowe interfejsy API ripple i interfejsów API RippleConfiguration.

  • Komponenty materiału, które wcześniej akceptowały atrybut MutableInteractionSource i domyślnie zapamiętywały { MutableInteractionSource() }, teraz akceptują MutableInteractionSource z wartością null i domyślnie przyjmuje wartość null. Jeśli nie podnosisz ani nie używasz interfejsu MutableInteractionSource, musisz przekazywać wartość null. Dzięki temu niektóre komponenty mogą leniwie tworzyć instancje tylko wtedy, gdy to konieczne, co zwiększa wydajność. Zalecamy też wprowadzenie podobnych zmian we własnych komponentach.

Wersja 1.6

Wersja 1.6.4

20 marca 2024 r.

Aplikacja androidx.compose.material:material-*:1.6.4 została zwolniona. Wersja 1.6.4 zawiera te zatwierdzenia.

Wersja 1.6.3

6 marca 2024 roku

Aplikacja androidx.compose.material:material-*:1.6.3 została zwolniona. Wersja 1.6.3 zawiera te zatwierdzenia.

Poprawki błędów

  • Popraw regresję w elemencie ExposedDropdownMenu, aby można było go ponownie zaznaczyć. (c0e0ed, b/323694447)

Wersja 1.6.2

21 lutego 2024 r.

Aplikacja androidx.compose.material:material-*:1.6.2 została zwolniona. Wersja 1.6.2 zawiera te zatwierdzenia.

Wersja 1.6.1

7 lutego 2024 r.

Aplikacja androidx.compose.material:material-*:1.6.1 została zwolniona. Wersja 1.6.1 zawiera te zatwierdzenia.

Wersja 1.6.0

24 stycznia 2024 r.

Aplikacja androidx.compose.material:material-*:1.6.0 została zwolniona. Wersja 1.6.0 zawiera te zatwierdzenia.

Wersja 1.6.0-rc01

10 stycznia 2024 r.

Aplikacja androidx.compose.material:material-*:1.6.0-rc01 została zwolniona. Wersja 1.6.0-rc01 zawiera te zatwierdzenia.

Wersja 1.6.0-beta03

13 grudnia 2023 r.

Aplikacja androidx.compose.material:material-*:1.6.0-beta03 została zwolniona. Wersja 1.6.0-beta03 zawiera te zatwierdzenia.

Wersja 1.6.0-beta02

29 listopada 2023 r.

Aplikacja androidx.compose.material:material-*:1.6.0-beta02 została zwolniona. Wersja 1.6.0-beta02 zawiera te zatwierdzenia.

Wersja 1.6.0-beta01

15 listopada 2023 r.

Aplikacja androidx.compose.material:material-*:1.6.0-beta01 została zwolniona. Wersja 1.6.0-beta01 zawiera te zatwierdzenia.

Wersja 1.6.0-alfa08

18 października 2023 r.

Aplikacja androidx.compose.material:material-*:1.6.0-alpha08 została zwolniona. 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żej zawartości. (0c4ecc, b/272336962)

Wersja 1.6.0-alfa07

4 października 2023 r.

Aplikacja androidx.compose.material:material-*:1.6.0-alpha07 została zwolniona. Wersja 1.6.0-alpha07 zawiera te zatwierdzenia.

  • Aktualizacje zależności

Wersja 1.6.0-alfa06

20 września 2023 r.

Aplikacja androidx.compose.material:material-*:1.6.0-alpha06 została zwolniona. Wersja 1.6.0-alpha06 zawiera te zatwierdzenia.

Zmiana w związku z naruszeniem zachowania

  • Usunięto funkcje związane z szufladą z BottomSheetScaffold. Aby uzyskać dostęp do poprzedniej funkcji, umieść BottomSheetScaffold w panelu kompozycyjnym. Przykład znajdziesz tutaj: BottomSheetScaffoldWithDrawerSample. (I1dcc8)

Zmiany w interfejsie API

  • Wprowadziliśmy tymczasową flagę, która określa, czy narzędzie Scaffold ma dokonywać pomiarów elementów podrzędnych podczas pomiaru czy w trakcie umieszczania urządzenia. Domyślnie będzie to mierzone w pomiarach. Jeśli masz problemy z nowym działaniem, zgłoś nam to. (If6e3b)

Wersja 1.6.0-alfa05

6 września 2023 r.

Aplikacja androidx.compose.material:material-*:1.6.0-alpha05 została zwolniona. Wersja 1.6.0-alpha05 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodano obsługę automatycznego odbicia lustrzanego ikon w przypadku układów od prawej do lewej. Ikony w modułach material-icons-core i material-icons-extended mają teraz dodatkowe zestawy ikon do automatycznego odbicia lustrzanego, gdy pozwala na to ikona. Nowe zestawy są poprzedzone prefiksem Icons.AutoMirrored.Filled... itp. i utrzymują ikony, które automatycznie powielają w układach RTL. Listę ikon, które można automatycznie powielić, znajdziesz na liście ikon Materiał.

Zmiany w interfejsie API

  • Dodano obsługę automatycznego odbicia lustrzanego ikon w przypadku układów od prawej do lewej. Ikony w modułach material-icons-core i material-icons-extended mają teraz dodatkowe zestawy ikon do automatycznego odbicia lustrzanego, gdy pozwala na to ikona. Nowe zestawy są poprzedzone prefiksem Icons.AutoMirrored.Filled... itp. i utrzymują ikony, które automatycznie powielają w układach RTL. Listę ikon, które można automatycznie powielić, znajdziesz na liście ikon Materiał. Wcześniej określone właściwości ikon tych ikon są teraz oznaczone jako wycofane i zawierają sugestie dotyczące blokowania zastępczego, które ułatwiają migrację. Jeśli nie masz specjalnej obsługi lustrzanej ikon w RTL, zalecamy przejście na nowy zestaw ikon. np. wartość Icons.Filled.ArrowBack powinna mieć postać Icons.AutoMirrored.Filled.ArrowBack. (I4b511).

Wersja 1.6.0-alfa04

23 sierpnia 2023 r.

Aplikacja androidx.compose.material:material-*:1.6.0-alpha04 została zwolniona. Wersja 1.6.0-alpha04 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że niektóre komponenty używające Subcomposition (np. BottomSheetScaffold) w scaffold w LookaheadScope próbowały zbyt wcześnie odczytywać ich rozmiar. (If2c5d)
  • Poprawiono obliczanie wartości offset w funkcji DropdownMenu, więc przesunięcia X zależą wyłącznie od kierunku układu lokalnego. Odsunięcia Y nie są już odwracane, gdy menu znajduje się u dołu ekranu. (Iccc74, b/294103942)
  • Zoptymalizowaliśmy elementy wewnętrzne układu BottomSheetScaffold i naprawiliśmy potencjalny problem z elementem BottomSheetScaffold w elemencie LookaheadLayout. (Ic0afa)

Wersja 1.6.0-alfa03

9 sierpnia 2023 r.

Aplikacja androidx.compose.material:material-*:1.6.0-alpha03 została zwolniona. Wersja 1.6.0-alpha03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Komponenty Material2 mają teraz osobny interfejs API przekazujący interfejs windowInsets na potrzeby Androida od krawędzi do krawędzi. W przeciwieństwie do komponentów material3 komponenty material2 nie obsługują domyślnie elementów wstawionych, więc wartość należy przekazać ręcznie. Wskazówki znajdziesz w odpowiednich przykładach. (I655e8)

Wersja 1.6.0-alfa02

26 lipca 2023 r.

Aplikacja androidx.compose.material:material-*:1.6.0-alpha02 została zwolniona. Wersja 1.6.0-alpha02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Przenosimy zależność gęstości do poziomu 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 w obiektach kompozycyjnych (I51109)
  • Zaktualizowano pliki interfejsu API, aby dodać adnotacje do pomijania zgodności (I8e87a, b/287516207)
  • Dodano nowe wyrównanie początkowe dla zakresu FabPosition (Ib7aea, b/170592777)
  • Interfejs TextFieldColorsWithIcons w materiałach 2 został wycofany i zastąpiony przez niego TextFieldColors. Zastępując leadingIconColor lub trailingIconColor, zastąp też przeciążenie danymi interactionSource. (Id57ed, b/199377790)

Wersja 1.6.0-alfa01

21 czerwca 2023 r.

Aplikacja androidx.compose.material:material-*:1.6.0-alpha01 została zwolniona. Wersja 1.6.0-alpha01 zawiera te zatwierdzenia.

Zmiany w działaniu

  • includeFontPadding domyślnie jest teraz ustawiony jako false w typografii materiału 2. Domyślny styl wysokości wiersza również został zmieniony na Trim.None i Alignment.Center, a jawny styl lineHeight (w sp) został dodany do parametru TextStyle w kolumnie Typography. Jeśli chcesz dostosować te wartości, zapoznaj się z dokumentacją interfejsu API i przeczytaj posta na blogu, w którym znajdziesz szczegółowe objaśnienie tych zmian. (Icabc3, I3f801, I04c03)

Zmiany w interfejsie API

  • Interfejsy API Swipeable materiału zostały wycofane. Zapoznaj się z interfejsami API AnchoredDraggable fundacji, które są zoptymalizowane pod kątem prostych i złożonych zastosowań. (I732e0)

Poprawki błędów

  • BottomSheetState, ModalBottomSheetState i BottomDrawerState udostępnia teraz właściwość postępu wskazującą postęp między bieżącą (zatwierdzoną) kotwicą a najbliższą kotwicą 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.

Aplikacja androidx.compose.material:material-*:1.5.4 została zwolniona. Wersja 1.5.4 zawiera te zatwierdzenia.

Wersja 1.5.3

4 października 2023 r.

Aplikacja androidx.compose.material:material-*:1.5.3 została zwolniona. Ta wersja nie zawiera żadnych zmian

Wersja 1.5.2

27 września 2023 r.

Aplikacja androidx.compose.material:material-*:1.5.2 została zwolniona. Wersja 1.5.2 zawiera te zatwierdzenia.

Wersja 1.5.1

6 września 2023 r.

Aplikacja androidx.compose.material:material-*:1.5.1 została wydana bez zmian. Wersja 1.5.1 zawiera te zatwierdzenia.

Wersja 1.5.0

9 sierpnia 2023 r.

Aplikacja androidx.compose.material:material-*:1.5.0 została zwolniona. Wersja 1.5.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.4.0

Zmiany w interfejsie API

  • Wprowadzono zmiany w interfejsach API shiftable1 w BottomSheetScaffold. Parametr confirmStateChange użytkownika BottomSheetState został zmieniony na confirmValueChange. Parametr progress jest teraz widoczny w postaci liczby zmiennoprzecinkowej. animateTo i snapTo są wewnętrzne. Zamiast nich używaj kolumn expand() i collapse(). Użytkownicy direction i overflow zostali usunięci. Pole offset zostało zastąpione przez requireOffset(). I323b4
  • Oznacz funkcję snapTo w panelu jako nieeksperymentalny interfejs API. (Ib9c18, b/261425368)
  • Dodaliśmy parametr koloru ścieżki dla okrągłych wskaźników postępu oraz limit kreski dla liniowych i okrągłych wskaźników postępu. (Ie668c, b/216325962, b/222964817)
  • Zmieniono nazwę użytkownika ModalBottomSheetState, ModalBottomSheetState.Saver i confirmStateChange użytkownika rememberModalBottomSheetState na confirmValueChange. (Ib48d1)
  • Dodaj Modifier.minimumInteractiveComponentSize. Można go użyć do zarezerwowania rozmiaru co najmniej 48 dp do ujednoznacznienia interakcji polegających na dotknięciu, jeśli element ma być mniejszy. (I33f58, b/258495559)
  • Wprowadzono zmiany w przesuwanych interfejsach API w ModalBottomSheetLayout. Funkcja animacji ModalBottomSheetState nie przyjmuje już parametru animationSpec, a widoczne przesunięcie może mieć teraz wartość null. Aby wymagać przesunięcia, użyj requireOffset. (Ia2e79).
  • Dodawanie adnotacji @JvmDefaultWithCompatibility (I8f206)
  • Zmiany wprowadzone w przesuwanych interfejsach API w interfejsie animateTo systemu ModalDrawer. DrawerState zostały zastąpione metodami otwierania i zamykania, a przesunięcie może mieć wartość null. Aby wymagać przesunięcia, użyj requireOffset. (I3de9e)
  • Zaktualizowano Szuflady i Arkusze, aby prawidłowo opóźniać naciśnięcia, jeśli gesty mogą zmienić się w zdarzenia przewijania.
  • Dodano parametr minLines do elementów Material i Material3 Text, TextField i OutlinedTextField, co umożliwia ustawienie minimalnej wysokości komponentu w postaci liczby wierszy (I4af1d).

Poprawki błędów

  • Naprawiono błąd, który powodował, że interfejs pullRefresh nie zużywał prędkości, co powodowało wyświetlanie dalekim przewijania. Zmieniono też podpis interfejsu API lambda onRelease w tabeli Modifier.pullRefresh, aby zwracać wartość zmiennoprzecinkową dla wykorzystanej prędkości (I7db65, b/266874741).
  • BottomSheetState, ModalBottomSheetState i BottomDrawerState udostępnia teraz właściwość postępu wskazującą postęp między bieżącą (zatwierdzoną) kotwicą a najbliższą kotwicą w kierunku przesunięcia. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
  • Naprawiono działanie odrzucenia AlertDialog, które było wyświetlane pod działaniem potwierdzenia, gdy działania były nakładane na siebie, aby zmieściły się w szerokości okna. Ta poprawka dostosowuje implementację do specyfikacji Material Design (I029de, b/235454277).
  • Funkcja BottomSheetScaffold nie będzie już uczestniczyć w zagnieżdżonym przewijaniu, gdy zasada gesturesEnabled ma wartość Fałsz. (I634f3, b/215403277)
  • Naprawiono błąd, który powodował awarię pola BottomSheetScaffold po dodaniu pustej treści do przedziałów. (Ib24a5, b/235588730)
  • Poprawiono PullRefreshIndicator przechwytujące zdarzenia kliknięcia lub wskaźnika. (2494256, b/271777421)
  • Rozwiązaliśmy problem, który powodował awarię pliku ModalBottomSheetLayout przy zmianie orientacji ekranu w przypadku wielkości liter skrajnych. 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.

Aplikacja androidx.compose.material:material-*:1.5.0-rc01 została zwolniona. Wersja 1.5.0-rc01 zawiera te zatwierdzenia.

Wersja 1.5.0-beta03

28 czerwca 2023 r.

Aplikacja androidx.compose.material:material-*:1.5.0-beta03 została zwolniona. Wersja 1.5.0-beta03 zawiera te zatwierdzenia.

Poprawki błędów

  • BottomSheetState, ModalBottomSheetState i BottomDrawerState udostępnia teraz właściwość postępu wskazującą postęp między bieżącą (zatwierdzoną) kotwicą a najbliższą kotwicą w kierunku przesunięcia. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)

Wersja 1.5.0-beta02

7 czerwca 2023 r.

Aplikacja androidx.compose.material:material-*:1.5.0-beta02 została zwolniona. Wersja 1.5.0-beta02 zawiera te zatwierdzenia.

Wersja 1.5.0-beta01

24 maja 2023 r.

Aplikacja androidx.compose.material:material-*:1.5.0-beta01 została zwolniona. Wersja 1.5.0-beta01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Przesunięcie pól DrawerState i BottomDrawerState nie może już być wartością null. Zamiast tego zwracają wartość Float.NaN, co oznacza brak przesunięcia. (IE9855)
  • Dodano opcję przekazywania elementu ScrollState podczas tworzenia elementu DropdownMenu lub ExposedDropdownMenu do kontrolowania stanu przewijania w pionie wyświetlanych pozycji menu. (Idb009, b/185304441)
  • Dodaj obsługę włączania/wyłączania gestu ModalBottomSheetLayout, aby użytkownik mógł go skonfigurować na potrzeby bardziej polecanego arkusza u dołu (I40af0)
  • Do elementu BasicText dodano parametr koloru, który umożliwia efektywne animowanie i ustawianie koloru tekstu. (Iffd88, b/246961787)
  • Zmiana nazwy właściwości semantycznej isContainer na isTraversalGroup (I121f6)

Poprawki błędów

  • Naprawiono działanie odrzucenia AlertDialog, które było wyświetlane pod działaniem potwierdzenia, gdy działania były nakładane na siebie, aby zmieściły się w szerokości okna. Ta poprawka dostosowuje implementację do specyfikacji Material Design (I029de, b/235454277).

Wersja 1.5.0-alfa04

10 maja 2023 r.

Aplikacja androidx.compose.material:material-*:1.5.0-alpha04 została zwolniona. Wersja 1.5.0-alpha04 zawiera te zatwierdzenia.

Zmiany w interfejsie API

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

Wersja 1.5.0-alfa03

19 kwietnia 2023 r.

Aplikacja androidx.compose.material:material-*:1.5.0-alpha03 została zwolniona. Wersja 1.5.0-alpha03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Zaktualizuj elementy wewnętrzne BottomDrawer, aby używać nowych interfejsów API SwipeableV2. Z powodu tego urządzenia BottomDrawerState będzie mieć teraz zdefiniowane tylko interfejsy API na poziomie klasy i nie będą dziedziczyć metod/właściwości z klasy SwipeableState. Używamy kompozycji z wewnętrznym elementem SwipeableV2State. Przesunięcie jest teraz właściwością zmiennoprzecinkową z wartością null. Bieżąca wartość i cel przesunięcia są nadal dostępne za pomocą właściwości currentValue i targetValue. Poprzednie metody na poziomie klas, takie jak open/expand/close i właściwości takie jak isOpen/isClosed, będą nadal obsługiwane. (Iad40c, b/178529942, b/220676296)

Poprawki błędów

  • Zaktualizowano elementy wewnętrzne komponentu Switch. Przełącznik będzie teraz wyświetlać podgląd najbliższego (stanu docelowego) podczas przeciągania. (Id90d4).
  • Animowana treść arkusza (np. Modifier.animateContentSize w zawartości arkusza) w języku BottomSheetScaffold została zoptymalizowana i działa już płynnie. (Ia913c, b/270518202, b/254446195)
  • Funkcja BottomSheetScaffold nie będzie już uczestniczyć w zagnieżdżonym przewijaniu, gdy gesturesEnabled ma wartość false. (I634f3, b/215403277)

Wersja 1.5.0-alfa02

5 kwietnia 2023 r.

Aplikacja androidx.compose.material:material-*:1.5.0-alpha02 została zwolniona. Wersja 1.5.0-alpha02 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiono błąd, który powodował awarię pola BottomSheetScaffold po dodaniu pustej treści do przedziałów. (Ib24a5, b/235588730)
  • Poprawiono błąd PullRefreshIndicator przechwytującego kliknięcia lub zdarzenia wskaźnika (2494256, b/271777421)

Wersja 1.5.0-alfa01

22 marca 2023 r.

Aplikacja androidx.compose.material:material-*:1.5.0-alpha01 została zwolniona. Wersja 1.5.0-alpha01 zawiera te zatwierdzenia.

Poprawki błędów

  • Dodaj próbkę ponownego przepływu grupy elementów. Zaktualizuj poziome dopełnienie między elementami podrzędnymi w próbce grupy elementów z jednym wierszem, aby dopasować je do specyfikacji (I3b155).
  • Rozwiązaliśmy problem, który powodował awarię pliku ModalBottomSheetLayout przy zmianie orientacji ekranu w przypadku wielkości liter skrajnych. 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.

Wersja androidx.compose.material:material-*:1.4.3 została opublikowana bez zmian (tylko w przypadku błędu wersji).

Wersja 1.4.2

19 kwietnia 2023 r.

Aplikacja androidx.compose.material:material-*:1.4.2 została zwolniona. Wersja 1.4.2 zawiera te zatwierdzenia.

Wersja 1.4.1

5 kwietnia 2023 r.

Aplikacja androidx.compose.material:material-*:1.4.1 została zwolniona. Wersja 1.4.1 zawiera te zatwierdzenia.

Wersja 1.4.0

22 marca 2023 r.

Aplikacja androidx.compose.material:material-*:1.4.0 została zwolniona. 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 rozmiaru co najmniej 48 dp do ujednoznacznienia interakcji polegających na dotknięciu, jeśli element ma być mniejszy. (I33f58, b/258495559)
  • Wprowadzono zmiany w przesuwanych interfejsach API w ModalDrawer. Pole animateTo klasy DrawerState zostało zastąpione metodami otwierania i zamykania, a przesunięcie może mieć teraz wartość null. Aby wymagać przesunięcia, użyj requireOffset. (I3de9e)
  • Dodano parametr minLines do elementów Material i Material3 Text, TextField i OutlinedTextField, co umożliwia ustawienie minimalnej wysokości komponentu w postaci liczby wierszy (I4af1d).
  • Do parametru BasicText i BasicTextField dodano parametr minLines. Pozwala ustawić minimalną wysokość funkcji kompozycyjnych pod kątem liczby wierszy (I24294, b/122476634)

Wersja 1.4.0-rc01

8 marca 2023 r.

Aplikacja androidx.compose.material:material-*:1.4.0-rc01 została wydana bez zmian. Wersja 1.4.0-rc01 zawiera te zatwierdzenia.

Wersja 1.4.0-beta02

22 lutego 2023 roku

Aplikacja androidx.compose.material:material-*:1.4.0-beta02 została zwolniona. Wersja 1.4.0-beta02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wprowadzono zmiany w przesuwanych interfejsach API w BottomSheetScaffold. Parametr confirmStateChange użytkownika BottomSheetState został zmieniony na confirmValueChange. Parametr progress jest teraz widoczny w postaci liczby zmiennoprzecinkowej. animateTo i snapTo są wewnętrzne. Zamiast nich używaj kolumn expand() i collapse(). Użytkownicy direction i overflow zostali usunięci. Pole offset zostało zastąpione przez requireOffset(). (I323b4)

Poprawki błędów

  • Usunęliśmy role semantyczne z platform z możliwością kliknięcia i wybierania, a także zaktualizowaliśmy komponenty, które używały ich do ustawiania ról za pomocą funkcji modyfikator.semantics (Ibb4ba).
  • Mała aktualizacja rozszerzonych ikon Materiału, która zmienia wypełnione ikony desktop_mac, directions i kitchen. (I65f5e)

Wersja 1.4.0-beta01

8 lutego 2023 r.

Aplikacja androidx.compose.material:material-*:1.4.0-beta01 została zwolniona. Wersja 1.4.0-beta01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Naprawiono błąd, który powodował, że interfejs pullRefresh nie zużywał prędkości, co powodowało wyświetlanie dalekim przewijania. Zmieniono też podpis interfejsu API lambda onRelease w tabeli Modifier.pullRefresh, aby zwracać wartość zmiennoprzecinkową dla wykorzystanej prędkości (I7db65, b/266874741).
  • Przywrócono metodę pobierania właściwości LocalMinimuTouchTargetEnforcement i oznacz ją jako wycofaną i przekieruj na adres LocalMinimumInteractiveComponentEnforcement. (I60dd5)

Wersja 1.4.0-alfa05

25 stycznia 2023 r.

Aplikacja androidx.compose.material:material-*:1.4.0-alpha05 została zwolniona. Wersja 1.4.0-alpha05 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że stan ModalBottomSheetLayout's HalfExpanded był obliczany nieprawidłowo, a arkusz wydawał się pływający. (I8c615, b/265610459)
  • Naprawiliśmy błąd w ModalBottomSheetLayout, który w pewnych okolicznościach powodował awarię arkusza przy przechodzeniu z ukrytego do widocznego obszaru. (Ia9265, b/265444789)

Wersja 1.4.0-alfa04

11 stycznia 2023 r.

Aplikacja androidx.compose.material:material-*:1.4.0-alpha04 została zwolniona. Wersja 1.4.0-alpha04 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano we właściwości semantycznej IsContainer w platformach. Ta właściwość będzie używana w późniejszej zmianie, która określa kolejność przechodzenia między elementami na podstawie semantycznego znaczenia elementów, takich jak powierzchnie. (I63379)
  • Oznacz funkcję snapTo w panelu jako nieeksperymentalny interfejs API. (Ib9c18, b/261425368)
  • Dodaliśmy parametr koloru ścieżki dla okrągłych wskaźników postępu oraz limit kreski dla liniowych i okrągłych wskaźników postępu. (Ie668c, b/216325962, b/222964817)
  • Zmieniono nazwę użytkownika ModalBottomSheetState, ModalBottomSheetState.Saver i confirmStateChange użytkownika rememberModalBottomSheetState na confirmValueChange. (Ib48d1)
  • Więcej wartości null typu zwracanego w przypadku wycofanych ukrytych funkcji (Ibf7b0)
  • Dodaj Modifier.minimumInteractiveComponentSize. Można go użyć do zarezerwowania rozmiaru co najmniej 48 dp do ujednoznacznienia interakcji polegających na dotknięciu, jeśli element ma być mniejszy. (I33f58, b/258495559)
  • Wprowadzono zmiany w przesuwanych interfejsach API w ModalBottomSheetLayout. animateTo ModalBottomSheetState nie przyjmuje już parametru animationSpec, a ujawniony offset może teraz mieć wartość null. Użyj metody requireOffset, aby wymagana była zasada offset. (Ia2e79).

Poprawki błędów

  • Maksymalna szerokość arkusza ModalBottomSheetLayout wynosi teraz 640 dp. (I71a4f, b/234927577)
  • Rozwiązaliśmy problem, który powodował, że aplikacja rememberPullRefreshState nie aktualizowała refreshThreshold i refreshingOffset na przestrzeni czasu. (Ifed10, b/263159832)
  • Postęp dla wskaźników postępu jest teraz poprawnie ograniczony do oczekiwanego zakresu. (I8a7eb, b/262262727)
  • Jeśli ModalBottomSheetState nie otrzymał jeszcze żadnych kotwic, zaktualizuje currentValue bez animacji po wywołaniu metody snapTo lub animateTo, zamiast zgłaszać wyjątek. (I2c91b)
  • Naprawiliśmy stan włączenia w implementacji FilterChip Material 2. (Id326a, b/261329817)
  • Naprawiono błąd polegający na tym, że ModalBottomSheetLayout ulegał awarii, gdyby występowała HalfExpanded przy obróceniu jej z pionowej do poziomej. Upewnij się, że przesyłasz prawidłowy initialValue, na przykład sprawdzając konfigurację. (Ie8df7, b/182882364)
  • Naprawiono błąd polegający na tym, że ModalBottomSheetLayout ulegał awarii, jeśli zawartość arkusza była pusta. ModalBottomSheetLayout zezwala teraz na pusty arkusz. Jeśli zawartość arkusza jest pusta, będzie on miał tylko stan Ukryte. (Ic2288, b/200980998, b/216693030)

Znany problem

  • Podczas aktualizowania z androidx.compose.foundation:1.4.0-alpha03 do androidx.compose.foundation:1.4.0-alpha04 może wystąpić błąd java.lang.NoSuchFieldError. Tutaj został pierwotnie zgłoszony problem. Poprawka została przesłana i będzie dostępna przy następnej aktualizacji tworzenia wiadomości. Aby obejść ten problem, zaktualizuj biblioteki androidx.compose.material i androidx.compose.material3 do najnowszej wersji(1.1.0-alfa04) lub zmień wersję androidx.compose.foundation na 1.4.0-alfa03.

Wersja 1.4.0-alfa03

7 grudnia 2022 r.

Aplikacja androidx.compose.material:material-*:1.4.0-alpha03 została zwolniona. Wersja 1.4.0-alpha03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodawanie adnotacji @JvmDefaultWithCompatibility (I8f206)
  • Wprowadzono zmiany w interfejsach API Swipeable w ModalDrawer. Pole animateTo klasy DrawerState zostało zastąpione metodami open i close, a przesunięcie może mieć wartość null. Aby wymagać przesunięcia, użyj requireOffset. (I3de9e)
  • Dodano interfejs Modifier API do wysyłania zapytań o informacje o przewijaniu elementów nadrzędnych. (I2ba9d, b/203141462).
  • Używane w interfejsie Clickable do prawidłowego opóźnienia interakcji z naciśnięciami, gdy gesty mogą stać się zdarzeniami przewijania.
  • Naprawiono nieprawidłowe opóźnianie zmarszczek Clickables występującego w obrębie elementu Scrollable ViewGroup.
  • Zaktualizowano Szuflady i Arkusze, aby prawidłowo opóźniać naciśnięcia, jeśli gesty mogą zmienić się w zdarzenia przewijania.

Poprawki błędów

  • Naprawiono błąd, który powodował, że PullRefreshIndicator zatrzymywał się po wywołaniu funkcji onRefresh, jeśli stan odświeżania nie był zmieniany na „true”. (Ie2416, b/248274004)

Aktualizacje zależności

  • Interfejs użytkownika tworzenia wiadomości i materiały tworzenia wiadomości zależą teraz od cyklu życia wersji 2.5.1. (I05ab0, b/258038814)

Wersja 1.4.0-alfa02

9 listopada 2022 r.

Aplikacja androidx.compose.material:material-*:1.4.0-alpha02 została zwolniona. Wersja 1.4.0-alpha02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • awaitFirstDown i waitForUpOrCancellation akceptują teraz PointerEventPass, co zapewnia większą elastyczność. (I7579a, b/212091796)
  • Dodano parametr minLines do elementów Material i Material3 Text, TextField i OutlinedTextField, co umożliwia ustawienie minimalnej wysokości komponentu w postaci liczby wierszy (I4af1d).
  • Do elementów BasicText i BasicTextField dodano parametr minLines. Pozwala ustawić minimalną wysokość funkcji kompozycyjnych pod kątem liczby wierszy (I24294, b/122476634)

Wersja 1.4.0-alfa01

24 października 2022 r.

Aplikacja androidx.compose.material:material-*:1.4.0-alpha01 została zwolniona. Wersja 1.4.0-alpha01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano nową metodę awaitEachGesture() do wykrywania gestów. Działanie tej funkcji jest podobne do funkcji forEachGesture(), ale zapętlenie gestów odbywa się tylko w obrębie interfejsu AwaitPointerEventScope, więc zdarzenia nie są pomijane w kolejnych iteracjach.
  • Interfejs forEachGesture() został wycofany i zastąpiony komponentem awaitEachGesture(), ponieważ dopuszcza on utratę zdarzeń między gestami. (Iffc3f, b/251260206)

Wersja 1.3

Wersja 1.3.1

9 listopada 2022 r.

Aplikacja androidx.compose.material:material-*:1.3.1 została zwolniona. Wersja 1.3.1 zawiera te zatwierdzenia.

Wersja 1.3.0

24 października 2022 r.

Aplikacja androidx.compose.material:material-*:1.3.0 została zwolniona. Wersja 1.3.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.2.0

Zmiana powodująca naruszenie zasad

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

Zmiany w interfejsie API

  • Dodaj komponent „Pull-to-Odśwież” do interfejsu Compose (I29168).
  • Zmień nazwę parametru z wartości na wartość w RangeSlider (I3b79a).

Wersja 1.3.0-rc01

5 października 2022 r.

Aplikacja androidx.compose.material:material-*:1.3.0-rc01 została zwolniona. Wersja 1.3.0-rc01 zawiera te zatwierdzenia.

Wersja 1.3.0-beta03

21 września 2022 r.

Aplikacja androidx.compose.material:material-*:1.3.0-beta03 została zwolniona. Wersja 1.3.0-beta03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodawanie komponentu „Pull-to-Odśwież” do interfejsu Compose (I29168)

Wersja 1.3.0-beta02

7 września 2022 roku

Aplikacja androidx.compose.material:material-*:1.3.0-beta02 została zwolniona. Wersja 1.3.0-beta02 zawiera te zatwierdzenia.

Bez zmian od wersji 1.3.0-beta01

Wersja 1.3.0-beta01

24 sierpnia 2022 r.

Aplikacja androidx.compose.material:material-*:1.3.0-beta01 została zwolniona. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.

Zmiana powodująca naruszenie zasad

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

Maksymalna obsługiwana wysokość okien dialogowych i wyskakujących okienka została zmniejszona z 30 do 8 dp. Ta zmiana dotyczy zarówno materiałowych, jak i niestandardowych okien dialogowych i wyskakujących okienek. Ta zmiana ma wyeliminować błąd ułatwień dostępu na urządzeniach z Androidem w wersjach starszych niż S oraz zapewnić, że usługi ułatwień dostępu w tych oknach będą mogły wchodzić w interakcje z zawartością okna lub wyskakującego okienka.

Ta zmiana będzie widoczna tylko w przypadku tworzenia niestandardowego okna dialogowego lub implementacji wyskakującego okienka z wysokością ustawioną na poziomie wyższym niż 8 dp. Rozważ obniżenie wysokości okna lub wyskakującego okienka. Jeśli chcesz zrezygnować z tego nowego działania, rozważ rozwidlenie własnego okna lub wyskakującego okienka z odpowiednimi ustawieniami wysokości. Nie jest to zalecane, ponieważ może to negatywnie wpłynąć na ułatwienia dostępu. To deweloper powinien 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-alfa03

10 sierpnia 2022 r.

Aplikacja androidx.compose.material:material-*:1.3.0-alpha03 została zwolniona. Wersja 1.3.0-alpha03 zawiera te zatwierdzenia.

Wersja 1.3.0-alfa02

27 lipca 2022 roku

Aplikacja androidx.compose.material:material-*:1.3.0-alpha02 została zwolniona. Wersja 1.3.0-alpha02 zawiera te zatwierdzenia.

Wkład z zewnątrz

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

Wersja 1.3.0-alfa01

29 czerwca 2022 r.

Aplikacja androidx.compose.material:material-*:1.3.0-alpha01 została zwolniona. Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Zmień nazwę parametru z wartości na wartość w argumencie RangeSlider (I3b79a)

Poprawki błędów

  • Zaktualizuj próbkę plakietki, aby dodać bardziej przydatny opis treści. (I10b9d)

Wersja 1.2

Wersja 1.2.1

10 sierpnia 2022 r.

Aplikacja androidx.compose.material:material-*:1.2.1 została zwolniona. Wersja 1.2.1 zawiera te zatwierdzenia.

Wersja 1.2.0

27 lipca 2022 roku

Aplikacja androidx.compose.material:material-*:1.2.0 została zwolniona. Wersja 1.2.0 zawiera te zatwierdzenia.

Wersja 1.2.0-rc03

29 czerwca 2022 r.

Aplikacja androidx.compose.material:material-*:1.2.0-rc03 została zwolniona. Wersja 1.2.0-rc03 zawiera te zatwierdzenia.

  • Brak zmian od wersji 1.2.0-rc02.

Wersja 1.2.0-rc02

22 czerwca 2022 r.

Aplikacja androidx.compose.material:material-*:1.2.0-rc02 została zwolniona. Wersja 1.2.0-rc02 zawiera te zatwierdzenia.

Wersja 1.2.0-rc01

15 czerwca 2022 r.

Aplikacja androidx.compose.material:material-*:1.2.0-rc01 została zwolniona. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

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

Poprawki błędów

  • Aktualizuje plakietkę z ikoną z początkową ikoną, która przykleja plakietkę do etykiety zamiast ikony. (I90993)

Wersja 1.2.0-beta03

1 czerwca 2022 r.

Aplikacja androidx.compose.material:material-*:1.2.0-beta03 została zwolniona. Wersja 1.2.0-beta03 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiono błąd, przez który aplikacja BottomSheetScaffold rysowała cień górnego paska aplikacji. Podczas umieszczania pasków przekąski BottomSheetScaffold teraz bierze pod uwagę ich stan: w stanie zwiniętym pasek powiadomień znajduje się nad arkuszem i przyciskiem typu FAB, a w stanie rozwiniętym – są zakotwiczone na spodzie arkusza. (Ia80b5, b/187771422)

Wersja 1.2.0-beta02

18 maja 2022 r.

Aplikacja androidx.compose.material:material-*:1.2.0-beta02 została zwolniona. Wersja 1.2.0-beta02 zawiera te zatwierdzenia.

Wersja 1.2.0-beta01

11 maja 2022 roku

Aplikacja androidx.compose.material:material-*:1.2.0-beta01 została zwolniona. Wersja 1.2.0-beta01 zawiera te zatwierdzenia.

Nowe funkcje

  • To jest pierwsza wersja beta 1.2.

Zmiany w interfejsie API

  • Zmieniono nazwę elementu kompozycyjnego TextFieldDefaults.BorderStroke, który rysuje obramowanie w zakresie OutlinedTextField, na TextFieldDefaults.BorderBox. (I5f295)

Wersja 1.2.0-alfa08

20 kwietnia 2022 r.

Aplikacja androidx.compose.material:material-*:1.2.0-alpha08 została zwolniona. Wersja 1.2.0-alpha08 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Częściowe wykorzystanie (pozycja niżej LUB) zostało wycofane w PointerInputChange. Możesz użyć consume(), aby w pełni zastosować tę zmianę. Za pomocą funkcji isConsumed możesz sprawdzić, czy ktoś inny korzystał wcześniej ze zmiany.
  • Teraz usługa PointerInputChange::copy() zawsze tworzy małą kopię. Oznacza to, że po wykorzystaniu jednej z nich kopie PointerInputChange zostaną zużyte. Jeśli chcesz utworzyć niepowiązany obiekt PointerInputChange, użyj konstruktora. (Ie6be4, b/225669674)

Wersja 1.2.0-alfa07

6 kwietnia 2022 roku

Aplikacja androidx.compose.material:material-*:1.2.0-alpha07 została zwolniona. Wersja 1.2.0-alpha07 zawiera te zatwierdzenia.

Wersja 1.2.0-alfa06

23 marca 2022 r.

Aplikacja androidx.compose.material:material-*:1.2.0-alpha06 została zwolniona. Wersja 1.2.0-alpha06 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Aktualizacje klikalnego interfejsu Card API w celu dostosowania zmian w interfejsie Surface API (I56bcb)
  • Aktualizacje interfejsu Material 2 Surface API, które dodaje dodatkowe przeciążone funkcje dotyczące platform z możliwością wyboru i przełączania. (Ifcca5)

Wersja 1.2.0-alfa05

9 marca 2022 r.

Aplikacja androidx.compose.material:material-*:1.2.0-alpha05 została zwolniona. Wersja 1.2.0-alpha05 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • 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ą wyłącznie na widoku danych w przypadku WindowInsetsControllerCompat. Znowu wymagane jest okno, które jest wymagane do zarządzania niektórymi flagami okien. Wycofano właściwość ViewCompat.getWindowInsetsController na rzecz WindowCompat.getInsetsController, aby umożliwić korzystanie z prawidłowego okna (np. jeśli widok jest w oknie). (I660ae, b/219572936)
  • Opcja Tekst:includeFontPadding jest teraz domyślnie wyłączona. W przypadku wysokich skryptów problemy z przycinaniem wynikające z metody includeFontPadding=false są obsługiwane. Przycinanie nie powinno występować. (I31c84, b/171394808)
  • Dodano nowy interfejs API LazyVerticalGrid do definiowania rozmiarów osi krzyżowej (I17723).

Wersja 1.2.0-alfa04

23 lutego 2022 r.

Aplikacja androidx.compose.material:material-*:1.2.0-alpha04 została zwolniona. Wersja 1.2.0-alpha04 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Add support for filter chips (I39a6e, b/192585545)
  • Dodano TextFieldDecorationBox i OutlinedTextFieldDecorationBox. Używanie ich razem z atrybutem BasicTextField pomoże Ci utworzyć niestandardowe pole tekstowe oparte na polach tekstowych w stylu Material Design, ale z większą liczbą opcji dostosowywania.
  • Umożliwiono dostosowywanie poziomego i pionowego dopełnienia w polach tekstowych. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/16800
  • Dodano właściwości ComposableTarget, ComposableTargetMarker i ComposableOpenTarget, które umożliwiają kompilowanie raportowania czasu, gdy funkcja kompozycyjna jest wywoływana w celu kierowania na aplikację, do której nie została zaprojektowana.

    W większości przypadków adnotacje mogą zostać wywnioskowane przez wtyczkę kompilatora compose, więc bezpośrednie używanie tych adnotacji powinno być rzadkie . Przypadki, których nie można wywnioskować, obejmują tworzenie i używanie niestandardowych aplikacji, abstrakcyjnych funkcji kompozycyjnych (takich jak metody interfejsu), pól lub zmiennych globalnych, które są zmiennymi kompozycyjnymi (wywnioskowane są zmienne lokalne i parametry) oraz korzystanie z funkcji ComposeNode lub powiązanych funkcji kompozycyjnych.

    W przypadku aplikacji niestandardowych funkcje kompozycyjne, które wywołują funkcje ComposeNode lub ReusableComposeNode, muszą dodać adnotację CompoableTarget do funkcji i dowolnych typów parametrów lambda kompozycyjnych. Zalecamy jednak utworzenie adnotacji z adnotacją ComposableTargetMarker, a następnie użycie oznaczonej adnotacji bezpośrednio zamiast ComposableTarget. Adnotacja kompozycyjna oznaczona za pomocą atrybutu ComposableTargetMarker jest odpowiednikiem ComposbleTarget z pełną i jednoznaczną nazwą klasy atrybutu jako parametru stosującego. Przykład użycia właściwości ComposableTargetMarker znajdziesz tutaj: anroidx.compose.ui.UiComposable. (I38f11)

Wersja 1.2.0-alfa03

9 lutego 2022 r.

Aplikacja androidx.compose.material:material-*:1.2.0-alpha03 została zwolniona. Wersja 1.2.0-alpha03 zawiera te zatwierdzenia.

Poprawki błędów

Wersja 1.2.0-alfa02

26 stycznia 2022 r.

Aplikacja androidx.compose.material:material-*:1.2.0-alpha02 została zwolniona. Wersja 1.2.0-alpha02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano NonRestartableComposable do metod, które przeciążają istniejące metody bez złożonej logiki. Ogranicza to liczbę kontroli zapamiętanych przez kompilator (równa się) w przypadku wszystkich parametrów powtarzanych w wywoływanej funkcji wewnętrznej. (I90490)
  • Dodaj obsługę elementu działania (I07100, b/192585545)

Wersja 1.2.0-alfa01

12 stycznia 2022 r.

Aplikacja androidx.compose.material:material-*:1.2.0-alpha01 została zwolniona. Wersja 1.2.0-alpha01 zawiera te zatwierdzenia.

Aktualizacje zależności

  • Teraz zależy od Kotlin 1.6.10.

Wkład z zewnątrz

  • ModalBottomSheetState ma teraz flagę isSkipHalfExpanded. Można ją ustawić za pomocą konstruktora lub zaktualizować później, ustawiając właściwość isSkipHalfExpanded w ModalBottomSheetState na true. Zaktualizowanie wartości parametru isSkipHalfExpanded powoduje zmianę kompozycji arkusza. (I18b86, b/186669820)

Wersja 1.1

Wersja 1.1.1

23 lutego 2022 r.

Aplikacja androidx.compose.material:material-*:1.1.1 została zwolniona. Wersja 1.1.1 zawiera te zatwierdzenia.

Poprawki błędów

Wersja 1.1.0

9 lutego 2022 r.

Aplikacja androidx.compose.material:material-*:1.1.0 została zwolniona. Wersja 1.1.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.0.0

  • Stabilna obsługa efektu sygnalizowania końca przewijania w Androidzie 12.
  • Ulepszenia rozmiaru docelowych elementów dotykowych
  • Pamiętaj, że w przypadku interfejsu Compose 1.0 komponenty Material będą rozszerzały swoją przestrzeń układu, aby spełnić wytyczne dotyczące ułatwień dostępu w zakresie rozmiaru docelowego elementu dotykowego. Na przykład element dotykowy przycisku rozwinie się do minimalnego rozmiaru 48 x 48 dp, nawet jeśli ustawisz jego mniejszy rozmiar. Dzięki temu interfejs Compose Material jest taki sam jak w przypadku komponentów Material Design, co zapewnia spójne zachowanie w przypadku łączenia widoków i tworzenia. Ta zmiana sprawi też, że gdy tworzysz interfejs z użyciem komponentów Compose Material, będą one spełnione minimalne wymagania dotyczące ułatwień dostępu w elementach dotykowych.
  • Stabilna obsługa kolei nawigacyjnej
  • Przekształcanie wielu wcześniej eksperymentalnych interfejsów API w stabilne
  • obsługa nowszych wersji Kotlin,

Wersja 1.1.0-rc03

26 stycznia 2022 r.

Aplikacja androidx.compose.material:material-*:1.1.0-rc03 została zwolniona. Wersja 1.1.0-rc03 zawiera te zatwierdzenia.

Zmiany w zachowaniu

Pamiętaj, że w przypadku interfejsu Compose 1.0 komponenty Material będą rozszerzały swoją przestrzeń układu, aby dostosować ją do rozmiaru docelowego elementu dotykowego w sekcji Wytyczne dotyczące ułatwień dostępu. Na przykład element dotykowy przycisku rozwinie się do minimalnego rozmiaru 48 x 48 dp, nawet jeśli ustawisz jego mniejszy rozmiar. Dzięki temu interfejs Compose Material jest taki sam jak w przypadku komponentów Material Design, co zapewnia spójne zachowanie w przypadku łączenia widoków i tworzenia. Ta zmiana sprawi też, że gdy tworzysz interfejs z użyciem komponentów Compose Material, będą one spełnione minimalne wymagania dotyczące ułatwień dostępu w elementach dotykowych.

Poprawki błędów

  • Dodaliśmy dokładniejsze informacje o debugowaniu w inspektorze układu podczas sprawdzania minimalnych modyfikatorów docelowych elementów dotykowych. (Aosp/1955036)

Wersja 1.1.0-rc01

15 grudnia 2021 roku

Aplikacja androidx.compose.material:material-*:1.1.0-rc01 została zwolniona. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

Wersja 1.1.0-beta04

Grudzień 1, 2021

Aplikacja androidx.compose.material:material-*:1.1.0-beta04 została zwolniona. Wersja 1.1.0-beta04 zawiera te zatwierdzenia.

Nowe funkcje

  • Zaktualizowano w celu zapewnienia zgodności z Kotlin 1.6.0

Wersja 1.1.0-beta03

17 listopada 2021 r.

Aplikacja androidx.compose.material:material-*:1.1.0-beta03 została zwolniona. Wersja 1.1.0-beta03 zawiera te zatwierdzenia.

Wersja 1.1.0-beta02

3 listopada 2021 r.

Aplikacja androidx.compose.material:material-*:1.1.0-beta02 została zwolniona. Wersja 1.1.0-beta02 zawiera te zatwierdzenia.

Poprawki błędów

  • Echo i inne wskaźniki będą teraz opóźnione tylko wtedy, gdy znajdują się w kontenerze Modifier.scrollable(), a nie zawsze będą opóźniać się w dół zdarzenia. (Ibefe0, b/203141462)

Wersja 1.1.0-beta01

27 października 2021 roku

Aplikacja androidx.compose.material:material-*:1.1.0-beta01 została zwolniona. Wersja 1.1.0-beta01 zawiera te zatwierdzenia.

Nowe funkcje

  • Echo obsługuje teraz stany najechania i zaznaczenia, dlatego najechanie kursorem na komponent, taki jak Przycisk, lub zaznaczenie go, spowoduje wyświetlenie prawidłowej nakładki stanu.

Wersja 1.1.0-alfa06

13 października 2021 r.

Aplikacja androidx.compose.material:material-*:1.1.0-alpha06 została zwolniona. Wersja 1.1.0-alpha06 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Zastosowano w przypadku Układu przeciążenie bez elementów podrzędnych z większą wydajnością (Ib0d9a).
  • Implementacja funkcji ExposedDropdownMenu na podstawie parametru ExposedDropdownMenuBox z parametrami TextField i DropdownMenu (If60b2)
  • Element dismissOnOutsideClick został dodany do tabeli PopupProperties, zastępując wycofany element dismissOnClickOutside. Nowa właściwość otrzymuje pozycję kliknięcia i granice zakotwiczenia, co daje dokładniejszą kontrolę nad tym, czy wywoływanie żądania onDismissRequest ma być wywoływane. Może to na przykład zapobiec odrzuceniu reklamy zakotwiczonej po jej dotknięciu.
    • Do aplikacji PopupProperties dodano funkcję updateAndroidWindowManagerFlags, zapewniając niskopoziomową kontrolę nad flagami przekazywanymi przez wyskakujące okienko do Android WindowManager. Parametrem funkcji lambda są flagi obliczone na podstawie wartości PopupWłaściwości, które skutkują flagami WindowManagera, np. „możliwy do zaznaczenia”. Wynikiem funkcji lambda będą ostatnie flagi, które zostaną przekazane do interfejsu Android WindowManager. Domyślnie flaga updateAndroidWindowManagerFlags pozostawia bez zmian flagi obliczone na podstawie parametrów. Tego interfejsu API należy używać ostrożnie tylko w przypadkach, gdy wyskakujące okienko ma bardzo szczególne wymagania dotyczące działania. (I6e9f9)

Wersja 1.1.0-alfa05

29 września 2021 r.

Aplikacja androidx.compose.material:material-*:1.1.0-alpha05 została zwolniona. Wersja 1.1.0-alpha05 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodaje minimalny rozmiar docelowych elementów dotykowych dla komponentów materiału, które nie mają dostępnych docelowych elementów dotykowych. W efekcie powiększy się o większe odstępy między komponentami, aby mieć pewność, że mają one odpowiednio duży docelowy element dotykowy. Może to spowodować zmianę istniejących interfejsów, przyjmując, że rozmiar tych komponentów jest taki sam jak ich rozmiar wizualny, i nie uwzględnia rozmiaru docelowych elementów dotykowych. Możesz użyć eksperymentalnej kompozycji LocalMinimumTouchTargetEnforcement lokalnie, aby wyłączyć to zachowanie w całej hierarchii, ale powinno to być tylko tymczasowa metoda awaryjna podczas aktualizowania istniejących interfejsów tak, aby uwzględniały nowy minimalny rozmiar. (I9b966, b/149691127, b/171509422)
  • Dodano eksperymentalny interfejs TextFieldColorsWithIcons, rozszerzający TextFieldColors, aby zapewnić interfejs InteractionSource w interfejsach beforeColor i EndingColor. Umożliwia to zmianę wyglądu pola tekstowego zgodnie ze stanem zaznaczenia. (I66923, b/198402662)

Wersja 1.1.0-alfa04

15 września 2021 r.

Aplikacja androidx.compose.material:material-*:1.1.0-alpha04 została zwolniona. Wersja 1.1.0-alpha04 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wycofane funkcje performGesture i GestureScope, które zostały zastąpione przez performTouchInput i TouchInjectionScope. (Ia5f3f, b/190493367)
  • Do elementu SemanticsNode dodano element touchBoundsInRoot, który uwzględnia minimalny rozmiar docelowych elementów dotykowych, aby deweloperzy mogli zagwarantować, że docelowe elementy dotykowe spełniają minimalne wymagania związane z ułatwieniami dostępu. (I2e14b, b/197751214)

Poprawki błędów

  • Zezwól, by klip przekroczył granice docelowego elementu dotykowego poza region klipu. (I43e10, b/171509422)
  • Zaktualizowano atrybut Divider kompozycyjny, aby uwzględniać parametr Dp.Hairline parametru grubości, aby umożliwić rysowanie pojedynczych pikseli niezależnie od gęstości ekranu. (I16ffb, b/196840810)

Wersja 1.1.0-alfa03

1 września 2021 roku

Aplikacja androidx.compose.material:material-*:1.1.0-alpha03 została zwolniona. Wersja 1.1.0-alpha03 zawiera te zatwierdzenia.

Nowe funkcje

  • Zaktualizowano element Tworzenie 1.1.0-alpha03, aby bazował na Kotlin 1.5.30. (I74545)

Zmiany w interfejsie API

  • Dodano metodę testową, która pozwala uzyskać obcięte progi. (I6b28e)
  • Do klasy ViewConfiguration dodaliśmy minimalny rozmiar docelowego elementu dotykowego, który można wykorzystać w semantyce i wprowadzaniu wskaźnika w celu zapewnienia dostępności. (IE861c)

Wersja 1.1.0-alfa02

18 sierpnia 2021 r.

Aplikacja androidx.compose.material:material-*:1.1.0-alpha02 została zwolniona. Wersja 1.1.0-alpha02 zawiera te zatwierdzenia.

Wkład z zewnątrz

  • Popraw działanie funkcji PrzesuńableState w sytuacji, gdy przesunięcie przesunięcia mieści się w zakresie błędu zaokrąglenia kotwicy. (I03d39, b/191993377)

Wersja 1.1.0-alfa01

4 sierpnia 2021 r.

Aplikacja androidx.compose.material:material-*:1.1.0-alpha01 została zwolniona. Wersja 1.1.0-alpha01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Zaktualizowano metodę DrawScope#drawImage, która używa prostokątów źródłowych i docelowych w celu korzystania z opcjonalnego parametru FilterQuality. Jest to przydatne w przypadku grafiki pikselowej, która po skalowaniu ma być pikselowana. Zaktualizowano narzędzie BitmapPainter i obraz kompozycyjny, aby aktywowało też opcjonalny parametr FilterQuality (Ie4fb0, b/180311607).
  • Zmieniono nazwę tagu BadgedBox na BadgedBox i zmieniono parametry, aby umożliwić tworzenie plakietki z możliwością tworzenia plakietki. Dodano komponent odznaki, który jest typową treścią plakietki w przypadku elementu odznaki. (I639c6)
  • Dodano komponent NavigationRail; informacje na temat wykorzystania znajdziesz w dokumentacji i przykładach (I8de77)

Poprawki błędów

  • Dodaliśmy wyrównaną do dołu próbkę aplikacji NavigationRail i wersję demonstracyjną aplikacji Catalog. (I3cffc)
  • Okna są teraz zgodne z rozmiarem platformy. Aby zastąpić to działanie, ustaw wartość usePlatformDefaultWidth na false. (Iffaed, b/192682388)
  • Dodano demonstrację kolejek nawigacyjnych do aplikacji katalogowej. (I04960)
  • Dodano demonstrację plakietki do aplikacji Katalog. (If285d)

Wersja 1.0

Wersja 1.0.5

3 listopada 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.5 została zwolniona. Wersja 1.0.5 zawiera te zatwierdzenia.

Poprawki błędów

  • Usunięto problem ze śledzeniem awarii w przypadku instancji pochodnej klasy. (Aosp/1792247)

Wersja 1.0.4

13 października 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.4 została zwolniona. Wersja 1.0.4 zawiera te zatwierdzenia.

Aktualizacje zależności

  • Zaktualizowano w celu dopasowania do Kotlin 1.5.31

Wersja 1.0.3

29 września 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.3 została zwolniona. Wersja 1.0.3 zawiera te zatwierdzenia.

Aktualizacje zależności

  • Zaktualizowano w celu dopasowania do Kotlin 1.5.30

Wersja 1.0.2

1 września 2021 roku

Aplikacja androidx.compose.material:material-*:1.0.2 została zwolniona. Wersja 1.0.2 zawiera te zatwierdzenia.

Zaktualizowano, aby obsługiwać wersję 1.0.2 tworzenia wiadomości. Funkcja Utwórz 1.0.2 jest nadal zgodna z Kotlinem 1.5.21.

Wersja 1.0.1

4 sierpnia 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.1 została zwolniona. Wersja 1.0.1 zawiera te zatwierdzenia.

Aktualizacje zależności

  • Zaktualizowano zgodnie z kotlinem 1.5.21.

Wersja 1.0.0

28 lipca 2021 roku

Aplikacja androidx.compose.material:material-*:1.0.0 została zwolniona. Wersja 1.0.0 zawiera te zatwierdzenia.

Główne funkcje wersji 1.0.0

To jest pierwsza stabilna wersja funkcji Compose. Więcej informacji znajdziesz na oficjalnym blogu dotyczącym wydania wiadomości.

Znane problemy

  • Jeśli używasz Androida Studio Bumblebee Canary 4 lub AGP 7.1.0-alpha04/7.1.0-alpha05, może wystąpić ta awaria:

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

    Aby rozwiązać ten problem, tymczasowo zwiększ wartość minSdkVersion do poziomu 24+ w pliku build.gradle. Ten problem zostanie rozwiązany w następnej wersji Androida Studio Bumblebee i interfejsu API 7.1. (b/194289155)

Wersja 1.0.0-rc02

14 lipca 2021 roku

Aplikacja androidx.compose.material:material-*:1.0.0-rc02 została zwolniona. Wersja 1.0.0-rc02 zawiera te zatwierdzenia.

Poprawki błędów

  • Okna są teraz zgodne z rozmiarem platformy. Aby zastąpić to działanie, ustaw usePlatformDefaultWidth na false (fałsz). (Iffaed, b/192682388)

Wersja 1.0.0-rc01

1 lipca 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.0-rc01 została zwolniona. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano komponent BadgeBox; informacje na ten temat znajdziesz w dokumentacji i przykładach (I5e284)
  • Nazwa elementu useDefaultMaxWidth w domenie PopupProperties została zmieniona na usePlatformDefaultWidth. (I05710).
  • Okna mogą teraz zajmować całą szerokość ekranu. (I83929, b/190810877)
  • Dodano eksperymentalną implementację suwaka zakresu (I2f4b3).

Poprawki błędów

  • Aby zapewnić zgodność ze specyfikacjami interfejsu Material Design, OutlinedTextField nie korzysta z nieprawidłowych danych wejściowych, używając koloru błędu etykiety, gdy etykieta jest używana jako zmienna. Ta ostatnia zasada jest stosowana, gdy w polu tekstowym nie ma wpisanego tekstu, a pole tekstowe nie jest zaznaczone. Ta zmiana spowodowała też zmianę znaczenia parametru error:Boolean w funkcji TextFieldColors.labelColor() – teraz zwraca wartość false, nawet jeśli dane wejściowe są nieprawidłowe, jeśli etykieta jest używana jako zmienna. (I45f78)

Wersja 1.0.0-beta09

16 czerwca 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.0-beta09 została zwolniona. Wersja 1.0.0-beta09 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano parametr kształtu do OutlinedTextField, aby umożliwić dostosowanie kształtu obramowania (I8f39e, b/181322957).
  • Wartość TextOverflow została zmieniona na klasę wbudowaną. (I433af)

Poprawki błędów

  • Zawijanie w polach DoneDrawer, BackdropScaffold i ModalbottomSheetUkład znika i kolor jest usuwane. Przekazuje wartość nieokreśloną (I2d899, b/182063309).

Dodane reguły profilu

Ta wersja dodaje reguły profilu do tych modułów tworzenia wiadomości (I14ed6):

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

Co to są reguły profilu?

  • Reguły profilu biblioteki są określone w pliku tekstowym baseline-prof.txt znajdującym się w katalogu src/main lub podobnym. Każda reguła jest podana w pliku w oddzielnym wierszu. W tym przypadku reguła jest wzorcem dopasowywania do metod lub klas w bibliotece. Składnia tych reguł jest nadzbiorem formatu profilu ART zrozumiałego dla człowieka, który jest używany podczas korzystania z funkcji adb shell profman --dump-classes-and-methods .... Reguły te mogą mieć 2 formy kierowania na metody lub klasy.

  • Reguła metody będzie miała następujący wzorzec:

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

    <CLASS_DESCRIPTOR>
    
  • <FLAGS> to co najmniej jeden ze znaków H, S i P wskazujący, czy ta metoda ma być oznaczona jako „Hot”, „Startup” lub „Post Startup”.

  • <CLASS_DESCRIPTOR> to deskryptor klasy, do której należy metoda docelowa. Na przykład klasa androidx.compose.runtime.SlotTable miałaby deskryptor o wartości Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> to podpis metody, który zawiera nazwę, typy parametrów oraz zwracane typy metody. Na przykład metoda fun isPlaced(): Boolean na LayoutNode ma podpis isPlaced()Z.

  • Te wzorce mogą zawierać symbole wieloznaczne (**, * i ?), aby jedna reguła obejmowała wiele metod lub klas.

Jaką rolę pełnią reguły?

  • Metoda z flagą H wskazuje, że jest to metoda „gorąca” i należy ją skompilować z wyprzedzeniem.

  • Metoda z flagą S wskazuje, że jest ona wywoływana podczas uruchamiania i powinna zostać skompilowana z wyprzedzeniem, aby uniknąć kosztów kompilacji i interpretowania jej podczas uruchamiania.

  • Metoda z flagą P wskazuje, że jest wywoływana po uruchomieniu.

  • Klasa znajdująca się w tym pliku wskazuje, że jest używana podczas uruchamiania i powinna być wstępnie przypisana na stercie, aby uniknąć kosztów ładowania klas.

Jak to działa?

  • Biblioteki mogą definiować te reguły, które zostaną spakowane do artefaktów AAR. Podczas tworzenia pliku APK zawierającego te artefakty reguły te są scalane, a scalone reguły są wykorzystywane do stworzenia kompaktowego pliku binarnego ART odpowiedniego dla danego pliku. ART może wykorzystać ten profil po zainstalowaniu pakietu APK na urządzeniach, aby z wyprzedzeniem skompilować określony podzbiór aplikacji w celu zwiększenia jej wydajności, zwłaszcza przy pierwszym uruchomieniu. Pamiętaj, że nie będzie to miało wpływu na aplikacje z możliwością debugowania.

Wersja 1.0.0-beta08

2 czerwca 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.0-beta08 została zwolniona. Wersja 1.0.0-beta08 zawiera te zatwierdzenia.

Nowe funkcje

Zmiana interfejsu Behavior Breaking API

  • NAJNOWSZE ZACHOWANIE: karta generuje teraz kliknięcia, dzięki czemu kliknięcia dodane przez Card(Modifier.clickable) mają charakter nieszkodliwy. Użyj nowego, eksperymentalnego obciążenia karty, która akceptuje onClick. (Ia8744, b/183775620)
    • Dodaliśmy nowe przeciążenie kart, które obsługuje kliknięcia, a także inne klikalne funkcje: wskazanie, interakcjaSource, włączenie/wyłączenie. Nie można użyć zwykłej karty, której nie można kliknąć, z Modifier.clickable, ponieważ w takich przypadkach karta nie zaciska fali.
  • NAJNOWSZE ZACHOWANIE: usługa Surface generuje teraz kliknięcia, dzięki czemu kliknięcia dodane przez Surface(Modifier.clickable) mają charakter opcjonalny. Użyj nowego, eksperymentalnego przeciążenia powierzchni, która akceptuje onClick. (I73e6c, b/183775620)
    • Dodaliśmy nowe przeciążenie w obszarze Surface, które obsługuje kliknięcia, a także inne klikalne funkcje: wskazanie, interakcjaSource, włączenie/wyłączenie. Zwykłej powierzchni, której nie można kliknąć, nie można było użyć z Modifier.clickable, ponieważ w takich przypadkach powierzchnia nie zacina się na niej.

Zmiany w interfejsie API

  • Klasa FabPosition została przekonwertowana na klasę wbudowaną z wyliczenia, aby umożliwić w przyszłości potencjalne rozwinięcie (I030fb)
  • Zrefaktoryzowano przypadki użycia wyliczenia w klasach wbudowanych, aby uniknąć problemów z wyczerpywaniem ich zakresu przy dodawaniu nowych wartości enum. (I2b5eb)
  • Dodaje czas oczekiwania na kliknięcie do przełączania, aby zapobiec wyświetlaniu zmarszczek podczas przewijania lub przeciągania (Ia2704, b/168524931)
  • Właściwości ContentDescription i semantyka tekstu nie są już pojedynczymi wartościami, tylko listami. Dzięki temu można je scalić w takiej postaci, w jakiej są, zamiast konkatenacji. Udostępniliśmy też lepsze interfejsy API do testowania, które pozwalają wykorzystać te zmiany (Ica6bf, b/184825850).
  • Interfejs Modifier.focusModifier() został wycofany i zastąpiony przez komponent Modifier.focusTarget() (I6c860)
  • Zastąpiono wyliczenie FocusState interfejsem FocusState (Iccc1a, b/187055290).
  • Usunięto LocalRippleNativeRendering, gdy implementacja echa wspomaganej przez wyświetlenia jest stabilna (I7fab3, b/188569367)

Poprawki błędów

  • Parametr Modifier.onGloballyPositioned() został zmieniony tak, by raportować współrzędne tego modyfikatora w łańcuchu modyfikatora, a nie współrzędne układu po zastosowaniu wszystkich modyfikatorów. Oznacza to, że teraz kolejność modyfikatorów wpływa na to, jakie współrzędne będą raportowane. (Ieb67d, b/177926591)
  • Dodaliśmy plik README dla istniejącego katalogu materiałów do tworzenia. (If9191)

Wersja 1.0.0-beta07

18 maja 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.0-beta07 została zwolniona. Wersja 1.0.0-beta07 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Nie trzeba już używać metod rozszerzenia do obsługi trasy w Nawigacji przy tworzeniu wiadomości. (I22beb, b/172823546)

Wersja 1.0.0-beta06

5 maja 2021 roku

Aplikacja androidx.compose.material:material-*:1.0.0-beta06 została zwolniona. Wersja 1.0.0-beta06 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Echo zostało przeniesione do wewnętrznego użytku z RippleDrawable na urządzeniach z Androidem. Oznacza to, że w obrębie RenderThread animacje falistych będą gładkie nawet wtedy, gdy wątek interfejsu użytkownika nie jest ładowany, np. podczas przechodzenia między ekranami. Nie zmienia to powierzchni interfejsu API, ale może spowodować zmiany w działaniu. Aby ułatwić migrację, dodaliśmy LocalRippleNativeRendering – podaj w tym obiekcie CompositionLocal wartość false, by wrócić do poprzedniej implementacji echa w obiekcie CompositionLocalProvider. Ten interfejs API jest tymczasowy i w przyszłości zostanie usunięty. Jeśli więc będziesz mieć problemy, które powodują korzystanie z niego, zgłoś błąd. (I902f8, b/168777351, b/183019123)
  • Dodaliśmy interfejsy API ułatwień dostępu CollectionInfo i CollectionItemInfo, które pozwalają oznaczać kolekcję i jej elementy na potrzeby usług ułatwień dostępu (Id54ef, b/180479017).
  • Dodano interfejs Accessibility API error, który umożliwia oznaczenie węzła zawierającego nieprawidłowe dane wejściowe (I12997, b/180584804, b/182142737).

Poprawki błędów

  • Zaktualizowano implementację wstawionych elementów katalogu Material Design ze strony https://github.com/google/accompanist/pull/365. (I25dc3)
  • Elementy podrzędne wierszy i kolumn o wartościach waga(fill = false) nie wypełniają już całej dostępnej przestrzeni osi głównej. (Ied94d, b/186012444, b/184355105)

Wersja 1.0.0-beta05

21 kwietnia 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.0-beta05 została zwolniona. Wersja 1.0.0-beta05 zawiera te zatwierdzenia.

Poprawki błędów

  • Do istniejącego katalogu materiałów tworzonych w ramach tworzenia wiadomości dodaliśmy obrazy kafelków komponentów, selektor motywów i bardziej szczegółowe adresy URL menu. (I9b58e)

Wersja 1.0.0-beta04

7 kwietnia 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.0-beta04 została zwolniona. Wersja 1.0.0-beta04 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • ZMIANA API: stan DrawerState nie jest już rozszerzany o zmianę w fazie eksperymentalnej fetchableState.
    • ZMIANA INTERFEJSU API: element BottomDrawerState jest teraz oznaczony jako Eksperymentalny, aby dopasować już Eksperymentalny komponent dolnej szuflady (I81114, b/181656094)
  • Zmień nazwy hideSoftwareKeyboard i showSoftwareKeyboard w systemie SoftwareKeyboardController na hide() i show().
    • Udostępniaj pełny interfejs CompositionLocal na kontrolerze lokalnego oprogramowania klawiaturowego, umożliwiając jego skonfigurowanie (przydatne zwłaszcza w testach) (I579a6).
  • Dodano interfejs API LiveRegion ułatwień dostępu. Jeśli węzeł jest oznaczony jako aktywny region, usługi ułatwień dostępu automatycznie powiadamiają użytkownika o zmianach (Idcf6f, b/172590946)

Poprawki błędów

  • W istniejącym module dodano implementację katalogu z materiałami tworzenia wiadomości. Obecnie brak: obrazy kafelków komponentu, selektor motywów (dodane w kolejnych zmianach). (Ie7a94)

Wersja 1.0.0-beta03

24 marca 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.0-beta03 została zwolniona. Wersja 1.0.0-beta03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Interfejs DefaultMonotonicFrameClock został wycofany. Połączenie z numerem withFrameNanos lub Recomposer.runRecomposeAndApplyChanges bez użycia danych MonotonicFrameClock spowoduje błąd IllegalStateException. (I4eb0d)
  • Dodano nowy interfejs API LeadingIconTab do wyświetlania ikony i tekstu w tekście na karcie. (I23267)

Wkład z zewnątrz

  • [Jossi Wolf] BottomDrawer pakuje teraz zawartość boksu szuflady. BottomDrawer nie zwraca elementu IllegalStateException, gdy element nadrzędny ma nieskończoną wysokość. Dolna szuflada otwiera się w stanie rozwiniętym, jeśli jest mniejsza niż 50% swojego elementu nadrzędnego. Dokumenty dotyczące okolicy BottomDrawerState i ModalBottomSheetLayoutState zostały zaktualizowane. Funkcja BottomDrawerState#isOpen zwraca teraz wartość „prawda”, jeśli jest w stanie otwarty lub rozwinięty. (I87241)

Wersja 1.0.0-beta02

10 marca 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.0-beta02 została zwolniona. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano nowy lokalny interfejs API kompozycji LocalSoftwareKeyboardController, który zastąpił poprzedni interfejs SoftwareKeyboardController w TextField. (I5951e, b/168778053)

Poprawki błędów

  • Egzekwuj ograniczenia dotyczące publicznego użytkowania eksperymentalnych interfejsów API (I6aa29, b/174531520)
  • Zmieniono domyślne wyrównanie w poziomie dla obszarów górnegoAppBar i bottomAppBar na Start, zgodnie z wierszem (Ib2dc7).
  • Dodaliśmy nowy moduł i obiekt zastępczy interfejsu użytkownika do katalogu materiałów tworzenia wiadomości, które są obecnie zagnieżdżone w istniejących wersjach demonstracyjnych testów integracji. (Idfcb3)
  • androidx.compose.ui:ui nie zależy już od AppCompat ani Fragment. Jeśli korzystasz z komponentu ComposeView w swojej aplikacji, a korzystasz z fragmentu lub komponentu AppCompat, upewnij się, że korzystasz z komponentu AppCompat 1.3 lub nowszego bądź fragmentu w wersji 1.3 lub nowszej. Te wersje są niezbędne do poprawnego ustawienia właścicieli cyklu życia i zapisanych stanów wymaganych w przypadku ComposeView. (I1d6fa, b/161814404)

Wersja 1.0.0-beta01

24 lutego 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.0-beta01 została zwolniona. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.

To jest pierwsza wersja beta funkcji tworzenia wiadomości w wersji 1.0.0.

Zmiany w interfejsie API

  • Zmieniono nazwę modyfikatorów rozmiaru. Nazwa parametru Modifier.width/height/size została zmieniona na requiredwidth/requiredHeight/requiredSize. Nazwa parametru Modifier.preferredWidth/preferredHeight/preferredSize została zmieniona na szerokość/wysokość/rozmiar. (I5b414)
  • imageResource i vectorResource są teraz funkcjami rozszerzenia odpowiednio w elementach towarzyszących ImageBitmap i ImageVector. Funkcje load{Image,Vector,Font} zostały usunięte. (I89130)
  • Modyfikatory rozmiaru dla jednostek wewnętrznych nie są już eksperymentalne. (I15744)
  • Usunięto asercje dp (I798d2)
  • Ze wszystkich pól tekstowych usunęliśmy wywołanie zwrotne SoftwareKeyboardController. Wkrótce zastąpimy je nowym interfejsem API. (Iae869, b/168778053)
  • Lambda Switch, Pole wyboru i przycisk działania mogą być teraz puste. Zaktualizowano przykładowe wiersze z polami wyboru w celu korzystania z tej funkcji. (If601b, b/171819073)
  • Element InteractionState został zastąpiony elementem [Mutable]InteractionSource
    • Interfejsy odpowiadają za generowanie / zbieranie zdarzeń interakcji.
    • Zamiast przekazywać atrybut interactionState = remember { InteractionState() } do komponentów takich jak Button i Modifier.clickable(), użyj interactionSource = remember { MutableInteractionSource() }.
    • Zamiast Interaction.Pressed in interactionState używaj funkcji rozszerzenia InteractionSource, takich jak InteractionSource.collectIsPressedAsState().
    • W złożonych przypadkach użycia możesz użyć funkcji InteractionSource.interactions, aby obserwować strumień interakcji. Więcej informacji znajdziesz w dokumentacji i przykładach InteractionSource.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • Dodano interfejs AccessibilityMananger i elementy LocalAccessibilityMananger w komponencie CompositionLocals (I53520)
  • Usunięto wycofane metody LayoutCoordinates. Użyj funkcji zamiast właściwości w przypadku właściwości positionInParent i boundsInParent (I580ed, b/169874631, b/175142755)
  • Suwak obsługuje teraz stan włączenia/wyłączenia (I6d56b, b/179793072).
  • Utworzono nowe TextInputSession na potrzeby sesji wejściowych z komponentów tekstowych niskiego poziomu, takich jak CoreTextField. (I8817f, b/177662148)
  • Usunięto element AnimationEndReason.Interrupted. W przypadku przerwy w animacji zostanie wywołany wyjątek UnsubscribeWyjątek. (I2cbbc, b/179695417)
  • Usunięto interfejs @ExperimentalRippleApi i zmieniono RippleAlpha w klasę z właściwościami, a nie interfejs. (I6df7c)
  • Dodano interfejs TextFieldColors w interfejsie do reprezentowania różnych kolorów używanych w polach TextField i OutlineTextField w różnych stanach. Dokładną implementację znajdziesz w materiałach TextFieldDefaults.textFieldColors i TextFieldDefaults.outlinedTextFieldColors.
  • Dodaj modyfikator selectGroup, który umożliwia oznaczenie kolekcji kart lub opcji na potrzeby ułatwień dostępu (Ie5c29).
  • Dodaj LazyListState.animate ScrollToItem

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

  • Zmieniono nazwę ScrollableState.smoothScrollBy() na animateScrollBy() LazyListState.snapToItemIndex() zmieniono na scrollToItem() Nazwa ScrollState.smoothScrollTo() została zmieniona na animateScrollTo() (I35ded)

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

  • Interfejs API TargetAnimation został usunięty. (If47d1, b/177457083)

  • Pozycja przewijania w funkcji Modifier.vertical Scroll()/horizontal Scroll() jest teraz reprezentowana przy użyciu funkcji Ints (I81298).

  • Zmieniono pakiety metod smooth ScrollBy i ScrollBy na androidx.compose.foundation.gestures.* (I3f7c1, b/175294473)

  • Nazwa FlingConfig została zmieniona na FlingBehavior, co pozwala na dostosowanie animacji zawieszenia zamiast wstępnie zdefiniowanego rozpadu. (I02b86, b/175294473)

  • Zmieniono nazwę modyfikatorów rozmiaru. Nazwa parametru Modifier.width/height/size została zmieniona na requiredwidth/requiredHeight/requiredSize. Nazwa parametru Modifier.preferredWidth/preferredHeight/preferredSize została zmieniona na szerokość/wysokość/rozmiar. (I5b414)

  • Nazwa defaultMinSizeConstraints została zmieniona na defaultMinSize. (I4eaae)

  • Orientacja została przeniesiona do pakietu podstawowych. Usługa VelocirtTracker została przeniesiona z ui.gesture do ui.input.pointer. (Iff4a8, b/175294473)

  • Funkcje panelerState.open() i panelerState.close() powodują teraz zawieszenie funkcji. Użyj funkcji saveCoroutineScope(), aby uzyskać zakres kompozycji, aby ją wywołać (I16f60, b/175294473)

  • Nazwa dostawców została zmieniona na CompositionLocalProvider

    • Konstruktor kompozycji nie akceptuje już parametru klucza i został wycofany.
    • Element currentCompositeKeyHash został przekształcony w kompozycyjną właściwość najwyższego poziomu zamiast funkcji kompozycyjnej najwyższego poziomu.
    • CompositionData i CompositionGroup zostały przeniesione do przestrzeni nazw androidx.compose.runtime.tooling
    • Obiekt ComposableLambda został przekształcony w interfejs zamiast konkretnej klasy i nie ma już parametrów typu.
    • Obiekt ComposableLambdaN został przekształcony w interfejs zamiast konkretnej klasy i nie ma już parametrów typu.
    • Funkcja zrzutFlow została przeniesiona do przestrzeni nazw androidx.compose.runtime
    • Metoda scalania SnapshotMutationPolicy nie jest już eksperymentalna
    • Funkcja ClearRoots najwyższego poziomu @TestOnly została usunięta. Nie jest już potrzebna.
    • Funkcje keySourceInfoOf i resetSourceInfo zostały usunięte. Nie są już potrzebne.
    • Element Composer.collectKeySourceInformation został usunięty. Nie jest już potrzebna.
    • Metody isJoinedKey,joinKeyLeft i joinKeyRight zostały usunięte. Nie są już potrzebne.
    • Różne interfejsy API najwyższego poziomu zostały przeniesione i uporządkowane w różne pliki. Ze względu na semantykę klasy plików stosowanej przez Kotlin powoduje to przerwanie zgodności plików binarnych, ale nie zgodności ze źródłem. U większości użytkowników nie powinno to stanowić problemu.
    • (I99b7d, b/177245490)
  • Ulepszyliśmy funkcję Modifier.scrollable. Teraz zamiast klasy ScrollableController używa interfejsu ScrollableControl (I4f5a5, b/174485541, b/175294473).

  • Modifier.draggable akceptuje teraz element DraggableState zamiast prostego obiektu lambda. Możesz utworzyć stan za pomocą rememberDraggableState { delta -> }, by uzyskać takie samo działanie jak wcześniej (Ica70f, b/175294473)

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

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

  • Wprowadzono te zmiany w interfejsie Material API:

    • Dodano parametr contentPadding do Top/bottomAppBar, aby umożliwić dostosowanie domyślnego dopełnienia.
    • Zmieniono kolejność parametrów w BackdropScaffold, by były zgodne z wytycznymi API. Wymagane parametry znajdowały się przed parametrami opcjonalnymi.
    • Parametr icon w elemencie bottomPoruszaItem został przeniesiony za parametr selected i onClick.
    • Zmieniono nazwę parametru alwaysShowLabels w elemencie {Down PojawiItem na alwaysShowLabel.
    • Zmieniono nazwy parametrów bodyContent w kilku komponentach na content.
    • Zmieniła się kolejność parametrów w tabeli ButtonDefaults.buttonColors(). Uwaga: ponieważ rodzaj parametrów się nie zmienił, nie spowoduje to błędu w kodzie. Pamiętaj, by używać nazwanych parametrów lub zaktualizować kolejność ręcznie. W przeciwnym razie kod nie będzie działać tak samo jak poprzednio.
    • Dodano parametr secondaryVariant do tabeli darkColors(). Ten kolor jest zwykle taki sam jak kolor secondary w ciemnym motywie, ale jest dodatkowy dla zachowania spójności i możliwości dostosowania.
    • Usunęliśmy elementy ElevationDefaults i animmateElevation() z publicznej platformy interfejsu API, ponieważ nie były one powszechnie używane lub przydatne.
    • Zmieniono nazwę onValueChangeEnd w Slider na onValueChangeFinished i sprawiliśmy, że może ona mieć wartość null.
    • Zmieniono nazwę parametru text w Snackbar na content, aby zachować spójność.
    • Dodano parametr contentPadding do elementu DropdownMenuItem, aby umożliwić dostosowanie domyślnego dopełnienia, i ustawiliśmy content jako rozszerzenie w RowScope.
    • Nazwa elementu ModalDrawerLayout została zmieniona na ModalDrawer.
    • Nazwa elementu BottomDrawerLayout została zmieniona na BottomDrawer.
    • (I1cc66)
  • BasicTextField akceptuje teraz pędzel zamiast koloru, aby zapewnić lepsze dostosowanie (I83a36)

  • imageResource i vectorResource są teraz funkcjami rozszerzenia odpowiednio w elementach towarzyszących ImageBitmap i ImageVector. Funkcje load{Image,Vector,Font} zostały usunięte. (I89130)

  • Zmieniono Indication#createIndication() na Indication#rememberUpdatedIndication(InteractionState) i usunięto parametr InteractionState z IndicationInstance#drawIndication(). IndicationInstance powinna być odpowiedzialna wyłącznie za rysowanie efektów wizualnych, a nie za uruchamianie animacji lub stanu zapisu w odpowiedzi na zmiany InteractionState. Te animacje i zapisy stanu powinny odbywać się w obrębie rememberUpdatedIndication(). Parametr indication w obiekcie Modifier.indication również został zmieniony na parametr wymagany. (Ic1764, b/152525426)

Poprawki błędów

  • Dodano nowy lokalny interfejs API kompozycji Local SoftwareKeyboardController, który zastąpił poprzedni interfejs SoftwareKeyboardController w polu TextField. (I658b6, b/168778053)

Wersja 1.0.0-alfa12

10 lutego 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.0-alpha12 została zwolniona. Wersja 1.0.0-alpha12 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Modifier.pointerInput wymaga teraz zapamiętania klawiszy, aby wskazać, kiedy powinna ponownie uruchomić się sterownik wykrywania danych wejściowych wskaźnika w przypadku nowych zależności. (I849cd)
  • Obiekty bottomDrawerLayout i ListItem zostały oznaczone jako @EksperymentalMaterialApi (Id766e).
  • Dodano element PaddingValues.Bezwzględne i można go używać w interfejsach API obsługujących wartość PaddingValues. (Ia5f30)
  • Funkcja onImeActionPerformed została wycofana. Zamiast niej użyj KeyboardActions (If0bbd, b/179071523)
  • Aby zapewnić lepsze dopasowanie do konwencji nazewnictwa w formatach ImageBitmap i ImageVector, nazwa ImagePainter została zmieniona na BitmapPainter. (Iba381, b/174565889)
  • Animatable.snapTo i Animatable.stop to teraz funkcje zawieszania (If4288).
  • Komponent KomponentActivity.setContent został przeniesiony do strony androidx.activity.compose.setContent w module androidx.activity:activity-compose. (Icf416)
  • Metody niszczenia struktury i metody copy() zostały usunięte z kilku klas, w których były rzadko używane. (I26702, b/178659281)
  • Ustaw półexpand() i expand() w obiekcie ModalbottomSheetState (Ic914e)
  • Zmieniono wartość Indication#createInstance na @Composable i zmieniono element LocalIndication tak, aby zawierał wskazanie, a nie () -> Indication. (I5eeea, b/157150564)
  • Na razie przenieśliśmy okno AlertDialog i DropdownMenu do wersji tylko na Androida. Do menu DropdownMenu dodano parametr PopupWłaściwości, który umożliwia dalszą konfigurację podstawowego wyskakującego okienka. (I9c443)
  • Funkcja loadFontResource została wycofana. Użyj interfejsu fontResource. imageResource, loadImageResource, vectorResource i loadVectorResource zostały wycofane. Zamiast tego użyj elementu paintterResource. (I6b809)
  • Usunęliśmy parametr toggle i toggleModifier z menu oraz zmieniono jego nazwę na dropdownModifier, dropdownOffset i dropdownContent na modifier, offset i content. Menu rozwijane działa teraz konsekwentnie do wartości Popup, czyli do określania pozycji menu zgodnie z układem nadrzędnym. W większości przypadków możesz przenieść element toggle do elementu równorzędnego DropdownMenu i zapakować oba elementy w pliku Box. Więcej informacji o korzystaniu z tego interfejsu API znajdziesz w zaktualizowanym przykładzie w dokumentacji. (I884fb)
  • Nazwa funkcji toIntPx() została zmieniona na roundToPx(). (I9b7e4, b/173502290).
  • Nazwa IntBounds została zmieniona na IntRect, a interfejs API został ulepszony. (I1f6ff)
  • Dodano działania semantyczne rozwijania i zwijania. Dodano rozwinięcie i połowę w polu ModalbottomSheetState (Ib5064)
  • Funkcja Modifier.draggesFilter została wycofana. Użyj w zamian zasady Modifier.pointerInput { detectDragGestures (...)}. Możesz też użyć metody Modifier.draggable dla jednej osi przeciągnięć (I0ba93, b/175294473)
  • Zmieniono nazwy trybu Ambients, aby dopasować je do nazwy Ambient -> CompositionLocal. Oświetlenie nazywane wcześniej AmbientFoo, teraz CompositionLocals to LocalFoo. (I2d55d)
  • Zaznaczenie zostało przeniesione do podstawy. (I7892b)
  • Podobnie jak w przypadku wcześniejszego usunięcia funkcji state { 0 } z funkcji kompozycyjnej, a teraz promujemy korzystanie z funkcji takiej jak remember { mutableStateOf(0) }, usuniemy właściwość savedInstanceState { 0 }. Użyj zamiast niego metody rememberSaveable { mutableStateOf(0) }. Zapisze ona i przywróci automatycznie, jeśli typ używany w obrębie MutableState może zostać zapisany w pakiecie. Jeśli wcześniej przekazywano niestandardowy obiekt oszczędzania, teraz musisz użyć nowego przeciążenia zasobów saveSaveable, które zawiera parametr stateSaver. Użycie będzie wyglądać tak: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • Dodano element ProgressBarRangeInfo.Indeterminate, aby oznaczać nieokreślone paski postępu na potrzeby ułatwień dostępu (I6fe05).
  • Parametr @ComposableContract został wycofany i zastąpiono 3 bardziej szczegółowymi adnotacjami.

    • @ComposableContract(restartable = false) to teraz @NonRestartableComposable
    • @ComposableContract(readonly = true) to teraz @ReadOnlyComposable
    • @ComposableContract(preventCapture = true) to teraz @DisallowComposableCalls
    • @ComposableContract(tracked = true) został(a) usunięty(a).
    • (I60a9d)
  • Narzędzia emptyContent() i (@Composable () -> Unit).orEmpty() zostały wycofane, ponieważ nie mają już pozytywnego wpływu na wydajność i nie mają już żadnej wartości (I0484d)

  • Nazwa parametru saveCacheState() została zmieniona na zapamiętajSaveable() i została przeniesiona do pakietu androidx.compose.runtime.saveable. (I1366e, b/177338004)

  • Oszczędzanie, listSaver(), mapSaver(), autoSaver zostało przeniesione z androidx.compose.runtime.savedinstancestate do androidx.compose.runtime.saveable (I77fe6)

  • Zmieniono nazwę parametrów w atrybutach RounderCornerkształt, CutCornerkształt i CornerBasedCharacter z lewej/prawej na początek/koniec. Umożliwiono obsługę automatycznego odbicia lustrzanego kształtu w kierunku RTL. Na potrzeby sytuacji, w których automatyczne odbicie lustrzane nie jest pożądane, wprowadziliśmy funkcje absolutrounderCornerkształt i obiekty absolutneCornerkształty. (I61040, b/152756983)

  • Zmieniliśmy parametry text i icon elementu Tab oraz parametr label elementu bottom NavigationItem na null. Ma to na celu lepsze odzwierciedlenie działania komponentu, gdy te parametry są podane /, ponieważ ma to wpływ na rozmiar i układ komponentu. Jeśli obecnie przekazujesz kod emptyContent(), by nie reprezentować tekstu, ikony lub etykiety, użyj atrybutu null. (I57ed4)

  • Zmieniono nazwę parametru koloru contentColorFor na backgroundColor (I5bb67).

  • Wycofano atrybut TabDefaults i zastąpiliśmy go wartością TabRowDefaults. (I0f189)

  • Wprowadzenie interfejsu ColorMatrix API służącego do modyfikowania wartości RGB treści źródłowych. Zrefaktoryzowany interfejs ColorFilter API jako interfejs pasował do implementacji PathEffect. (Ica1e8).

  • Wycofaliśmy funkcjęAnimationValue/Float. Użyj tej wersji. (I71345, b/177457083)

  • Dodano interfejs API SemanticsWłaściwości.PaneTitle. (I20d5a)

  • Dodaliśmy włączone parametry do elementów Tab i bottom NavigationItem, by uniemożliwić klikanie ich. Zmieniono element DownSelectedItem na RowScope.bottomPoruszaItem, aby lepiej wyrażał wymagania dotyczące układu w interfejsie API. (Id683d)

  • Metody tapGeFilter, doubleTapGeFilter, longPressGeFilter i PressIndicaitongesFilter zostały wycofane. Użyj zamiast tego funkcji Modifier.clickable lub Modifier.pointerInput z funkcjądetectTapgess. (I6baf9, b/175294473)

  • Dodaj parametr układDirection do elementu createOutline kształtu. Pozwala to tworzyć kształty z uwzględnieniem kierunku układu. (I57c20, b/152756983)

  • Czcionka Recomposer.current() została usunięta. [Abstract]ComposeView teraz domyślnie ustawia się na leniwe tworzenie obiektu Recomposers o zakresie na poziomie okna, które są wywoływane przez zasadę ViewTreeLifecycleOwner w przypadku okna. Zmiana kompozycji i znaczniki animacji oparte na ramceNanos są wstrzymywane, gdy cykl życia hosta jest zatrzymywany. (I38e11)

Poprawki błędów

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

Wersja 1.0.0-alfa11

28 stycznia 2021 roku

Aplikacja androidx.compose.material:material-*:1.0.0-alpha11 została zwolniona. Wersja 1.0.0-alpha11 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Sprawia, że niektóre interfejsy Material API nie są już @Experimental (I5d20e)
  • Do obrazu i ikony dodano parametr Opis treści. Jest używany do dodawania opisu do usług ułatwień dostępu (I2ac4c).
  • Zmienia interfejsy parametrów stanowych Material Design na funkcje @Composable, które zwracają wartość State<T>. Dodaje element Animatable.asState(), który ułatwia przekształcenie animacji w stan. Zmienia też animację Elevation na rozszerzenie zawieszenia w Animatable. (If613c)
  • Snackbar, SnackbarHost i SnackbarHostState nie są już @ExperimentalMaterialAPI (Id1fb5)
  • Zmienia pola Typografia, Kształty i Pozycja Tab, aby nie były już klasami danych. Dodaje funkcję kopiowania do typografii i kształtów, która zastępuje wygenerowane elementy. (I40037)
  • Usunięto niektóre wycofane wcześniej interfejsy Material API (Ifaa25)

Poprawki błędów

  • Interfejsy onCommit, onDispose i onActive zostały wycofane i zastąpione przez SideEffect oraz DisposableEffect API (If760e)
  • Przejście na podstawie TransitionDefinition zostało wycofane (I0ac57)
  • Obsługujemy teraz stan początkowy aktualizacji w ramach aktualizacji (Ifd51d)
  • Funkcja WithConstraints została zmieniona na BoxWithConstraints, a następnie przeniesiono ją do Foundation.layout. (I9420b, b/173387208)
  • Wycofaj niezawieszone przewijanie ScrollBy, usuń niezawieszone ScrollTo

    Obecnie zalecamy używanie funkcji zawieszania do sterowania przewijaniem i poczekania na jego zakończenie. W ramach tego procesu wycofujemy lub usuwamy niezawieszone wersje tych funkcji. (E9ced)

  • Wycofaj funkcję smooth ScrollBy, która nie zawiesza się, zalecamy używanie funkcji zawieszania do sterowania przewijaniem i oczekiwania na zakończenie przewijania. W ramach tej zmiany wycofujemy ich wersje, które nie są zawieszone. (I12880)

  • Wprowadzono nazwę ComposeContentTestRule, która obejmuje zakres ComposeTestRule i określa nazwę setContent, która została usunięta z ComposeTestRule. Dodano metodę fabryczną createEmptyComposeRule(), która zwraca wartość ComposeTestRule i nie uruchamia dla Ciebie aktywności. Użyj go, gdy chcesz uruchomić swoją aktywność podczas testu, np. używając ActivityScenario.launch (I9d782, b/174472899)

  • Echa użytej w przyciskach Button i FloatingActionButton nie można już dostosować przez dodanie nowego wskaźnika w ramach AmbientIndication. Nigdy nie było to planowane jako sposób na dostosowanie tych komponentów, a teraz sprawia, że są one spójne z innymi komponentami Material. Aby dostosować echo w aplikacji, zobacz temat RippleTheme. (I546c5)

  • Element animateAsState jest teraz animowanyFooAsState, gdzie Foo to typ animowanej zmiennej, np. Float, Dp, Offset itp. (Ie7e25).

  • Usługa BasicTextField otrzymała nowy parametr o nazwie decorationBox. Pozwala dodać dekoracje, takie jak ikony, symbole zastępcze, etykiety i podobne do pola tekstowego, i zwiększyć jego docelowy obszar działania. (I16996)

  • Poprawiono błąd, który uniemożliwiał ustawienie szerokości pola tekstu materiału mniejszego niż 280.dp (I78373).

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

  • Usuń parametr displaySize, którego należy unikać. Zwykle lepiej jest użyć rozmiaru onRoot() lub co najmniej rozmiaru okna. (I62db4)

  • Powierzchnia może teraz mieć wiele elementów podrzędnych. (I66a92, b/144488459)

  • Metody metody invalidate i enterpriseReference() zostały teraz wycofane. Zastąpiły one obecne RecomposeScope i zapamiętaCompositionReference. (I583a8)

  • Zmienia element PopupPositionProvider tak, aby używał współrzędnych zależnych od okna, a nie globalnych. Zmienia nazwę elementu nadrzędnyGlobalBounds na anchorBounds i zmianę parametru windowGlobalBounds na windowSize: IntSize (I2994a).

  • Czas trwania i czas działania zostaną zastąpione długimi milisekundami, a ten krok eliminuje zależność danych wejściowych wskaźnika od tych klas. (Ia33b2, b/175142755, b/177420019)

  • Plik animacjaAnimationFloat.fling, który akceptuje FlingConfig, został usunięty. Użyj tego kodu zawieszaj Animatable.animateDecay. (I4659b, b/177457083)

  • można teraz utworzyć poza kompozycją (I0a130, b/172938345, b/175294473)

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

  • Kolumna ScrollableColumn/Row została wycofana. Używanie ScrollableColumn jest mniej efektywne w porównaniu z użyciem LazyColumn w przypadku dużych przewijanych treści, ponieważ LazyColumn pozwala tylko tworzyć, mierzyć i rysować widoczne elementy. Aby uchronić użytkowników przed niewydajnym działaniem, zdecydowaliśmy się wycofać elementy ScrollableColumn i ScrollableRow i zamiast nich promować stosowanie LazyColumn i LazyRow. Użytkownicy mogą zdecydować, że nie potrzebują leniwego działania, i używać modyfikatorów bezpośrednio w ten sposób: Column(Modifier.vertical Scroll(remember ScrollState())) (Ib976b, b/170468083).

  • Nowa metoda fabryczna items(count: Int) dla zakresu LazyColumn/LazyRow/LazyVerticalGrid. items(items: List) i itemsIndexed(items: List) to teraz funkcje rozszerzeń, więc jeśli ich użyjesz, musisz je zaimportować ręcznie. Nowe przeciążenia rozszerzeń dla tablic: items(items: Array) i itemsIndexed(Array) (I803fc, b/175562574)

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

  • Wycofaliśmy metody globalnych współrzędnych i wprowadziliśmy nowe metody współrzędnych opartych na oknach. (Iee284)

  • Dodano element Modifier.toolingGraphicsLayer, który dodaje modyfikator warstwy grafiki po włączeniu inspekcji. (I315df)

  • Element FocusRequester.createRefs jest teraz oznaczony jako eksperymentalny, ponieważ może się zmienić. (I2d898, b/177000821)

  • Nazwa elementu SemanticsPropertyLocationr.hidden została zmieniona na invisibleToUser i oznaczona jako @ExperimentalComposeUiApi. Nazwa AccessibilityRangeInfo została zmieniona na ProgressBarRangeInfo. StanOpisRange został zmieniony na progressBarRangeInfo. Nazwa Accessibility ScrollState została zmieniona na ScrollAxisRange. horizontalAccessibility8State ma teraz nazwę leveltal ScrollAxisRange. Zmiana nazwy parametru Accessibility ScrollState na pionowy ScrollAxisRange. (Id3148)

  • Wykorzystywanie narzędzia TestCoroutineDispatcher do testowania (I532b6)

  • Zaktualizowaliśmy interfejs API grafiki wektorowej, aby obsługiwać analizę zabarwienia zastosowanego do poziomu głównego grafiki wektorowej. (Id9d53, b/177210509)

Wersja 1.0.0-alfa10

13 stycznia 2021 r.

Aplikacja androidx.compose.material:material-*:1.0.0-alpha10 została zwolniona. Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Zmodyfikowano prędkość, by uzyskać części składowe i działania matematyczne. (Ib0447)
  • Zmieniono nazwę @ExperimentalTesting na @ExperimentalTestApi, aby zachować spójność z podobnymi eksperymentalnymi adnotacjami interfejsu API (Ia4502, b/171464963)
  • Zmieniono nazwę pozycji na DpOffset i usunięto funkcję getDISTANCE() (Ib2dfd)
  • Zmieniono nazwę Kolor.useOrElse() na Color.takeOrElse() (Ifdcf5)
  • Dodaj przełącznik do podstawowych plików Strings.kt (I4a5b7, b/172366489)
  • FlowRow i FlowColumn zostały wycofane. Użyj układu niestandardowego. (I09027)
  • Funkcje Modifier.focus() i Modifier.focusRequester() zostały wycofane. Użyj interfejsu Modifier.focusModifier() i Modifier.focusReference(). (I75a48, b/175160751, b/175160532, b/175077829)
  • Przeniesiono klasę natywny do modułu i stan wewnętrzna. Zaktualizowano przypadki użycia natywnej klasy w implementacjach równa się, tak aby zamiast niej używała „is MyClass”. (I4f734)

Poprawki błędów

  • Dodano obsługę wyłączonych pól tekstowych i pól tekstowych tylko do odczytu (I35279, b/171040474, b/166478534).
  • Pole animate() jest teraz zastąpione wartością animateAsState(), która zwraca wartość State<T> zamiast T. Zwiększa to skuteczność, ponieważ zakres unieważniania można zawęzić do miejsca, w którym jest odczytywana wartość stanu. (Ib179e)
  • Dodaj interfejs Semantics role API i dodaj Role jako parametr do możliwego do kliknięcia, wyboru i przełączania SemanticsModifier. Zmieniliśmy mechanizm Modifier.progressSemantics, aby mógł on również używać suwaka. (I216cd)

Wersja 1.0.0-alfa09

16 grudnia 2020 roku

Aplikacja androidx.compose.material:material-*:1.0.0-alpha09 została zwolniona. Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • dodano interfejs API do ręcznego aktywowania animacji i przeciągania w narzędziu Modifier.swipeable (Iaa17a, b/162408885)
  • Zmienione nazwy obiektów *Constants, takich jak ButtonConstants, zostały zastąpione wartościami domyślnymi, takimi jak ButtonDefaults. Usuwa też zbędne prefiksy default z właściwości w tych nowych obiektach. (Ibb915, b/159982740)
  • Tworzenie obsługuje metody pobierania właściwości, które umożliwiają tworzenie wywołań kompozycyjnych. Ta funkcja nie zostanie wycofana, ale zmieni się składnia deklarowania metody pobierania właściwości jako @Composable.

    Obecnie wycofywano składnię, która służyła do dodawania adnotacji do samej właściwości:

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

    Prawidłową składnią obecnie jest dodanie adnotacji do metody pobierania właściwości:

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

    Obie składni będą działać przez jakiś czas, ale poprzednia składnia, która została wycofana, stanie się w końcu błędem kompilacji. (Id9197).

  • Dodano bibliotekę androidx.compose.material:material-ripple zawierającą interfejsy API Ripple, która umożliwia tworzenie komponentów interaktywnych bez potrzeby korzystania z pozostałej biblioteki Material. Wycofaliśmy funkcję saveRippleIndication i zastąpiliśmy ją funkcją saveRipple. (Ibdf11).

Poprawki błędów

  • Lambda w modyfikatorach przesunięcia zwraca teraz wartość IntOffset, a nie liczbę zmiennoprzecinkową. (Ic9ee5, b/174137212, b/174146755)
  • Zrefaktoryzowano ShaderBrush, aby leniwie utworzyć instancję cieniowania, gdy dostępne są informacje o rozmiarze środowiska rysowania. Jest to przydatne do definiowania gradientów, które zajmują pełne granice obiektu kompozycyjnego w momencie kompozycji, bez konieczności implementowania niestandardowych implementacji DrawModifier.

    Wycofano interfejsy API konstruktora funkcji gradientu zamiast metod fabrycznych w obiekcie Gradient. (I511fc, b/173066799)

  • Interfejs Modifier.focusObserver został wycofany. Użyj interfejsu Modifier.onFocusChanged lub Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)

  • Wycofaliśmy LazyColumnFor, LazyRowFor, LazyColumnForIndexed i LazyRowForIndexed. Zamiast tego użyj LazyColumn i LazyRow (I5b48c)

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

  • Interfejs Autofill API to teraz eksperymentalny, który wymaga akceptacji (I0a1ec)

  • Dodanie deklaracji demontażu struktury w celu utworzenia instancji FocusRequester (I35d84, b/174817008)

  • Nazwa opcji „AccessibilityLabel” została zmieniona na contentDescription. Nazwa „accessibilityValue” to „StateDescription”. (I250f2)

  • Nowa funkcja nieskończonościowa do tworzenia obiektu InfiniteRepeatableSpec (I668e5)

  • Sposób pozycjonowania menu rozwijanych nieco się zmienił zgodnie ze specyfikacją Material (I34c72, b/168594123).

  • Dodano obsługę InteractionState w polach tekstowych. (I61d91)

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

  • Element ContentDrawScope został przeniesiony do modułu ui-graficznego w celu zastosowania DrawScope. (Iee043, b/173832789)

Wersja 1.0.0-alfa08

Grudzień 2, 2020

Opublikowano 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. Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • MaterialTheme ustawia teraz poprawne kolory uchwytów wyboru i tła wyboru. Aplikacje inne niż Material mogą ręcznie wybierać kolory używane do zaznaczania, używając AmbientTextSelectionColors. (I1e6f4, b/139320372, b/139320907)
  • Dodano sprawdzanie lintowania pod kątem nazewnictwa i pozycji parametrów kompozycyjnych lambda w celu sprawdzenia zgodności ze wskazówkami dotyczącymi tworzenia wiadomości. Przeprowadzono też migrację niektórych interfejsów API, używając children jako nazwy końcowej lambda do content, zgodnie ze sprawdzaniem lintowania i wskazówkami. (Iec48e).
  • Zgodnie z wytycznymi rady interfejsu API zmieniono nazwę zasobu Vector Asset na ImageVector, a zasób wektorowy został zmieniony na Builder, aby był wewnętrzną klasą ImageVector. Dodano alias typu VectorAssetBuilder, aby połączyć z ImageVector.Builder. (Icfdc8)
  • Zmieniliśmy nazwę obiektu ImageAsset i powiązanych metod na ImageBitmap. (Ia2d99)
  • Właściwości semantyki podstawowych zostały przeniesione do UI (I6f05c)
  • Interfejs fun RippleIndication() został wycofany i zastąpiony przez rememberRippleIndication() w celu zachowania spójności z innymi interfejsami API. (Id8e2c)
  • Dodano parametr singeLine do BasicTextField, TextField i OutlinedTextField. Ustaw ten parametr na „true”, aby przekształcić pole tekstowe w pojedynczą linię, którą można przewijać w poziomie. (I57004, b/168187755)

Poprawki błędów

  • Dodaj semantykę odrzucenie działania (I2b706)
  • Interfejsy DrawModifier API zostały przeniesione z pakietu androidx.compose.ui do pakietu androidx.compose.ui.draw. Utworzono plik DrawModifier przypisane.kt, aby uwzględnić metody typealiases/helper w celu ułatwienia migracji z wycofanych interfejsów API do obecnych. (Id6044, b/173834241)
  • Zmieniliśmy nazwę Modifier.drawLayer na Modifier.graphicsLayer. Zgodnie z opiniami dotyczącymi interfejsu API zaktualizowaliśmy też powiązane klasy do GraphicsLayer. (I0bd29, b/173834241)
  • Element <T> został usunięty z deklaracji układu podrzędnego. Możesz go teraz użyć bez określania typu. (IB60c8)
  • W ramach wygody dodaliśmy interfejsy API Modifier.scale/rotate.
    • Nazwa Modifier.drawOpacity została zmieniona na Modifier.alpha
    • Zmieniono nazwę Modifier.drawShadow na Modifier.shadow (I264ca, b/173208140)
  • Nazwa parametru wyrównywania pola Box została zmieniona na contentalignment. (I2c957)
  • Zmieniono nazwę modyfikatorów shiftPx na przesunięcie. Przyjmują teraz parametry lambda zamiast stanu. (Ic3021, b/173594846)
  • Wprowadzono interfejsy API SweepGradientShader i SweepGradientBrush. (Ia22c1)
  • Dodaliśmy sprawdzanie lintków w parametrach modyfikatora w funkcjach kompozycyjnych. Ta kontrola lintowania sprawdza nazwę, typ zwracanej wartości, wartość domyślną i kolejność parametru pod kątem spójności ze wskazówkami dotyczącymi tworzenia. (If493b)
  • Zaktualizowano interfejs TextFieldValue API
    • przyznano TextFieldValue.composition tylko do odczytu
    • usunięto wyjątek dla nieprawidłowego zakresu wyboru (I4a675, b/172239032)
  • Dodano nowe przeciążenie typu Modifier.drawLayer(). W nowym elemencie GraphicsLayerScope jest używany blok lambda umożliwiający zdefiniowanie parametrów warstwy w taki sposób, aby możliwe było pomijanie rekomponowania i przekazywania w przypadku zmiany stanu. DrawLayerModifier jest teraz wewnętrznym narzędziem do przenoszenia swojej logiki do metody placeable.placeWithLayer() obiektu LayoutModifier (I15e9f, b/173030831)
  • Wycofano elementy otoczenia, których sufiks to Ambient, i zastąpiono je nowymi usługami z przedrostkiem Ambient zgodnie z innymi wytycznymi dotyczącymi interfejsu Ambients i Compose. (I33440)
  • Dodaliśmy sprawdzanie lintowań, aby sprawdzać, czy fabryki modyfikatorów używają wewnętrznie androidx.compose.ui.composed {}, zamiast oznaczać je jako @Composable. (I3c4bc)
  • Nazwa argumentu semantyka scalAllDescendants została zmieniona na mergeDescendants. (Ib6250)
  • Kontrola czasu w testach (TestAnimationClock i jej zastosowania) jest obecnie w fazie eksperymentalnej (I6ef86, b/171378521)
  • Usuń stary moduł testu interfejsu użytkownika i jego wycinki (I3a7cb)
  • Nazwa elementu TextUnit.Inherit została zmieniona na TextUnit.Nie określono w celu zachowania spójności z innymi jednostkami. (Ifce19)
  • Interfejs wyrównania został zaktualizowany i działa już prawidłowo. (I46a07, b/172311734)
  • Identyfikator elementu został zmieniony na układId dla danych nadrzędnych UkładuIdentycznego. Nazwa Measurable.id została zmieniona na Measurable.layoutId. (Iadbcb, b/172449643)

Wersja 1.0.0-alfa07

11 listopada 2020 roku

Opublikowano 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. 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ą wersję alfa treści dla części hierarchii, podobnie jak to, jak AmbientContentColor reprezentuje preferowany kolor treści. Tekst i ikona teraz domyślnie wykorzystują bieżącą wartość z AmbientContentAlpha. Możesz to zrobić ręcznie: color.copy(alpha = AmbientContentAlpha.current), aby uzyskać ten sam efekt w swoich komponentach. Zamiast korzystać z ProvideEmphasis, możesz po prostu podać wartość bezpośrednio w AmbientContentAlpha i zastąpić poprzedni poziom EmphasisLevels za pomocą nowych poziomów domyślnych w ContentAlpha. (Idf03e, b/159017896)
  • Dodaje androidx.compose.material.AmbientContentColor, który zastępuje androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770).
  • Dodaje androidx.compose.material.Text, aby zastąpić „androidx.compose.foundation.Text” jako ogólny komponent tekstowy z możliwością motywu. W przypadku podstawowego komponentu tekstowego, który nie wykorzystuje koloru / stylu tekstu z motywu, użyj obiektu BasicText. (Ie6ae0)
  • Dodano element maxLines do pól tekstowych (Ib2a5b)
  • Zaktualizuj pola tekstowe, aby akceptowały KeyboardOptions (Ida7f3)
  • Powierzchnia używa teraz wysokości bezwzględnej (całkowitej) do obliczania nakładek wzniesień, więc powierzchnia zagnieżdżona w innej powierzchni jest rysowana na podstawie łącznej wysokości. (I7bd2b, b/171031040)

Poprawki błędów

  • captureToBitmap przeniesiono do: captureToImage. (I86385)
  • Podstawowe elementy AmbientTextStyle, ProvideTextStyle i AmbientContentColor zostały wycofane. Zamiast tego używaj nowych wersji dostępnych w bibliotece Material. W przypadku aplikacji innych niż Material warto utworzyć własny, specyficzny dla systemu motyw scenariusz, który można wykorzystać we własnych komponentach. (I74acc, b/172067770)
  • Fundacja.Text została wycofana i zastąpiona przez materiał.Text. Podstawowy, niezrozumiały interfejs API tekstu, który nie przetwarza wartości z motywu, znajdziesz na stronie androidx.compose.foundation.PodstawyText. (If64cb)
  • Zmień nazwę KeyboardOptions na ImeOptions (I82f36).
  • Przeniesiono klawisze KeyboardType i ImeAction do opcji KeyboardOptions (I910ce).
  • Pole BaseTextField zostało wycofane. Użyj interfejsu BasicTextField. (I896eb)
  • Usunięto adnotację ExperimentalSubcomposeLayoutApi. SubcomposeLayout można teraz używać bez dodawania @OptIn (I708ad)
  • FirstBaseline i LastBaseline zostały przeniesione do pakietu androidx.compose.ui.layout (Ied2e7)
  • Zaktualizowano interfejs API Icon API tak, aby przyjmował kolor.Nieokreślony jako możliwy kolor, który spowoduje narysowanie podanego zasobu lub malarstwa bez filtra ColorFilter. Wcześniej próbowano ignorować zabarwienie z użyciem koloru.Nieokreślone to odcień przezroczysty, które w ogóle nie było renderowane. (I049e2, b/171624632)
  • Zmieniono nazwę względnąPaddingFrom na LaunchFrom. Aby ułatwić określanie odległości od granic układu do punktów odniesienia tekstu, dodano modyfikator wyświetlającym uzupełnienie elementu Baseline. (I0440a, b/170633813)
  • Nazwa LaunchedTask została zmieniona na LaunchedEffect, aby zapewnić spójność z interfejsami SideEffect i DisposableEffect API. Parametr LaunchedEffect bez parametrów podmiotu jest niedozwolony, by zachęcić użytkowników do stosowania sprawdzonych metod. (Ifd3d4)
  • Parametr MeasureResult został przeniesiony poza MeasureScope. (Ibf96d, b/171184002)
  • Kilka symboli związanych z układem zostało przeniesionych z androidx.compose.ui do androidx.compose.layout.ui. (I0fa98, b/170475424)

Wersja 1.0.0-alfa06

28 października 2020 r.

Opublikowano 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. Wersja 1.0.0-alpha06 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Ikona androidx.compose.foundation.Icon została przeniesiona pod adres androidx.compose.material.Icon. Jeśli nie chcesz korzystać z biblioteki Material, możesz użyć komponentu Obraz / Modifier.paint() z narzędziem do malowania. (I9f622)
  • Dodaje wartość FloatingActionButtonElevation reprezentującą wysokość używaną przez przyciski PPP w różnych stanach. Implementację domyślną znajdziesz w sekcji FloatingActionButtonConstants.defaultElevation() (I2d4f5).
  • Dodaje interfejs SwitchColors, który przedstawia kolory używane przez przełącznik w różnych stanach. Aby dostosować te kolory, użyj opcji SwitchConstants.defaultColors. (I93805)
  • Dodaje interfejsy ButtonElevation i ButtonColors określające wysokość i kolory używane przez przyciski w różnych stanach. Aby dostosować te parametry, zapoznaj się z funkcjami domyślnymi w ButtonConstants. (Ic5b7b)
  • Dodaje interfejs RadioButtonColors, który przedstawia kolory używane przez element RadioButton w różnych stanach. Aby dostosować kolory używane w różnych stanach, użyj opcji RadioButtonConstants.defaultColors(). (I74130)
  • Dodaje interfejs CheckboxColors, reprezentujący kolory używane przez pole wyboru w różnych stanach. Aby dostosować kolory używane w różnych stanach, użyj pola CheckboxConstants.defaultColors(). (I7dbdb)

Poprawki błędów

  • Komponenty materiału nie ustawiają już wysokości na zIndex. Oznacza to, że w ramach tego samego elementu nadrzędnego element podrzędny z większym cieniem nie jest automatycznie rysowany nad elementem podrzędnym z mniejszym cieniem. Jeśli nadal potrzebujesz takiego działania, ustaw w razie potrzeby ręcznie wartość Modifier.zIndex() (I70417, b/170623932)
  • Zrezygnuj z funkcji VectorPainter na rzecz PamiętajVectorPainter, aby móc lepiej wskazać, że kompozycyjny interfejs API wykorzystuje wewnętrznie „pamięć” do przechowywania danych w komponentach. (Ifda43)
  • Włącz przejścia w elemencie ComposeTestRule. Usuń tę opcję, aby włączyć migający kursor w elemencie ComposeTestRule. (If0de3)
  • Dodano opcję klawiatury jednowierszowej do CoreTextField (I72e6d).
  • Zmieniliśmy nazwę interfejsu Radius API na CornerRadius, aby lepiej odzwierciedlić jego użycie w komponencie. Zaktualizowana dokumentacja potwierdza, że ujemne promienie narożników są zaciśnięte do zera. (I130c7, b/168762961)
  • Zrefaktoryzowano DrawScope i ContentDrawScope, były interfejsami zamiast klas abstrakcyjnych.
    • Utworzenie implementacji CanvasDrawScope dla DrawScope
    • Zrefaktoryzowano implementacje DrawScope, aby zamiast nich używać CanvasScope
    • Utworzono element DrawContext, który pozwala opakować zależności dla DrawScope
    • Usunięto wycofane metody w DrawScope (I56f5e)
  • Aplikacja Box została przekształcona w funkcję wbudowaną. (Ibce0c, b/155056091)

Wersja 1.0.0-alfa05

14 października 2020 r.

Opublikowano 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. Wersja 1.0.0-alpha05 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wyskakujące okienka i okna dialogowe dziedziczą teraz ustawienie FLAG_SECURE z okna nadrzędnego. Dodaliśmy też opcję jawnej konfiguracji (I64966, b/143778148, b/143778149).
  • Wartość progowa Modifier.swipeable dla stanów jest domyślnie ustawiona na 56 dp (Iab825, b/168610267)
  • wszystkie stany rusztowania oznaczone jako @Stable. DrengessEnabled w ScaffoldState zostało przeniesione do Scaffold. (I36645, b/168297016)
  • Usuwa wartości null z parametrów lambda w Scaffold. Aby reprezentować brak treści danego parametru, możesz użyć pustej treści. (I2b318, b/157633857, b/158551084)
  • Wycofuje interfejsy API contentColor() i currentTextStyle(), i zastępuje je odpowiednio treściami AmbientContentColor oraz AmbientTextStyle. Aby uzyskać dostęp do bieżącej wartości, użyj właściwości .current we właściwości otoczenia, tak jak w przypadku innych elementów otoczenia. Ta zmiana ma na celu zapewnienie spójności i uniknięcia konieczności utrzymywania różnych sposobów osiągania tego samego celu. Dodatkowo zmienia nazwy niektórych właściwości otoczenia, aby lepiej opisać ich przeznaczenie:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
  • Dodaje nakładkę AmbientElevationOverlay, umożliwiając dostosowanie lub wyłączenie domyślnej nakładki wysokości nad powierzchnią stosowanej do powierzchni w ciemnym motywie. (I5b74d)

Poprawki błędów

  • W ramach standaryzacji wartości wskaźnika dla klas wbudowanych zmień nazwę Kolor.Unset to Color.Nieokreślony, aby zachować spójność z innymi klasami w tekście (I97611, b/169797763).
  • Dodaliśmy funkcję TextOverflow.None. Gdy wartość atrybutu nadmiarowego ma wartość Brak, tekst nie będzie już obsługiwać tego rozmiaru, a jego rzeczywisty rozmiar zostanie zgłoszony do Układu Node. (I175c9, b/158830170)
  • Zmiana nazwy aplikacjilaunchInComposition na LaunchedTask, aby dopasować ją do wytycznych interfejsu Compose API (I99a8e)
  • Nazwa OnPositionedModifier została zmieniona na OnGloballyPositionedModifier, a funkcja onPositioned() – na onGloballyPositioned(). (I587e8, b/169083903).

Wersja 1.0.0-alfa04

1 października 2020 roku

Opublikowano 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. Wersja 1.0.0-alpha04 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Ujawnia parametry InteractionState w stanowych komponentach Material, by umożliwić wnoszenie stanu oraz odczytywanie go i kontrolowanie go. (Iaca5f, b/168025711, b/167164434)
  • Zmienia parametry *color elementów RadioButton i TriStateCheckbox, aby umożliwić pełne dostosowanie kolorów używanych w każdym stanie, a także w razie potrzeby zmieniać animowanie kolorów między stanami. Więcej informacji znajdziesz w opisach nowych funkcji kolorów animateDefault* w sekcjach CheckboxConstants i RadioButtonConstants. (I1c532)
  • Zmieniono nazwę parametru saveBackdropState na zapamiętaj BackdropScaffoldState i dodaliśmy dodatkowy parametr zegara animacji. Zmieniliśmy nazwę parametrubackdropScaffoldState of BackdropScaffold na scaffoldState. (Ib644d)
  • Dodano eksperymentalny komponent bottomSheetScaffold. (Ie02f0, b/148996320)
  • Dodano eksperymentalny komponent ModalDownSheetUkład. (Ic209e, b/148996320)
  • Zmienia nazwę elementu ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation na defaultElevation i zwraca teraz wartość Dp zamiast wartościAnimationValue. (I5f3ed)

Poprawki błędów

  • Zaktualizowano wiele interfejsów Graphics API.
    • Zaktualizowaliśmy interfejsy API przekształcania skalowania i rotacji, aby przetwarzać pojedynczy parametr przesunięcia do reprezentowania współrzędnych obrotu, zamiast osobnych parametrów x/y dla współrzędnych x/y w DrawScope i DrawTransform
    • Usunięto metody Rect.expandToinclude i Rect.join
    • Zaktualizowaliśmy dokumentację wyznaczania promienia, aby podawać wymiary eliptyczne i eliptyczne.
    • Dodaliśmy dokumentację wskazującą, że publiczny konstruktor klasy promieniowania wbudowanego nie może być wywoływany bezpośrednio, ale instancje promieni powinny być tworzone za pomocą ich konstruktorów funkcji.
    • Usunęliśmy interfejsy RoundRect API, które umożliwiają wysyłanie zapytań dotyczących górnegoRight, dołuRight, dołuCenter itp.
    • Wycofanie funkcji Rect.shift na rzecz Rect.translate
    • Usunięto interfejsy API RoundRect.grow i Rect.shrink
    • Nazwa okna RoundRect.outerRect została zmieniona na Rect.boundingRect
    • Usunięto metody RoundRect.middleRect/tallMiddleRect/wideMiddleRect i Rect.isStadium
    • Nazwa RoundRect.longestSide została zmieniona na RoundRect.maxDimension
    • Nazwa RoundRect.shortestSide została zmieniona na RoundRect.minDimension
    • Zmieniono funkcję RoundRect.center, a nie funkcję.
    • Zaktualizowano konstruktor RoundRect, tak aby korzystał z właściwości promienia zamiast poszczególnych parametrów promienia x/y
    • Usunięto interfejsy API rozmiaru, które zakładały, że był to prostokąt o źródle równym 0,0.
    • Do promienia dodano niszczycielski interfejs API
    • Funkcje rozszerzeń RoundRect zostały przeniesione do właściwości właściwości.
    • (I8f5c7, b/168762961)
  • Fundacja.Box została wycofana. Użyj parametru Foundation.layout.Box. (Ie5950, b/167680279)
  • Nazwa stosu została zmieniona na Box. Obecna wersja Box zostanie zastąpiona nową usługą Box (compose.foundation.layout). Nowa funkcja Box gromadzi elementy podrzędne jedna nad drugą, gdy ma wiele elementów podrzędnych. Działa to inaczej niż w przypadku poprzedniego pola, które działa podobnie jak kolumna. (I94893, b/167680279)
  • Parametry dekoracji pól zostały wycofane. Jeśli chcesz użyć dekoracji/dopełnienia pola, użyj modyfikatorów (Modifier.background, Modifier.border, Modifier.dopełnienie) (Ibae92, b/167680279).
  • Zaktualizowano wiele interfejsów Graphics API.
    • Zaktualizowaliśmy interfejsy API DrawScope o metody przekształcania zakresu, aby wskazać, że przekształcenie jest stosowane tylko w wywołaniu zwrotnym i usuwane po wywołaniu wywołania zwrotnego
    • Zaktualizowana dokumentacja clipPath, która odnosi się do ścieżki zamiast do zaokrąglonego prostokąta
    • Stałe odstępy w dokumentacji dla właściwego parametru w ClipPath
    • Nazwa DrawScope.drawCanvas została zmieniona na DrawScope.drawCanvas, a parametr rozmiaru został usunięty.
    • Zmieniliśmy nazwy parametrów dx/dy w metodzie wstawiania na poziome i pionowe.
    • Dodano przeciążenie, które zapewnia tę samą wartość wstawienia we wszystkich 4 granicach
    • Usunęliśmy dokumentację dotyczącą metody wstawiania wskazującej, że wstawienie zostanie zastosowane do wszystkich 4 stron
    • Zaktualizowana dokumentacja klasy Rect
    • Zaktualizowano komentarze do parametrów Rect, aby pasowały do stylu kdoc
    • Usunięto Rect.join i Rect.expandToDołącz
    • Utworzono przeciążenie obiektu Rect.translate(offset) i wycofano Rect.shift
    • (If086a, b/167737376)
  • Zablokowaliśmy statyczne importowanie zawartości zakresów układów (np. matchWithSiblings w RowScope). Zamiast niej należy użyć alternatywnego zakresu: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be, b/166760797)

Wersja 1.0.0-alfa03

16 września 2020 roku

Opublikowano 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. Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Zmienia nazwę parametru onSelect BottomNavigationItem na onClick (I91925, b/161809324)
  • Dodaje parametr InteractionState do obiektów bottom NavigationItem i Tab, co umożliwia stosowanie tego stanu i dostosowywanie sposobu wyświetlania komponentu w różnych stanach. (Ia3e9e, b/168025711)
  • Usuwa parametry disabledBackgroundColor i disabledContentColor z przycisków. Zamiast tego użyj nowych domyślnych funkcji kolorów w elemencie ButtonConstants. Jeśli masz już ustawione jawne ustawienie parametru contentColor/backgroundColor, użyj tych funkcji domyślnych i dostosuj niektóre lub wszystkie parametry, aby uniknąć zastąpienia koloru zarówno w przypadku włączenia, jak i wyłączenia. (If9b52)
  • Kolor tła pola tekstowego nie jest już domyślnie stosowany przezroczystość alfa. Zamiast tego każdy kolor podany w parametrze backgroundColor zostanie zastosowany bezpośrednio. (Iecee9, b/167951441)
  • Nazwa elementu InnerPadding została zmieniona na PaddingValues. (I195f1, b/167389171)
  • Parametry resistanceFactorAtMin i resistanceFactorAtMax w obiekcie Modifier.swipeable zostały zastąpione jednym parametrem oporu. Nowa metoda: defaultResistanceConfig została dodana w SwipeableConstants. (I54238)
  • Dodaje animowaną stanową obsługę podniesienia dla przycisków Button i FloatingActionButton. Wysokość przełącza się teraz między stanem domyślnym a naciśniętym. Aby dostosować wysokość między stanami, użyj elementów ButtonConstants.defaultAnimatedElevation() i FloatingActionButtonConstants.defaultAnimatedElevation() zamiast ustawiać stałą wartość Dp we wszystkich przypadkach. (I37925)
  • Etykieta stała się opcjonalnym parametrem w obrębie TextField i OutlineTextField (I267f6, b/162234081)

Poprawki błędów

  • Globalne funkcje testowe, takie jak onNode czy waitForIdle, zostały wycofane. Przejdź na ich nowe odpowiedniki, które są zdefiniowane za pomocą reguły ComposeTestRule (I7f45a).
  • Ograniczenia DpConstraints i interfejsy API, które ich używają, zostały wycofane. (I90cdb, b/167389835)
  • Parametry minWidth i maxWidthIn zostały zmienione na min i max. Analogicznie w przypadku preferredWidthIn, wysokośćIn i preferredHeightIn. (I0e5e1, b/167389544)
  • Usuń działania semantyczne przewijania do przodu i do tyłu. Dodaliśmy kroki w funkcji AccessibilityRangeInfo. (Ia47b0)
  • Nazwy przypadków użycia grawitacji były spójne pod kątem wyrównywania lub wyrównywania w interfejsach API układu. (I2421a, b/164077038)
  • Dodano metody globalne onNode i inne metody globalne w ComposeTestRule, ponieważ obecne metody globalne zostaną wycofane. (Ieae36)
  • Przeniesiono createAndroidComposeRule i AndroidInputDispatcher z androidx.ui.test.android do androidx.ui.test (Idef08, b/164060572)

Wersja 1.0.0-alfa02

2 września 2020 r.

Opublikowano 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. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano eksperymentalny komponent BackdropScaffold. (Iad908)

Poprawki błędów

  • Macierz4 została zastąpiona przez Matrix. Pozostałe części pakietu vectormath zostały usunięte. (Ibd665, b/160140398)

Wersja 1.0.0-alfa01

26 sierpnia 2020 r.

Opublikowano 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. Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.

Znany problem

= pierwszego znaku w materiale TextField nie można usunąć przy użyciu klawisza Backspace (b/165956313)

Wersja 0.1.0-dev

Wersja 0.1.0-dev17

19 sierpnia 2020 r.

Opublikowano 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. Wersja 0.1.0-dev17 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wcześniej wycofane elementy RadioGroup i RadioGroupItems zostały usunięte. Zamiast tego użyj Row i RadioBotton (I381b7, b/163806637)
  • Usunięto wywołania zwrotne onFocusChanged z pola tekstowego. Użyj interfejsu Modifier.focusObserver. (I51089, b/161297615)
  • Funkcja Modifier.drawBorder została wycofana. Użyj interfejsu Modifier.border. Klasa danych obramowania została zastąpiona przez BorderStroke (I4257d, b/158160576)
  • Zmieniliśmy nazwy niektórych właściwości w SushableState: slajduTarget -> targetValue, shiftProgress -> postępu, przesunięcie Kierunek -> kierunek. Dodano funkcję keepSwipeableState służącą do tworzenia obiektów PrzesuńableStates. (I2fc9c, b/163129614, b/163132293)
  • Dodaliśmy obsługę paska powiadomień z pozycjonowaniem i odpowiednim dodawaniem do kolejki. Uzyskaj do niego dostęp za pomocą funkcji zawieszania SnackbarHostState.showSnackbar. Dodatkowo:
    • Komponenty SnackbarHost zostały dodane. Hostuje paski powiadomień zależnie od stanu i odpowiada za przejście między paskami powiadomień.
    • Aplikacja SnackbarHostState została dodana, aby umożliwić kontrolę nad paskami powiadomień i hostami paska powiadomień oraz oddzielić je od ScaffoldState. Dostęp do tego stanu możesz też uzyskać przez scaffoldState.snackbarHostState.
    • Dodaliśmy przeciążenie paska powiadomień, aby umożliwić obsługę wspólnego interfejsu pomiędzy nimi a samymi paskami powiadomień. (I79aaa)
  • Dodaje włączony parametr do IconButton i zmienia kolejność parametrów w elemencie IconToggleButton (I0a941, b/161809385, b/161807956)
  • Wersja elementu ListItem z interfejsem API opartym na ciągach znaków została usunięta. Użyj wersji przedziału. (Ib8f57, b/161804681)
  • Usunięto wycofany komponent FilledTextField. Aby uzyskać implementację Wypełnionego pola tekstowego, użyj interfejsu Material Design. (I5E889)
  • AlertDialog korzysta teraz z FlowRow w przypadku przycisków (I00ec1, b/161809319, b/143682374)
  • Dodaliśmy parametry w interfejsie Modifier.swipeable służące do zmiany zakresu oporu przy przesuwaniu poza granice. Usunięto [min/max]parametry wartości. (I93d98)
  • Dodano parametr backgroundColor do elementu LinearProgressIndicator i usunięte wewnętrzne dopełnienie z CircularProgressIndicator. Dodano nowy parametr ProgressIndicatorConstants.DefaultProgressAnimationSpec, którego można używać jako domyślnego AnimationSpec w przypadku animowania postępu między wartościami (If38b5, b/161809914, b/161804677).
  • Opcjonalny parametr velocityThreshold został dodany do parametru Modifier.swipeable. (I698ba)
  • DownBarSize, fabSize i inne nie są już dostępne w ScaaffoldState. Zamiast tego do komponentu, który chcesz poznać, użyj wartości Modifier.onPosition. Do elementu Scaffold dodano atrybuty contentColor i Modifier (Ic6f7b, b/161811485, b/157174382).
  • Zmienia nazwy i kolejność niektórych parametrów na karcie Tab, aby zapewnić spójność z innymi interfejsami API (Ia2d12, b/161807532).
  • Dzieli wiersz TabRow na wartości TabRow i ScrollableTabRow, usuwając element is Scrollable z TabRow. Uwidacznia też element EdgePadding w funkcji ScrollableTabRow, co umożliwia kontrolowanie wolnego miejsca przed kartami i po nich. (I583e8, b/161809544)
  • Obiekt TabRow został usunięty i zastępuje go obiektem TabConstants. Wartość TabRow.TabPosition została przeniesiona na najwyższy poziom (TabPosition), a nazwa wskaźnika ContainerContainer została zmieniona na indicator. Szczegółowe informacje o tym, jak używać zaktualizowanego interfejsu API, i o wartościach domyślnych, znajdziesz w przykładach i dokumentacji. (I54d45, b/161809544)
  • Parametr progów w obiekcie Modifier.swipeable został zmieniony. Teraz przyjmuje parę stanów (typu T) i zwraca próg między nimi w postaci ThresholdConfig. Do elementu SwipeToDismiss w klasie lambda (ExitDirection) -> ThresholdConfig dodaliśmy parametr removeThresholds. (IE1080)
  • Suwak ma więcej kolorów, co pozwala na dokładne dostosowanie (I73e64, b/161810475)
  • Zmieniono nazwę parametru koloru karty na backgroundColor (I01fc1, b/161809546)
  • Pasek powiadomień ma teraz dostosowywane kolory tła i treści (I238f2, b/161804381)
  • do szuflad (I23655, b/161804378) dodano parametry dostosowania modyfikatora, tleColor, contentColor oraz scrimColor
  • Funkcja kompozycyjna state { ... } została wycofana i wycofana z funkcji remember { mutableStateOf(...) }, aby zapewnić przejrzystość. Zmniejsza to ogólną powierzchnię interfejsu API i liczbę pojęć związanych z zarządzaniem stanem i dopasowywane do wzorca by mutableStateOf() na potrzeby przekazywania właściwości klasy. (Ia5727)
  • Nazwa parametru dopełnienia przycisku została zmieniona na contentPadding (Id252e, b/161809394)
  • Dodaj element fabryki przesuwający się w dół. (I129e5)

Poprawki błędów

  • Usunięto onChildPositioned i OnChildPositionedModifier. W układzie podrzędnym deweloperzy powinni używać onPositioned i OnPositionedModifier. (I4522e, b/162109766)
  • Do klucza SemanticsPropertyKey dodano lambda zasady kreatora e-maili. Możesz go użyć do zdefiniowania niestandardowej zasady łączenia semantyków kreatora e-mailiDescendants. Zgodnie z zasadą domyślną jest używana wartość nadrzędna, jeśli istnieje już wartość. W przeciwnym razie jest używana wartość podrzędna. (Iaf6c4, b/161979921)
  • IntSize jest teraz klasą wbudowaną (I2bf42).
  • Nazwa elementu (PlacementScope.placeAbsolute()) została zmieniona na PlacementScope.place(), a poprzednia nazwa „PlacementScope.place()” – „PlacementScope.placeRelative()”. W rezultacie metoda PlacementScope.place() nie będzie już automatycznie powielać pozycji w kontekstach od prawej do lewej. Jeśli chcesz, użyj zasady PlacementScope.placeRelative(). (I873ac, b/162916675)
  • Wycofano atrybuty PxBound za pomocą Rect. Zaktualizowano wszystkie przypadki użycia PxBound z użyciem prostokąta i dodano odpowiednie wycofanie lub zastąpienie ich adnotacjami, aby wspomóc migrację. (I37038, b/162627058)
  • Zmieniliśmy nazwę RRect na RoundRect, aby lepiej dopasować do wzorców nazewnictwa tworzenia Utworzyliśmy konstruktory funkcji podobne do konstruktorów funkcji RRect i wycofanych konstruktorów funkcji RRect (I5d325)

Wersja 0.1.0-dev16

5 sierpnia 2020 r.

Opublikowano 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. Wersja 0.1.0-dev16 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Kolory są teraz ostatnią klasą, a nie interfejsem. Zamiast rozszerzać i udostępniać niestandardową implementację, utwórz nowe środowisko dla obiektu motywu niestandardowego. Uzyskaj dostęp do obiektu motywu za pomocą nowego otoczenia w komponentach, podobnie jak wewnątrz motywu MaterialTheme. (Ibae84)
  • Zmieniliśmy nazwę ColorPalette na Colors, aby lepiej odwzorować system kolorów Material i rozwiać wątpliwości co do tego, że ColorPalette jest „ogólnym” obiektem motywów w przeciwieństwie do określonej implementacji systemu kolorów Material. Dodatkowo zmienia nazwy kolorów LightColorPalette i darkColorPalette na jasne i darkColors. (I9e976, b/161812111)
  • Zmienia nazwę parametru text elementu Down NavigationItem na label, z „onSelected” na „onSelect”, „activeColor” na „selectedContentColor”, „inactiveColor” na „unselectedContentColor” i aktualizuje kolejność parametrów zgodnie z wytycznymi dotyczącymi dopasowania. (Icb605, b/161809324)
  • Aplikacja Modifier.stateDraggable została całkowicie przerobiona i nosiła nazwę Modifier.swipeable. Została wprowadzona nowa klasa PrzesuńableState, a DrawerState i DrawerState zostały zmodyfikowane w celu dziedziczenia z niej. [Modal/Down]DrawerLayout nie przyjmuje już parametru onStateChange. (I72332, b/148023068)
  • Pakiet Foundation.shape.corner został spłaszczony do fundacji.share (I46491, b/161887429)
  • Dodano adnotację ExperimentalMaterialApi. Motyw RippleTheme oznaczony jako Experimental (Ic5fa0, b/161784800)
  • Nazwa Material FilledTextField została zmieniona na TextField, a podstawowe pole TextField zostało – na BaseTextField, aby ułatwić wyszukiwanie i używanie interfejsu API (Ia6242, b/155482676)

Poprawki błędów

  • Funkcja OnChildPositioned została wycofana. Zamiast tego użyj opcji OnPositioned w elemencie podrzędnym. (I87f95, b/162109766)
  • Wprowadzono poprawki dla przybliżonego interfejsu API (I077bc).
    1. Usuń nieużywany interfejs OffsetBase
    2. wyrównaj klasy Offset i IntOffset, aby uzyskać spójną powierzchnię interfejsu API,
    3. Zmień nazwę IntOffset.Origin na IntOffset.Zero, aby zachować spójność z interfejsem Offset API
    4. Przeniesienie metody natywnejCanvas z interfejsu Canvas w celu umożliwienia konsumentom tworzenia własnych instancji Canvas
    5. Utworzono klasę EmptyCanvas w celu refaktoryzacji DrawScope na parametr niepusty zamiast lateinit i zapewnił brak wartości null w polu
    6. Zmieniono nazwy wyliczenia ClipOp na Pascal Case
    7. Zmieniono nazwy wyliczeń filtra Quality Quality na Pascal Case
    8. Zmiana nazw wyliczeń StrokeJoin na Pascal Case
    9. Zmieniono nazwy wyliczeń PointMode na wielkość liter Pascal
    10. Zmieniono nazwy wyliczeń w PaintingStyle na Pascal Case
    11. Zmieniono nazwy wyliczeń PathFillType na Pascal
    12. Zmieniono nazwy wyliczeń StrokeCap na Pascal Case
    13. Zaktualizowano implementację DrawCache, aby nie używać już parametrów latinit
    14. Zaktualizowano DrawScope, aby nie używać już leniwego przekazywania w parametrach wewnętrznych fillPaint i fingerPaint
    15. Zaktualizowano obraz kompozycyjny, aby uniknąć użycia Box i zminimalizować koszty
    16. Zaktualizowano klasę Outline, aby zawierała adnotacje @Immutable
    17. Zaktualizowano PathNode, dodając do każdej instrukcji ścieżki @Stałe adnotacje
    18. Zaktualizowana podkompozycja wektorowa zawiera zbędne kontrole warunkowe pod kątem równości, ponieważ są one już obsługiwane
    19. Wycofaliśmy metody konstruktorów towarzyszących prostokątne na rzecz konstruktorów funkcji,
    20. Zaktualizowanie klas pędzla i konstruktorów funkcji za pomocą interfejsów API @Immutable i @Stable
    21. Zmieniono wyliczenie VertexMode na PascalCase
    22. Zaktualizowano metodę DrawScope selectPaint, aby warunkowo zastępować parametry kreski na obrazie, jeśli ulegną one zmianie
    23. Zaktualizowano rozmiar, aby dodać interfejs API destrukturyzacji, zmienić nazwę UnspecifiedSize na Nieokreślone i usunięte nieużywane metody
  • Przenieś okno do UI (I47fa6)
  • Czcionka SemanticsNodeInteraction.performPartialGesture została usunięta. Użyj w zamian zasady SemanticsNodeInteraction.performGesture. (Id9b62).
  • Zmieniono nazwę SemanticsNodeInteraction.getBoundsInRoot() na SemanticsNodeInteraction.getUnclippedBoundsInRoot() (Icafdf, b/161336532)
  • Interfejsy API do obsługi tekstu od prawej do lewej zostały zaktualizowane. Dodano element LayoutDirectionAmbient, którego można używać do odczytywania i zmieniania kierunku układu. Usunięto interfejsy Modifier.rtl i Modifier.ltr. (I080b3)
  • Nazwa Modifier.deternimateProgress została zmieniona na Modifier.progressSemantics (I9c0b4)
  • Aktualizuje Material-icons-exteded o najnowszych ikonach dodanych do Material.io/icons (I4b1d3)
  • Wymagaj wyraźnego określenia typu T na potrzeby przejścia. (I1aded)
  • Funkcja Modifier.plus została wycofana. Zamiast niej użyj elementu Modifier.then. „Następnie” zawiera silniejszy sygnał porządkowania, ale zabrania też wpisywania Modifier.padding().background() + anotherModifier, co powoduje pęknięcie łańcucha i jest trudniejsze do odczytania (Iedd58, b/161529964).
  • Nazwa reguły AndroidComposeTestRule została zmieniona na „createAndroidComposeRule”. (I70aaf)
  • Dodano obiekty isFocused() i isNotFocused(). (I0b760)
  • Usunięto element BaseGestureScope.globalBounds, który nie powinien być używany z testów. Zamiast tego użyj współrzędnych lokalnych węzła, z którym pracujesz. (Ie9b08)
  • Stała pozycja wyskakującego okienka na wyświetlaczu z wycięciem. (Idd7dd)
  • Nazwa Modifier.drawBackground została zmieniona na Modifier.background (I13677).

Wersja 0.1.0-dev15

22 lipca 2020 r.

Opublikowano 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. Wersja 0.1.0-dev15 zawiera te zatwierdzenia.

Aktualizacja zależności

  • Aby korzystać z wersji tworzenia wiadomości w wersji 0.1.0-dev15, 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żyj atrybutów state i mutableStateOf jako alternatywne. Podjęliśmy decyzję o wycofaniu tej funkcji po szczegółowej dyskusji.

    Uzasadnienie

    Uzasadnienie obejmuje m.in.:

    • zmniejsza obszar interfejsu API i koncepcje, których musimy uczyć
    • Ściślej dopasowane do innych porównywalnych narzędzi (Swift UI, React, Flutter).
    • Odwracalna decyzja. W każdej chwili możemy przywrócić urządzenie @Model.
    • Eliminuje użycie małych liter i ułatwia udzielanie odpowiedzi na pytania dotyczące konfigurowania usługi @Model jako rzeczy, którymi musimy się zająć
    • @Model klas danych, równa się, kod skrótu itp.
    • Jak mogę ustawić niektóre właściwości jako „obserwowane”, a inne nie?
    • Jak określić równość strukturalną i referencyjną do zastosowania w obserwacji?
    • Ogranicza działanie magii w systemie. Zmniejszyłoby się prawdopodobieństwo, że ktoś założy, że system jest inteligentniejszy niż jest (np. potrafi odróżnić listę)
    • Sprawia, że szczegółowość obserwacji jest bardziej intuicyjna.
    • Poprawia refaktoryzację z właściwości zmienna -> klasy
    • potencjalnie stwarza możliwości wykonywania ręcznie przygotowanych optymalizacji dla poszczególnych stanów.
    • Rozwiązanie ściślej pasuje do reszty ekosystemu i zmniejsza niejasność co do wartości niezmiennych, czyli „uwzględniających stan zmienny”

    Uwagi dotyczące migracji

    Niemal wszystkie istniejące zastosowania funkcji @Model zostały w łatwy sposób przekształcone na jeden z dwóch 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 }
     )
    }
    

    Wersja alternatywna 1. Użyj aplikacji State<OriginalClass> i utwórz kopie.

    Takie podejście jest łatwiejsze dzięki klasom danych w Kotlin. Ogólnie rzecz biorąc, przekształć wszystkie właściwości var wcześniej we właściwości val klasy danych, użyj state zamiast remember i przypisz wartość stanu do sklonowanych kopii oryginału, korzystając z metody wygodnych klasy danych copy(...).

    Pamiętaj, że to podejście działa tylko wtedy, gdy jedyne mutacje tej klasy zostały wykonane w tym samym zakresie co instancja State. Jeśli klasa wewnętrznie mutuje się poza zakresem użycia i polegasz na tej obserwacji, kolejną metodą jest ta, której warto użyć.

    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) }
     )
    }
    

    Alternatywnie 2. Użyj wartości mutableStateOf i przedstawicieli właściwości

    To podejście jest łatwiejsze dzięki przedstawicielom właściwości Kotlin i interfejsowi API mutableStateOf, który umożliwia tworzenie instancji MutableState poza kompozycją. Ogólnie rzecz biorąc, zastąp wszystkie właściwości var pierwotnej klasy właściwościami var z atrybutem mutableStateOf jako przedstawicieli. Ma to tę zaletę, że nie zmieni się w ogóle sposób wykorzystania klasy – zmieni się tylko jej wewnętrzna implementacja. Działanie nie jest jednak całkowicie identyczne z pierwotnym przykładem, ponieważ każda właściwość jest obecnie obserwowana lub subskrybowana oddzielnie, więc zmiany kompozycji widoczne po tej refaktoryzacji mogą być węższe (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/15726

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

  • Dodano parametr progów w elemencie stateDraggable, aby określić progi między kotwicami. W dolnym panelu ustawiono próg 56 dp. Poza tym format bottomDrawerLayout używa teraz oddzielnej listy wyliczeniowej bottomDrawerState. (I533fa)

  • Usuwa wycofaną wcześniej funkcję Modifier.ripple. Opcja „Klikalna” korzysta teraz z wskaźnika Echo (jeśli w aplikacji jest ustawiony MaterialTheme {}), więc w większości przypadków możesz po prostu bezpłatnie użyć wskaźnika fali. Jeśli musisz dostosować parametr koloru, rozmiaru lub ograniczenia fali, możesz ręcznie utworzyć parametr RippleIndication i przekazać go do klikalnych parametrów jako wskaźnika. (I663b2, b/155375067)

  • Usunięto wycofane zastąpienie funkcji kompozycyjnej FilledTextField (I7f8f8)

  • Zmień nazwę obiektu Button (zawierającego wartości domyślne używane przez funkcję Button) na ButtonConstants (I7c5f7, b/159687878)

  • Boks treści przycisku funkcjonuje teraz jako wiersz (jest to przydatne, gdy musisz mieć ikonę z tekstem; zobacz przykłady na przycisku z opisem tego przycisku) (I0ff10, b/158677863)

  • RadioGroup i RadioGroupItem zostały wycofane. Użyj opcji Box z Modifier.selectable, Row i Column, aby dokonać właściwego wyboru opcji zgodnie z własnym projektem (I7f5cf, b/149528535).

  • Dodano pole tekstowe Material Outlined (I1a518)

  • Metody androidx.ui.foundation.TextFieldValue i androidx.ui.input.EditorValue zostały wycofane. Obiekty TextField, FilledTextField i CoreTextField, które korzystają z tego typu, również zostały wycofane. Użyj androidx.ui.input.TextFieldValue (I4066d, b/155211005)

  • TabRow.TabPosition nie zawiera pozycji w Dp, a nie w IntPx (I34a07, b/158577776)

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

  • Aby skonsolidować liczbę klas używanych do reprezentowania informacji o rozmiarze, ustandaryzuj wykorzystanie klasy size zamiast PxSize. Dzięki temu klasa wbudowanej wykorzystuje wartości zmiennoprzecinkowe do pakowania 2 wartości zmiennoprzecinkowych do reprezentowania szerokości i wysokości w postaci liczby zmiennoprzecinkowej. (Ic0191).

  • Wycofuje element Modifier.ripple. Opcja „Klikalna” korzysta teraz z wskaźnika Echo (jeśli w aplikacji jest ustawiony MaterialTheme {}), więc w większości przypadków możesz po prostu bezpłatnie użyć wskaźnika fali. Jeśli musisz dostosować parametr koloru, rozmiaru lub ograniczenia fali, możesz ręcznie utworzyć parametr RippleIndication i przekazać go do klikalnych parametrów jako wskaźnika. (I101cd, b/155375067)

  • Przerobiliśmy interfejs Scaffold API: kilka parametrów zmieniło swoje nazwy i dodaliśmy nowe parametry, które umożliwiają lepsze dostosowanie. Dodano metodę getter do rozmiarów zapytań typu Fab, TopBar i bottomBar (I0e7ce).

  • W interfejsie ui-material dodano komponent Menu DropdownMenu (interfejs menu Material Design). (I9bb3d)

  • Zezwalaj na ręczne pokazywanie/ukrywanie klawiatury programowej za pomocą kontrolera SoftwareKeyboardController (Ifb9d6, b/155427736)

  • Do pakietu podstawowych dodano element Modifier.indication. Służy do wyświetlania informacji o naciśnięciu, przeciągnięciu lub innych elementach interaktywnych (I8425f, b/155287131).

  • Skonsolidowaliśmy wdrożenia CanvasScope. Teraz dostępne są tylko DrawScope i ContentDrawScope Nazwa CanvasScope została zmieniona na DrawScope. Zaktualizowaliśmy DrawScope, aby wdrożyć interfejs Density i udostępnić podklasę Układ Usunięto DrawScope w ContentDrawScope Painter i PainterModifier zostały zaktualizowane tak, aby nie zarządzały już właściwością RTL, ponieważ DrawScope już ją udostępnia (I1798e)

  • Zmienia nazwę Emphasis.Upgrade() na Emphasis.applyEmphasis() (Iceebe)

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

  • FilledTextField obsługuje szybkie działanie, wizualne transformacje i obsługę pisania klawiatury (I1f9cf, b/155075201)

  • Dodaje parametr dressWidth do klasy CircularProgressIndicator, aby dostosować rozmiar kreski. Aby zmienić rozmiar kreski (wysokość) elementu LinearProgressIndicator, możesz użyć funkcji Modifier.preferredHeight() lub innego modyfikatora rozmiaru. (Icea16, b/154919081)

  • Dodaje parametr dressWidth do klasy CircularProgressIndicator, aby dostosować rozmiar kreski. Aby zmienić rozmiar kreski (wysokość) elementu LinearProgressIndicator, możesz użyć funkcji Modifier.preferredHeight() lub innego modyfikatora rozmiaru. (Icea16, b/154919081)

  • Dodano interfejs API przedziałów dla ikon na końcu i na początku w polu FilledTextField i do obsługi stanu błędu (Ic12e0).

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

  • Zastąpiono wszystkie używane w interfejsie wartości null wartości koloru w interfejsie API wartością niedopuszczalną i użyliśmy wartości Color.Unset zamiast wartości null (Iabaa7).

  • Zmieniono nazwy opcji EdgeInsets na InnerPadding. Zmieniono nazwę parametru innerPadding opcji Material Buttons na wiosłowanie. (I66165)

  • Suwak jest teraz bezstanowy. Użytkownicy będą musieli przekazywać i aktualizować stan samodzielnie, tak jak w przypadku każdego innego elementu sterującego. (Ia00aa)

  • Usunięto StaticDrawer. W razie potrzeby użyj Box z podaną szerokością (I244a7).

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

  • Dodano parametr modyfikatora do elementu ListItem i zmieniono kolejność parametrów w celu promowania treści końcowej lambda (I66e21)

  • Dodaje do Typografii parametr konstruktora defaultFontFamily, który umożliwia określenie domyślnej rodziny czcionek, która będzie używana dla wszystkich podanych obiektów TextStyles, które nie mają ustawionego rodziny. (I89d07)

  • Tymczasowo usunięto z interfejsu API tabele Materiałowych danych. (Iaea61)

  • Zmieniono nazwy parametrów w funkcji separatora kompozycyjnego (Ic4373)

  • dzieci (Ia6d19)

  • Usuwa element MaterialTheme.emphasisLevels. Do pobrania poziomów wyróżnienia użyj wartości EmphasisAmbient.current (Ib5e40).

  • System motywów kształtów został zaktualizowany zgodnie ze specyfikacją Material Design. Teraz możesz wybrać małe, średnie i duże kształty do wykorzystania przez większość komponentów (Ifb4d1).

  • Interfejsy API MaterialTheme, takie jak MaterialTheme.colors(), MaterialTheme.typography(), zostały przekształcone w właściwości, a nie funkcje. Usuń nawiasy z istniejących wywołań. Nie przewidujemy żadnych zmian w działaniu. (I3565a)

  • Zrefaktoryzowano interfejsy API FloatingActionButton, aby akceptowały obiekty kompozycyjne zamiast elementów podstawowych. Informacje o wykorzystaniu znajdziesz w zaktualizowanych przykładach. (I00622)

  • dodaj parametr enabled do pól wyboru, przełączników i przełączników (I41c16)

  • Ripple to teraz modyfikator. Chociaż element „Clickable” nie został jeszcze przekonwertowany, zalecane użycie to Clickable(onClick = { ... }, modifier = ripple()) (Ie5200, b/151331852, b/150060763)

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

  • Button, FloatingActionButton i Clickable mają teraz osobny parametr enabled. Nazwy niektórych parametrów elementu Button zostały zmienione lub zmieniono ich kolejność. (I54b5a)

  • Zmieniliśmy nazwę komponentu ImageAsset, aby lepiej odróżnić dane obrazu od nowego elementu kompozycyjnego obrazu, który będzie używany do określania układu i rysowania zawartości. _Body:Utworzono metodę rozszerzenia w metodzie android.graphics.Bitmap (Bitmap.asImageAsset()), by utworzyć instancję obiektu ImageAsset, która może być przydatna do połączenia tradycyjnego tworzenia aplikacji na Androida z platformą composesu (Id5bbd).

  • Usunęliśmy interfejs Snackbar API z parametrami String i zastąpiliśmy to przeciążeniem, które akceptuje lambda kompozycyjne. Zobacz zaktualizowane przykłady informacji o użyciu (I55f80)

  • Zrefaktoryzowano interfejsy API Tab, aby akceptowały wartości lambda text i icon (Ia057e)

  • Dodano komponent Done Down Navigation (informacje o użyciu są dostępne w dokumentacji i przykładach I731a0).

  • Dodano ikony, IconButton i iconToggleButton oraz usunąć AppBarIcon. Dotychczasowe zastosowania AppBarIcon można zastąpić bezpośrednio elementem IconButton. Dzięki temu będą one miały prawidłowy docelowy element dotykowy. Zapoznaj się z przykładami informacji o korzystaniu i zobacz ikony przedstawiające dostępne ikony materiałów, których można używać bezpośrednio z tymi komponentami. (I96849)

  • Zastąpiliśmy element ButtonStyle innymi funkcjami i usunęliśmy przeciążenie tekstu (ciągi). Informacje o wykorzystaniu znajdziesz w zaktualizowanych przykładach. (If63ab, b/146478620, b/146482131)

  • zmień nazwę modyfikatora Border na DrawBorder (I8ffcc)

  • W przypadku układu UkładCoordinates nie ma już właściwości pozycji. Właściwośćposition nie ma sensu przy rozważaniu użycia modyfikatorów układu, rotacji czy skalowania. Zamiast tego do obliczenia przekształcenia z jednego koordynatora układu do innego programiści powinni używać funkcji nadrzędnych i podrzędnych (childToLocal()).

    Układ LayoutCoordinates używa właściwości „size” z atrybutu IntPxSize, a nie PxSize. Układy używają liczb całkowitych w pikselach w przypadku układów, dlatego we wszystkich układach należy stosować liczby całkowite, a nie liczby zmiennoprzecinkowe. (I9367b)

  • Najważniejsze zmiany w interfejsie API wygaszacza. Szczegółowe informacje znajdziesz w dzienniku i dokumentacji Ambient<T> (I4c7ee, b/143769776).

  • Dodano komponent Materiał rusztowania. Implementacje Scaffold (I7731b)

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

Poprawki błędów

  • Interfejs FocusModifier został wycofany i zastąpiony przez Modifier.focus, Modifier.focusRequester i modifier.focusObserver. Opcje FocusState i FocusState zostały wycofane i zostały zastąpione FocusState2 (I46919, b/160822875, b/160922136)
  • Funkcje Vertical Scroller i Horiziontal Scroller zostały wycofane. Użyj funkcji ScrollableColumn i ScrollableRow, aby wbudowane funkcje związane z zachowaniem i parametrami dotyczącymi kolumn/wierszy. Własne atrybuty Modifier.vertical poprawne przewijanie oraz Modifier.horizontal Scroll umożliwiają. Podobnie parametr ScrollerPosition został wycofany i zastąpiony przez ScrollState (I400ce, b/157225838, b/149460415, b/154105299).
  • Przerobiliśmy interfejsy API Modifier.draggable i Modifier.scrollable. Element DragDirection został usunięty i zastąpiony funkcją Orientacja. Stan wymagany na potrzeby przewijania został uproszczony. Nazwa ScrollableState została zmieniona na ScrollableController (Iab63c, b/149460415).
  • Nazwa etykiety runOnIdleCompose została zmieniona na runOnIdle (I83607)
  • Właściwości semantyki pojedynczej wartości używają teraz stylu wywołującego. Na przykład zapis „semantyka { hide = true }” został zapisany jako: 'semantyka {hidden() }'. (Ic1afd, b/145951226, b/145955412)
  • Zmieniono nazwy kilku testowych interfejsów API, aby były bardziej intuicyjne. Nazwy wszystkich interfejsów API FindXYZ zostały zmienione na onNodeXYZ. Nazwy wszystkich interfejsów API doXYZ zostały zmienione na performXYZ. (I7f164)
  • Interfejs Przejście z interfejsu został zmieniony tak, aby zwracał wartość TransitionState, a nie przekazywać jej do elementów podrzędnych. Dzięki temu interfejs API staje się bardziej spójny z interfejsami API animate(). (I24e38)
  • Dodano klasę jednostki IntBounds, reprezentującą granice pikseli w postaci liczby całkowitej z układu. Interfejs API PopupPositionProvider został zaktualizowany, aby z niego korzystać. (I0d8d0, b/159596546)
  • Do testujących narzędzia do wyszukiwania dodaliśmy nową opcjonalną flagę useUnmergedTree. (I2ce48)
  • Usunięto przestarzałe interfejsy API do testowania rozmiaru. (Iba0a0)
  • Usunięto klasę wbudowanej aplikacji Shader, która opakowała klasę NativeShader, i oczekuje zmiany nazwy klasy NativeShader na Shader. Opakowana klasa wbudowanej aplikacji Shader nie dodała niczego wartościowego do powierzchni interfejsu API, ponieważ była klasą wbudowaną, więc użyj bezpośrednio klasy NativeShader. (I25e4d)
  • Wyskakujące okienka, okna i menu dziedziczą kontekstowy element MaterialTheme (Ia3665, b/156527485)
  • Menu Material Design można teraz przewijać. (Ide699)
  • Usunięto parametr kierunku układu z bloku pomiaru w funkcji Układ(). Kierunek układu jest jednak dostępny w wywołaniu zwrotnym za pomocą obiektu zakresu pomiaru (Ic7d9d)
  • Użyj AnimationSpec zamiast AnimationBuilder w interfejsach API najwyższego poziomu, aby wyjaśnić pojęcie specyfikacji statycznych animacji. – Ulepszenie DSL przejścia przez usunięcie wymogu lambda do tworzenia specyfikacji animacji, takich jak tween, sprężyna. Zamiast tego bezpośrednio przyjmują parametry konstruktora. – Poprawa ogólnej łatwości korzystania z AnimationSpec, przez co konstruktory nie są już potrzebne – Zamiast korzystać z monterów: zmień czas trwania i opóźnienia dla klatek kluczowych i Tween na Int. Eliminuje to niepotrzebne rzutowanie typów i przeciążenie metod (na potrzeby obsługi zarówno długich, jak i Int). (Ica0b4)
  • Gdy zasada enabled ma wartość Fałsz, przełącznik jest teraz wyłączony (If4624, b/155941869, b/159331694)
  • Nazwa parametru Modifier.tag została zmieniona na Modifier.layoutId, aby uniknąć nieporozumień z elementem Modifier.testTag. (I995f0)
  • Pozycje całkowite linii wyrównania zwrócone przez funkcję Placeable#get(BalancementLine) nie mają teraz wartości null. Jeśli brakuje żądanej linii wyrównania, zostanie zwrócona wartość TrackingLine.Unspecified. (I896c5, b/158134875)
  • Zrefaktoryzowano klasę promienia na klasę wbudowaną. Usunęliśmy metody tworzenia elementów towarzyszących na rzecz konstruktora funkcji z domyślnym parametrem, dzięki któremu promień na osi Y odpowiadał obowiązkowemu parametrowi promienia osi X.

    Zaktualizowano element DrawScope.drawRoundRect tak, aby w przypadku promienia wzdłuż osi x i Y przetwarzał 1 parametr Radius zamiast 2 osobnych wartości zmiennoprzecinkowych (I46d1b).

  • Aby skonsolidować liczbę klas służących do reprezentowania informacji o pozycjonowaniu, ustandaryzuj wykorzystanie klasy Offset zamiast PxPosition. Dzięki temu klasa wbudowanej wykorzystuje wartości zmiennoprzecinkowe do pakowania typu „long-to pack” (wartości zmiennoprzecinkowe) reprezentujące przesunięcia X i Y w postaci liczby zmiennoprzecinkowej. (I3ad98)

  • Zastąpiliśmy użycie klasy Px w różnych klasach tworzenia w ramach refaktoryzacji polegającej na stosowaniu parametrów pikseli tylko na typach Dp i podstawowych. Usunięto całą klasę Px (I3ff33)

  • Komponent, który można przełączać, został wycofany. Użyj interfejsu Modifier.toggleable (I35220, b/157642842)

  • Zastąpiliśmy użycie klasy Px w różnych klasach tworzenia w ramach refaktoryzacji polegającej na stosowaniu tylko typów Dp i typów podstawowych w parametrach piksela (I086f4).

  • Zastąpiliśmy użycie klasy Px w różnych klasach tworzenia w ramach refaktoryzacji polegającej na stosowaniu tylko typów Dp i typów podstawowych w parametrach piksela (Id3434).

  • Zastąpiliśmy użycie klasy Px w różnych klasach tworzenia w ramach refaktoryzacji polegającej na stosowaniu tylko typów Dp i typów podstawowych w parametrach piksela (I97a5a).

  • Poprawiono wywoływanie onClick w przypadku elementu DropdonMenuItems. (I3998b, b/157673259)

  • Funkcja MutuallyExclusiveSetItem została wycofana. Zamiast niej użyj elementu Modifier.selectable. (I02b47, b/157642842)

  • Funkcja TestTag została wycofana. Zamiast tego użyj parametru Modifier.testTag. (If5110, b/157173105)

  • Kursor w polu TextField ma migającą animację (Id10a7)

  • Zastąpiliśmy użycie klasy Px w różnych klasach tworzenia w ramach refaktoryzacji polegającej na stosowaniu tylko typów Dp i typów podstawowych w parametrach piksela (I19d02).

  • Wyjątkowa funkcja Vertical Scroller teraz udostępnia kolumnę Column. Horizontal Scroller teraz udostępnia wiersz z opcją. (Ieca5d, b/157020670)

  • Zastąpiliśmy użycie klasy Px w różnych klasach tworzenia w ramach refaktoryzacji polegającej na stosowaniu tylko typów Dp i typów podstawowych w parametrach piksela (Iede0b).

  • Funkcja Modifier.semantics została wycofana, aby można było korzystać z komponentów wysokiego poziomu. (I4cfdc)

  • Interfejs API modyfikatorów DrawLayer został zmieniony: outlinekształt zmienił się na kształt i ma teraz wartość domyślną banner shape, a teraz nie może mieć wartości null; element clipToOutline został zmieniony na clip

  • Zaktualizowane interfejsy API tworzenia wyższego poziomu, które udostępniają obiekt Canvas na potrzeby korzystania z CanvasScope. Dzięki temu nie muszą oni utrzymywać własnych obiektów Paint. Klienci, którzy nadal potrzebują dostępu do Canvas, mogą użyć metody rozszerzenia pullCanvas, która udostępnia wywołanie zwrotne do wysyłania poleceń rysowania za pomocą bazowego obiektu Canvas. (I80afd)

  • Funkcja kompozycyjna {9}LineOffset została wycofana. Zamiast niej użyj modyfikatora relatedPaddingFrom(). Element kompozycyjny CenterWyrównajLine został usunięty. (I60107)

  • Zmieniono interfejs API lambda na końcu WithConstraints. Zamiast 2 parametrów ma zakres odbiornika, który oprócz ograniczeń i układu DirectionDirections udostępnia właściwości minWidth, maxWidth, minHeight i maxHeight w Dp (I91b9a, b/149979702).

  • Dodano modyfikator układu defaultMinSizeConstraints, który ustawia ograniczenia rozmiaru w układzie opakowanym tylko wtedy, gdy przychodzące odpowiednie ograniczenia są nieokreślone (0 w przypadku ograniczeń minimalnych i nieskończoności w przypadku ograniczeń maksymalnej liczby). (I311ea, b/150460257)

  • Element FocusManagerAmbient został usunięty. Aby uzyskać fokus, użyj interfejsu FocusModifier.requestFocus. (Ic4826)

  • Utworzono interfejs CanvasScope API, który opakowuje obiekt Canvas w celu udostępnienia bezstanowej, deklaratywnej powierzchni interfejsu API do rysowania. Przekształcenia są zawarte w zakresie odbiorcy, a informacje o rozmiarze również są ograniczone do odpowiednich granic w tekście. Nie wymaga ona utrzymywania własnego obiektu stanu Paint do konfigurowania operacji rysowania.

    Dodaliśmy CanvasScopeSample oraz zaktualizowaliśmy aplikację demonstracyjną, dodając do niej deklaratywną wersję demonstracyjną (Ifd86d).

  • Dodaj dostosowanie koloru kursora do pola tekstowego (I6e33f)

  • Wartość TextFieldValue używana w polu TextField może teraz działać poza okresem odtwarzania aktywności, gdy jest używana w ten sposób: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce, b/155075724)

  • Zmieniliśmy nazwę elementu LayoutModifier2 na LayoutModifier. (Id29f3).

  • Usunięto wycofany interfejs LayoutModifier. (I2a9d6)

  • Zastąpiliśmy parametr CoreTextField/TextField scanIdentifier, koncentracją na FocusNode, aby zintegrować go z podsystemem fokusu. (I7ea48)

  • Funkcje pomiarów wewnętrznych w funkcjach Layout i UkładModifier2 mają teraz odbiornik IntrinsicMeasureScope, który zapewnia wewnętrzny interfejs API zapytań z niejawnie rozpowszechnianym kierunkiem układu. (Id9945)

  • Dodano nową funkcję Modifier.zIndex() w celu kontrolowania kolejności rysowania elementów podrzędnych w tym samym układzie nadrzędnym. Właściwość poziomu w elemencie DrawLayerModifier została zmieniona na shadowElevation i nie kontroluje już kolejności rysowania. Kolejność parametrów w DrawShadow zmieniła się: wysokość jest teraz pierwszą wartością, a kształt jest drugim z domyślną wartością Battery shape. (I20150, b/152417501)

  • Prostota kształtu została przeniesiona z androidx.ui.foundation.shape.* do androidx.ui.graphics.* (Ia74d5, b/154507984)

  • Aktualizacja interfejsu TextField API – scalono wywołania zwrotne onFocus i onBlur w jedno wywołanie zwrotne onFocusChange(Boolean) z parametrem (I66cd3)

  • Dodano parametry pionowe grawitacji i poziome grawitacja odpowiednio do wierszy i kolumn. (I7dc5a)

  • Zaktualizowano wartości wrapContentWidth i wrapContentHeight, aby uzyskać wyrównanie pionowe lub poziome, a nie wyrównanie. Modyfikator grawitacji został zaktualizowany, aby akceptować wyrównanie w pionie lub poziomie. Wiersze, kolumny i stosy zostały zaktualizowane tak, by umożliwić obsługę niestandardowego ciągłego wyrównywania. (Ib0728)

  • Utworzyliśmy interfejs PixelMap API, aby umożliwić obsługę wysyłania zapytań o informacje o pikselach z komponentów ImageAsset. (I69ad6)

  • Usuwa komponent ProvideContentColor. Zamiast tego używaj elementu ContentColorAmbient bezpośrednio z atrybutem Providers (Iee942)

  • Nazwa modułu ui-text-compose to teraz ui-text. Moduł ui-text zawiera teraz obiekty kompozycyjne CoreText i CoreTextField (Ib7d47).

  • Nazwa modułu ui-text została zmieniona na ui-text-core (I57dec)

  • Przeniesiono platformę ui-framework/CoreText i elementy kompozycyjne CoreTextField w obszarze ui-text-compose. Możesz dodać do projektu polecenie ui-text-compose. (I32042)

  • Ulepsz DrawModifier API:

    • Utworzono zakres odbiornika pull() ContentDrawScope
    • Usunięto wszystkie parametry z funkcji pull()
    • DrawScope ma ten sam interfejs co poprzednia wersja CanvasScope
    • ContentDrawScope ma metodę pullContent() (Ibaced, b/152919067)
  • runOnIdleCompose i runOnUiThread to teraz funkcje globalne, a nie metody w ComposeTestRule. (Icbe8f)

  • [Mutable]Operatorzy delegowani przez władze stanowe zostali przeniesieni do rozszerzeń, aby umożliwić optymalizowanie przekazywania dostępu w Kotlin w wersji 1.4. Aby nadal korzystać z metody by state { ... } lub by mutableStateOf(...), wywołujące muszą dodać importy. (I5312c)

  • Dodano element positionInParent i boundsInParent do współrzędnych układu. (Icacdd, b/152735784)

  • Interfejs ColoredRect został wycofany. Użyj w zamian pola Box(Modifier.preferredSize(szerokość, wysokość).drawBackground(color)). (I499fa, b/152753731)

  • Nazwa elementu LayoutResult została zmieniona na MeasureResult. (Id8c68)

  • Dodano UkładModifier2 – nowy interfejs API do definiowania modyfikatorów układu; wycofano LayoutModifier (If32ac)

  • Zastąpiono operator plusa z funkcjami rozszerzeń fabrycznych (I225e4).

  • Element „Elementy do przeciągania” został przeniesiony do modyfikatora (Id9b16, b/151959544)

  • Funkcja kompozycyjna ParentData została wycofana. Utwórz modyfikator, który implementuje interfejs ParentDataModifier, lub użyj modyfikatora UkładTag, jeśli chcesz tylko otagować elementy podrzędne układu, aby rozpoznawały je wewnątrz bloku miary. (I51368, b/150953183)

  • Wycofany element kompozycyjny: Center. Należy ją zastąpić modyfikatorem UkładSize.Fill + Układ.Center albo jednym z elementów kompozycyjnych Box lub Stack z zastosowanymi odpowiednimi modyfikatorami (Idf5e0).

  • Dodaliśmy interfejs VectorPainter API, który zastępuje dotychczasowy interfejs subcomposition API w grafice wektorowej. W efekcie złożoności podrzędnej powstają w wyniku użycia obiektu VectorPainter, a nie DrawModifier. Wycofano poprzedni element kompozycyjny DrawVector na rzecz VectorPainter.

    Zmieniono nazwę interfejsu API Image(Painter) na PaintBox(Painter) Utworzono obiekt kompozycyjny wektorowy, który zachowuje się jak element kompozycyjny obrazu, ale z wyjątkiem komponentów VectorAsset zamiast ImageAsset (I9af9a, b/149030271)

  • Zmieniono nazwę UkładuElastycznego na UkładWeight. Zmieniono nazwę ścisłego parametru na wypełnienie. (If4738)

  • Usunięto parametr RepaintBoundary na rzecz funkcji DrawLayerModifier (I00aa4)

  • Funkcja DrawVector została zmieniona ze zwykłej funkcji kompozycyjnej do zwracania funkcji modyfikatora pullVector(), która rysuje wektor jako tło układu. (I7b8e0)

  • Funkcja kompozycyjna przezroczystość została zastąpiona modyfikatorem pullOpacity. (I5fb62)

  • Zastąp funkcję kompozycyjną Clip z modyfikatorem drawClip(). DrawClipToBounds to wygodny modyfikator, którego można używać, gdy chcesz przyciąć tylko krawędzie warstwy za pomocą prostokątnego kształtu. (If28eb)

  • Zastąpiliśmy funkcję kompozycyjną DrawShadow modyfikatorem DrawShadow(). Cienie są teraz rysowane w ramach modułu LayerModifier. (I0317a)

  • Dodaliśmy LayerModifier – modyfikator, który umożliwia dodanie obiektu RenderNode do szablonu. Umożliwia ustawianie przycinania, przezroczystości, obrót, skalowania i cieni. Spowoduje to zastąpienie obiektu RepaintBoundary. (I7100d, b/150774014)

  • Strona androidx.compose.ViewComposer została przeniesiona do androidx.ui.node.UiComposer androidx.compose.Emittable została usunięta. Komponent ComputeNode był nadmiarowy. androidx.compose.ViewAdapters został usunięty. Nie są już obsługiwane. Atrybut Compose.composeInto został wycofany. Użyj w zamian zasady setContent lub setViewContent. Parametr Compose.disposeComposition został wycofany. Użyj zamiast tego metody dispose w obiekcie Composition zwróconym przez setContent. Nazwa androidx.compose.Compose.subcomposeInto została przeniesiona do androidx.ui.core.subcomposeInto KomponentNode#emitInsertAt został zmieniony na KomponentNode#insertAt KomponentNode#emitRemoveAt został zmieniony na KomponentNode#removeAt KomponentNode#emitMode został zmieniony na KomponentNode#emitMode.

  • Utworzono obraz kompozycyjny do określania rozmiaru i układu, a także do rysowania określonego zasobu ImageAsset na ekranie. Ten obiekt kompozycyjny umożliwia też rysowanie dowolnych instancji malowanych z uwzględnieniem ich wewnętrznego rozmiaru, a także obsługę danego stałego lub minimalnego rozmiaru (Ibcc8f).

  • Wycofany funkcja kompozycyjna zawijania. Można ją zastąpić modyfikatorem UkładWyrównaj lub kompozycyjnym Stosem (Ib237f).

  • WithConstraints pobiera parametr UkładDirection (I6d6f7)

  • Umożliwiono rozpowszechnianie kierunku układu z nadrzędnego węzła układu do elementów podrzędnych. Dodano modyfikator kierunku układu. (I3d955)

  • .
  • Komponent stosu obsługuje kierunkowość od prawej do lewej (Ic9e00)

  • Element kompozycyjny Drawkształt został usunięty. Użyj modyfikatora DrawBackground. (I7ceb2)

  • Obsługa kierunku od prawej do lewej w modyfikatorze UkładPadding (I9e8da).

  • Dodaliśmy AdapterList – komponent przewijanej listy, który tylko komponuje i rozmieszcza widoczne elementy. Znane problemy obejmują między innymi to, że usługa działa tylko w pionie i nie obsługuje w pełni wszystkich przypadków zmian w elementach podrzędnych. (Ib351b)

  • Zaktualizowano flagę ComposeFlags.COMPOSER_PARAM na true, co zmieni strategię generowania kodu wtyczki tworzenia wiadomości. Ogólnie rzecz biorąc, funkcje @Composable są generowane z dodatkowym parametrem syntetycznym, który jest przekazywany do kolejnych wywołań funkcji @Composable w celu prawidłowego zarządzania wykonywaniem w środowisku wykonawczym. Jest to znacząca zmiana, która powoduje uszkodzenie kodu binarnego, ale powinna zachować zgodność na poziomie źródła we wszystkich sankcjach dotyczących tworzenia wiadomości. (I7971c)

  • Dodano komponent Canvas. Ten element kompozycyjny zajmuje pewien rozmiar (podany przez użytkownika) i umożliwia rysowanie przy użyciu CanvasScope (I0d622)

  • Połączyliśmy funkcje DensityScope i DensityScope w jeden interfejs. Zamiast parametru nieaktywnyDensity() możesz teraz użyć funkcji DensityAmbient.current. Zamiast parametru Gęstość(gęstość) tylko w wartości(gęstość) (I11cb1)

  • Zmieniono układ LayoutCoordinates, aby zamiast mapy w interfejsie LayoutCoordinates ustawić opcję ProvideMatchLines Ułatwia to modyfikatorom modyfikowanie jednej lub wielu wartości w zestawie bez konieczności tworzenia nowego zbioru dla każdego modyfikatora. (I0245a)

  • W przypadku przewijających treści widoczne są teraz natywne zachowanie Androida polegającego na przesuwaniu palcem. (I922af, b/147493715)

  • Ulepszenia powierzchni interfejsu API Ograniczeń (I0fd15)