Materiał tworzenia wiadomości
Twórz interfejsy Jetpack Compose z gotowymi do użycia komponentami Material Design. Jest to punkt wejścia wyższego poziomu w Composer, który ma dostarczać komponenty pasujące do tych opisanych na www.material.io.
Najnowsza aktualizacja Wersja stabilna Kandydat do wydania Wersja Beta Wydanie alfa
26 czerwca 2024 r. 1.6.8 - 1.7.0-beta04 -

Struktura

Narzędzie Compose to połączenie 7 identyfikatorów grup Maven w ramach usługi androidx. Każda grupa zawiera docelowy podzbiór funkcji, z których każda ma własny zestaw informacji o wersji.

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

GrupaOpis
compose.animation,Twórz animacje w aplikacjach Jetpack Compose, aby wzbogacać wrażenia użytkowników.
compose.buildrPrzekształcaj funkcje @Composable i optymalizuj funkcje za pomocą wtyczki kompilatora Kotlin.
compose.foundationTwórz aplikacje w Jetpack Compose, używając gotowych do użycia elementów składowych, i rozbuduj podstawy, aby tworzyć własne elementy systemu.
compose.material,Twórz interfejsy Jetpack Compose z gotowymi do użycia komponentami Material Design. Jest to punkt wejścia wyższego poziomu w Composer, który ma dostarczać komponenty pasujące do tych opisanych na www.material.io.
compose.material3,Twórz interfejsy Jetpack Compose z komponentami Material Design 3, które stanowią kolejną wersję Material Design. Material 3 ma zaktualizowane motywy i komponenty oraz funkcje personalizacji Material You, takie jak dynamiczne kolory, i został zaprojektowany tak, aby był spójny z nowym stylem wizualnym i interfejsem systemu na Androidzie 12.
compose.runtime,Podstawowe elementy składowe modelu programowania i zarządzania stanem w Compose oraz podstawowe środowisko wykonawcze, na które ma być kierowana wtyczka kompilatora Compose.
compose.ui,Podstawowe elementy interfejsu tworzenia wiadomości niezbędne do interakcji z urządzeniem, w tym układ, rysowanie i wprowadzanie tekstu.

Deklarowanie zależności

Aby dodać zależność w Compose, musisz dodać 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.8"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.14"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.14"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

Opinia

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

Tworzenie nowego numeru

Więcej informacji znajdziesz w dokumentacji narzędzia do śledzenia problemów.

Wersja 1.7

Wersja 1.7.0-beta04

26 czerwca 2024 r.

Usługa androidx.compose.material:material-*:1.7.0-beta04 została zwolniona. Wersja 1.7.0-beta04 zawiera te zatwierdzenia.

Wersja 1.7.0-beta03

12 czerwca 2024 r.

Usługa androidx.compose.material:material-*:1.7.0-beta03 została zwolniona. Wersja 1.7.0-beta03 zawiera te zatwierdzenia.

Wersja 1.7.0-beta02

29 maja 2024 r.

Usługa androidx.compose.material:material-*:1.7.0-beta02 została zwolniona. Wersja 1.7.0-beta02 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Aktualizacja interfejsu API do określania stylu linków: przenieś TextLinkStyles do TextStyle i usunięto TextDefaults z materiału (I5477b)

Wersja 1.7.0-beta01

14 maja 2024 r.

Usługa androidx.compose.material:material-*:1.7.0-beta01 została zwolniona. Wersja 1.7.0-beta01 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Zaktualizowaliśmy interfejs API pod kątem pobierania w tekście linków o tematyce Material. W tym celu usunęliśmy metody z TextDefaults do tworzenia tematycznych LinkAnnotations i analizuj kod HTML za pomocą linków tematycznych. Zamiast tego dodaliśmy klasę TextLinkStyles, która pozwala na określenie stylu linków jako parametr funkcji Text composable. (I31b93)

Wersja 1.7.0-alpha08

1 maja 2024 r.

Usługa androidx.compose.material:material-*:1.7.0-alpha08 została zwolniona. Wersja 1.7.0-alfa08 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Rozwiąż problem z końcówką backgroundColor, który nie występuje w tabelach TextFieldDecorationBox i OutlinedTextFieldDecorationBox. Pola dekoracji obsługują teraz parametr shape. (I371c2, b/307694651)
  • Tabela RippleConfiguration#isEnabled została usunięta, a domena LocalRippleConfiguration może mieć wartość null. Aby wyłączyć Echo, zamiast podawać RippleConfiguration z isEnabled = false, podaj null dla LocalRippleConfiguration. (I22725)
  • Oprócz zwykłego stylu linków tekstowych, po najechaniu kursorem na element lub podświetleniu, linki tekstowe mają opcję stylu po naciśnięciu. Każda z metod TextDefaults ma argument pressedStyle, który to potwierdza. (Ic473f, b/139312671)

Poprawki błędów

  • OutlinedTextField dopełnienie u góry etykiety uwzględnia teraz systemowy rozmiar czcionki. (Idc781).

Wersja 1.7.0-alpha07

17 kwietnia 2024 r.

Usługa androidx.compose.material:material-*:1.7.0-alpha07 została zwolniona. Wersja 1.7.0-alfa07 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Oprócz normalnego stylu, najechania kursorem i zaznaczenia linki tekstowe otrzymały opcję stylizacji stanu naciśniętego. (I5f864, b/139312671)
  • Dodano obiekt TextDefaults, który zawiera metody tworzenia obiektu LinkAnnotation i analizy ciągu z tagami HTML, który powoduje zastosowanie wartości MaterialTheme do linków. (I98532, b/139312671)

Wersja 1.7.0-alpha06

3 kwietnia 2024 r.

Usługa androidx.compose.material:material-*:1.7.0-alpha06 została zwolniona. Wersja 1.7.0-alfa06 zawiera te zatwierdzenia.

Ogłoszenie

  • Ta grupa Maven nie wymaga już używania tej samej wersji każdego artefaktu w androidx.compose.material. Użytkownicy mogą mieszać i dopasowywać wersje bibliotek podstawowych Compose (Ie5fba)

Zmiany interfejsu API

  • Przeniesiono więcej wartości ModalDrawer i BottomDrawer do obiektu DrawerDefaults. (IB5b2e)

Wersja 1.7.0-alpha05

20 marca 2024 r.

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

Zmiany interfejsu API

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

Wersja 1.7.0-alpha04

6 marca 2024 roku

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

Nowe funkcje

Wersja 1.7.0-alpha03

21 lutego 2024 r.

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

Zmiany interfejsu API

  • Wersja BottomDrawer została zmieniona z eksperymentalnej na stabilną. BottomDrawerState udostępnia teraz postęp jako funkcję, co pozwala na wysyłanie zapytań o postęp między określonymi celami. BottomDrawerState umożliwia teraz dostosowywanie specyfikacji animacji, a confirmStateChange nie jest już parametrem lambda na końcu. (I9c029, b/261423850)
  • Wersja BackdropScaffold została zmieniona z eksperymentalnej na stabilną. Specyfikacja animacji to teraz specyfikacja tween, zgodnie z wytycznymi. Parametr snackbarHost elementu BackdropScaffold nie jest już ostatnim parametrem, który pozwala uniknąć nieporozumień z końcowymi wartościami lambda. BackdropScaffoldState udostępnia interfejs API progress(from, to) do sprawdzania postępu między kotwicami. (I73f48, b/261423218)
  • Standardowe dolne arkusze zostały przekształcone z eksperymentalnej na stabilną. Wycofane konstruktory zostały usunięte. Specyfikacja animacji to teraz specyfikacja dla starszych dzieci (zgodnie z wytycznymi). (I3c1a8, b/278692145, b/261409034)
  • Modalne plansze dolne zostały zmienione z eksperymentalnej na stabilną. Wycofane konstruktory zostały usunięte. Specyfikacja animacji to teraz specyfikacja tween, zgodnie z wytycznymi. (Ic53f4, b/278692145, b/266780235, b/261409034)

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował awarię pakietu BackdropScaffold w określonych sytuacjach w połączeniu z zasadą LookaheadScope. (I51396)
  • W celu zwiększenia wydajności usunięto składnię wewnątrz elementu BottomSheetScaffold. Rozwiązaliśmy problem, który powodował awarię pakietu BottomSheetScaffold w określonych sytuacjach w połączeniu z zasadą LookaheadScope. (I2f90c)
  • Usunięto składową składnię ModalBottomSheetLayout, aby poprawić wydajność. (I7a025)

Wersja 1.7.0-alpha02

7 lutego 2024 r.

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

Wersja 1.7.0-alpha01

24 stycznia 2024 r.

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

Zmiany w działaniu

  • Komponenty materiałowe zostały przeniesione do nowych interfejsów API Ripple i nie są już wysyłane do RippleTheme.

Zmiany interfejsu API

  • Interfejsy rememberRipple i RippleTheme zostały wycofane ze środowiska Material-FarpRippleConfiguration

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

Wersja 1.6

Wersja 1.6.8

12 czerwca 2024 r.

Usługa androidx.compose.material:material-*:1.6.8 została zwolniona. Wersja 1.6.8 zawiera te zatwierdzenia.

Wersja 1.6.7

1 maja 2024 r.

Usługa androidx.compose.material:material-*:1.6.7 została zwolniona. Wersja 1.6.7 zawiera te zatwierdzenia.

Wersja 1.6.6

17 kwietnia 2024 r.

Usługa androidx.compose.material:material-*:1.6.6 została zwolniona. Brak zmian od ostatniej wersji.

Wersja 1.6.5

3 kwietnia 2024 r.

Usługa androidx.compose.material:material-*:1.6.5 została zwolniona. Wersja 1.6.5 zawiera te zatwierdzenia.

Wersja 1.6.4

20 marca 2024 r.

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

Wersja 1.6.3

6 marca 2024 roku

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

Poprawki błędów

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

Wersja 1.6.2

21 lutego 2024 r.

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

Wersja 1.6.1

7 lutego 2024 r.

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

Wersja 1.6.0

24 stycznia 2024 r.

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

Wersja 1.6.0-rc01

10 stycznia 2024 r.

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

Wersja 1.6.0-beta03

13 grudnia 2023 r.

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

Wersja 1.6.0-beta02

29 listopada 2023 r.

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

Wersja 1.6.0-beta01

15 listopada 2023 r.

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

Wersja 1.6.0-alpha08

18 października 2023 r.

Usługa androidx.compose.material:material-*:1.6.0-alpha08 została zwolniona. Wersja 1.6.0-alfa08 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Wycofanie funkcji materialIcon na rzecz jej przeciążenia, które przyjmuje parametr autoMirror. (IA338d).

Poprawki błędów – automatyczne zwiększanie wysokości elementu nawigacji w przypadku obszernych treści. (0c4ecc, b/272336962)

Wersja 1.6.0-alpha07

4 października 2023 roku

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

  • Aktualizacje zależności

Wersja 1.6.0-alpha06

20 września 2023 r.

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

Wyjątkowa zmiana w działaniu

  • Usunięto funkcję panelu BottomSheetScaffold. Aby korzystać z poprzedniej funkcji, umieść BottomSheetScaffold w szufladzie kompozycyjnej. Przykład znajdziesz w sekcji BottomSheetScaffoldWithDrawerSample. (I1dcc8).

Zmiany interfejsu API

  • Dodaliśmy tymczasową flagę pozwalającą kontrolować, czy Scaffold powinien mierzyć elementy podrzędne podczas pomiaru czy umieszczania. Domyślnie będzie to mierzone. Jeśli masz problemy z nowym sposobem działania, zgłoś problem. (If6e3b).

Wersja 1.6.0-alpha05

6 września 2023 r.

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

Nowe funkcje

  • Dodaliśmy obsługę automatycznie powielanych ikon podczas renderowania w układach od prawej do lewej. Ikony w modułach material-icons-core i material-ikony rozszerzone zawierają teraz dodatkowe zestawy ikon do obsługi automatycznego odbicia lustrzanego, jeśli pozwala na to ikona. Nowe zestawy będą miały przedrostek Icons.AutoMirrored.Filled... itp. i przytrzymaj ikony, które będą się automatycznie wyświetlać w układach od prawej do lewej. Zobacz listę ikon Material, aby poznać listę ikon, które mogą (i powinny) być automatycznie powielane.

Zmiany interfejsu API

  • Dodaliśmy obsługę automatycznie powielanych ikon podczas renderowania w układach od prawej do lewej. Ikony w modułach material-icons-core i material-ikony rozszerzone zawierają teraz dodatkowe zestawy ikon do obsługi automatycznego odbicia lustrzanego, jeśli pozwala na to ikona. Nowe zestawy będą miały przedrostek Icons.AutoMirrored.Filled... itp. i przytrzymaj ikony, które będą się automatycznie wyświetlać w układach od prawej do lewej. Zobacz listę ikon Material, aby poznać listę ikon, które mogą (i powinny) być automatycznie powielane. Podane wcześniej właściwości tych ikon zostały oznaczone jako wycofane i zapewniamy sugestie dotyczące blokowania ich, co pomoże w migracji. Jeśli nie ma specjalnej obsługi powielania ikon w zapisie od prawej do lewej, zalecamy migrację do nowego zestawu ikon. Na przykład pole Icons.Filled.ArrowBack należy poddać refaktoryzacji na Icons.AutoMirrored.Filled.ArrowBack. (I4b511)

Wersja 1.6.0-alpha04

23 sierpnia 2023 r.

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

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że niektóre komponenty korzystające z funkcji Subcomposition (np. BottomSheetScaffold) w Scaffold w obiekcie LookaheadScope zbyt wcześnie próbowały odczytywać swój rozmiar. (If2c5d).
  • Naprawiono obliczenie offset dla DropdownMenu, więc odsunięcia x zależą wyłącznie od kierunku układu lokalnego. Odsunięcia y nie będą już cofane, gdy menu znajdzie się u dołu ekranu. (Iccc74, b/294103942)
  • Zoptymalizowaliśmy elementy wewnętrzne układu BottomSheetScaffold i naprawiliśmy potencjalny problem z elementem BottomSheetScaffold wewnątrz elementu LookaheadLayout. (ic0afa)

Wersja 1.6.0-alpha03

9 sierpnia 2023 r.

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

Zmiany interfejsu API

  • Komponenty Material2 mają teraz oddzielny interfejs API do przekazywania interfejsu windowInsets na potrzeby obsługi aplikacji od krawędzi do krawędzi w Androidzie. W przeciwieństwie do komponentów material3 komponenty material2 domyślnie nie obsługują wkładek, dlatego wartość powinna być przekazywana ręcznie. Wskazówki znajdziesz w odpowiednich przykładach. (I655e8)

Wersja 1.6.0-alpha02

26 lipca 2023 r.

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

Zmiany interfejsu API

  • Przenosimy zależność gęstości na poziom komponentu. Dotyczy to komponentów opartych na arkuszu SwipeToDismiss i komponentach opartych na arkuszu. Użyj nowego dostępnego przeciążenia, w którym gęstość jest parametrem. (I1846e)
  • Dodatkowe adnotacje do określania dozwolonych danych wejściowych do elementów kompozycyjnych (I51109)
  • Zaktualizowano pliki interfejsu API, aby dodać adnotacje o pomijaniu zgodności (I8e87a, b/287516207)
  • Dodano nowe wyrównanie rozpoczęcia dla języka FabPosition (Ib7aea, b/170592777)
  • Interfejs TextFieldColorsWithIcons w Material 2 został wycofany i zastąpiony przez interfejs TextFieldColors. Podczas zastępowania wartości leadingIconColor lub trailingIconColor zastąp też przeciążenie funkcją interactionSource. (Id57ed, b/199377790)

Wersja 1.6.0-alpha01

21 czerwca 2023 r.

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

Zmiany w działaniu

  • includeFontPadding to teraz false domyślnie w typografii Material 2. Domyślny styl wysokości wiersza również został zmieniony na Trim.None i Alignment.Center, a do elementów TextStyle w tabeli Typography dodaliśmy wyraźne lineHeight (w sp). Aby dostosować te wartości, zapoznaj się z dokumentacją interfejsu API, a szczegółowe omówienie tych zmian znajdziesz w poście na blogu. (Icabc3, I3f801, I04c03)

Zmiany interfejsu API

  • Interfejsy API Swipeable Material zostały wycofane. Zapoznaj się z interfejsami API AnchoredDraggable Foundation, które są zoptymalizowane zarówno pod kątem prostych, jak i złożonych przypadków użycia. (I732e0)

Poprawki błędów

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

Wersja 1.5

Wersja 1.5.4

18 października 2023 r.

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

Wersja 1.5.3

4 października 2023 roku

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

Wersja 1.5.2

27 września 2023 r.

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

Wersja 1.5.1

6 września 2023 r.

Pakiet androidx.compose.material:material-*:1.5.1 został udostępniony bez zmian. Wersja 1.5.1 zawiera te zatwierdzenia.

Wersja 1.5.0

9 sierpnia 2023 r.

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

Ważne zmiany wprowadzone od wersji 1.4.0

Zmiany interfejsu API

  • Wprowadzono zmiany w interfejsach API przesuwanych1 w BottomSheetScaffold. Nazwa parametru confirmStateChange użytkownika BottomSheetState została zmieniona na confirmValueChange. Pole progress jest teraz wyświetlane jako wartość zmiennoprzecinkowa. animateTo i snapTo są wewnętrzne. Zamiast nich używaj kolumn expand() i collapse(). Usunięto direction i overflow. Element offset został zastąpiony tekstem requireOffset(). I323b4
  • Oznacz funkcję snapTo w panelu jako nieeksperymentalny interfejs API. (Ib9c18, b/261425368)
  • Dodaliśmy parametr koloru ścieżki dla okrągłych wskaźników postępu oraz parametr limitu kreski dla okrągłych i liniowych wskaźników postępu. (Ie668c, b/216325962, b/222964817)
  • Zmieniono nazwę elementów ModalBottomSheetState, ModalBottomSheetState.Saver i confirmStateChange użytkownika rememberModalBottomSheetState na confirmValueChange. (IB48d1)
  • Dodaj Modifier.minimumInteractiveComponentSize. Można go użyć, by zarezerwować rozmiar co najmniej 48 dp, aby jednoznacznie rozróżnić interakcje dotykowe, gdy element byłby mniejszy. (I33f58, b/258495559)
  • Wprowadzono zmiany w przesuwanych interfejsach API w ModalBottomSheetLayout. Parametr animateTo ModalBottomSheetState nie przyjmuje już parametru animationSpec, a wyświetlone przesunięcie może teraz mieć wartość null. Użyj funkcji requireOffset, aby wymagać przesunięcia. (Ia2e79).
  • Dodawanie adnotacji @JvmDefaultWithCompatibility (I8f206)
  • Zmiany wprowadzone w przesuwanych interfejsach API w animateTo ModalDrawer. DrawerState zostały zastąpione metodami otwierania i zamykania, a przesunięcie umożliwia teraz wartość null. Użyj funkcji requireOffset, aby wymagać przesunięcia. (I3de9e).
  • Zaktualizowaliśmy panele i panele, tak aby prawidłowo opóźniały naciśnięcia, gdy gesty mogą stać się zdarzeniami przewijania.
  • Dodano parametr minLines do obiektu Material3 Text oraz TextField i OutlinedTextField, który umożliwia ustawienie minimalnej wysokości komponentu w zależności od liczby linii (I4af1d).

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że interfejs pullRefresh nie zużywał prędkości, co powodowało wyświetlanie nadmiernego przewijania. Zmieniono też podpis interfejsu API funkcji lambda onRelease w elemencie Modifier.pullRefresh, aby zwracał liczbę zmiennoprzecinkową dla prędkości wykorzystania (I7db65, b/266874741).
  • BottomSheetState, ModalBottomSheetState i BottomDrawerState udostępniają teraz właściwość postępu wskazująca postęp między bieżącą (umieszczoną) kotwicą i najbliższą kotwicą w kierunku przesuwania. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
  • Naprawiono działanie zamknięcia AlertDialog, które pojawiało się pod działaniem potwierdzenia, gdy działania nakładały się na siebie, by pasowały do szerokości okna. Ta poprawka dopasowuje implementację do specyfikacji Material Design (I029de, b/235454277).
  • Gdy zasada gesturesEnabled ma wartość Fałsz, BottomSheetScaffold nie będzie już korzystać z zagnieżdżonego przewijania. (I634f3, b/215403277)
  • Naprawiono błąd, który powodował awarię pliku BottomSheetScaffold po udostępnieniu pustej treści w boksach. (Ib24a5, b/235588730)
  • Naprawiono PullRefreshIndicator przechwytujące kliknięcia/zdarzenia wskaźnika. (2494256, b/271777421)
  • Rozwiązaliśmy problem, który powodował awarię pliku ModalBottomSheetLayout w przypadku krawędzi wielkości liter po zmianie orientacji. Animacje układu (np. Modifier.animateContentSize) w zawartości arkusza działają teraz płynnie. (I2f981, b/266780234)

Wersja 1.5.0-rc01

26 lipca 2023 r.

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

Wersja 1.5.0-beta03

28 czerwca 2023 r.

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

Poprawki błędów

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

Wersja 1.5.0-beta02

7 czerwca 2023 r.

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

Wersja 1.5.0-beta01

24 maja 2023 r.

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

Zmiany interfejsu API

  • Przesunięcie elementów DrawerState i BottomDrawerState nie może już dopuszczać wartości null. Zamiast tego zwracają wartość Float.NaN, aby wskazać brak przesunięcia. (IE9855)
  • Dodano opcję przekazywania w polu ScrollState podczas tworzenia elementów DropdownMenu lub ExposedDropdownMenu do kontrolowania stanu przewijania w pionie wyświetlanych elementów menu. (Idb009, b/185304441)
  • Dodaj obsługę włączania/wyłączania gestu ModalBottomSheetLayout, aby użytkownik mógł skonfigurować go na potrzeby bardziej polecanej planszy dolnej (I40af0)
  • Dodano parametr koloru do elementu BasicText, aby umożliwić sprawne animowanie lub ustawianie koloru tekstu. (Iffd88, b/246961787)
  • Zmieniamy nazwę właściwości Semantyka isContainer na isTraversalGroup (I121f6).

Poprawki błędów

  • Naprawiono działanie zamknięcia AlertDialog, które pojawiało się pod działaniem potwierdzenia, gdy działania nakładały się na siebie, by pasowały do szerokości okna. Ta poprawka pozwala dostosować implementację do specyfikacji Material Design (I029de, b/235454277).

Wersja 1.5.0-alpha04

10 maja 2023 r.

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

Zmiany interfejsu API

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

Wersja 1.5.0-alpha03

19 kwietnia 2023 r.

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

Zmiany interfejsu API

  • Zaktualizuj interfejsy wewnętrzne BottomDrawer, aby używały nowych interfejsów API SwipeableV2. Z tego powodu BottomDrawerState będzie teraz mieć zdefiniowane tylko interfejsy API na poziomie klasy, nie odziedziczy metod/właściwości z klasy SwipeableState. Używamy kompozycji z wewnętrznym elementem SwipeableV2State. Przesunięcie jest teraz właściwością zmiennoprzecinkową dopuszczalną do wartości null. Do bieżącej wartości i celu przesuwania wciąż można uzyskać dostęp za pomocą właściwości currentValue i targetValue. Poprzednie metody na poziomie klasy, takie jak open/expand/close i właściwości takie jak isOpen/isClosed, nadal są obsługiwane. (Iad40c, b/178529942, b/220676296)

Poprawki błędów

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

Wersja 1.5.0-alpha02

5 kwietnia 2023 r.

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

Poprawki błędów

  • Naprawiono błąd, który powodował awarię pliku BottomSheetScaffold po udostępnieniu pustej treści w boksach. (Ib24a5, b/235588730)
  • Naprawia PullRefreshIndicator przechwytujące kliknięcia / zdarzenia wskaźnika (2494256, b/271777421)

Wersja 1.5.0-alpha01

22 marca 2023 r.

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

Poprawki błędów

  • Dodaj przykład zmiany przepływu grupy elementów. Zaktualizuj poziome dopełnienie między elementami podrzędnymi w próbce grupy elementów z jedną wierszem, aby pasowało do specyfikacji (I3b155).
  • Rozwiązaliśmy problem, który powodował awarię pliku ModalBottomSheetLayout w przypadku krawędzi wielkości liter po zmianie orientacji. Animacje układu (np. Modifier.animateContentSize) w zawartości arkusza działają teraz płynnie. (I2f981, b/266780234)

Wersja 1.4

Wersja 1.4.3

3 maja 2023 r.

Wersja androidx.compose.material:material-*:1.4.3 została udostępniona bez zmian (tylko zwiększenie liczby wersji).

Wersja 1.4.2

19 kwietnia 2023 r.

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

Wersja 1.4.1

5 kwietnia 2023 r.

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

Wersja 1.4.0

22 marca 2023 r.

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

Ważne zmiany wprowadzone od wersji 1.3.0

Zmiany interfejsu API

  • Dodaj Modifier.minimumInteractiveComponentSize. Można go użyć, by zarezerwować rozmiar co najmniej 48 dp, aby jednoznacznie rozróżnić interakcje dotykowe, gdy element byłby mniejszy. (I33f58, b/258495559)
  • Wprowadzono zmiany w przesuwanych interfejsach API w ModalDrawer. Metoda animateTo w DrawerState została zastąpiona metodami otwarcia i zamknięcia, a przesunięcie umożliwia teraz wartość null. Użyj funkcji requireOffset, aby wymagać przesunięcia. (I3de9e).
  • Dodano parametr minLines do obiektu Material3 Text oraz TextField i OutlinedTextField, który umożliwia ustawienie minimalnej wysokości komponentu w zależności od liczby linii (I4af1d).
  • Do komponentów BasicText i BasicTextField dodaliśmy parametr minLines. Pozwala ustawić minimalną wysokość elementów kompozycyjnych w postaci liczby wierszy (I24294, b/122476634)

Wersja 1.4.0-rc01

8 marca 2023 r.

Pakiet androidx.compose.material:material-*:1.4.0-rc01 został udostępniony bez zmian. Wersja 1.4.0-rc01 zawiera te zatwierdzenia.

Wersja 1.4.0-beta02

22 lutego 2023 roku

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

Zmiany interfejsu API

  • Wprowadzono zmiany w przesuwanych interfejsach API w BottomSheetScaffold. Nazwa parametru confirmStateChange użytkownika BottomSheetState została zmieniona na confirmValueChange. Pole progress jest teraz wyświetlane jako wartość zmiennoprzecinkowa. animateTo i snapTo są wewnętrzne. Zamiast nich używaj kolumn expand() i collapse(). Usunięto direction i overflow. Element offset został zastąpiony tekstem requireOffset(). (I323b4)

Poprawki błędów

  • Usunęliśmy role semantyczne z platform, które można kliknąć i zaznaczyć, oraz zaktualizowaliśmy komponenty, które korzystały z tych elementów do ustawiania ról za pomocą atrybutu modyfikator.semantics (Ibb4ba).
  • Drobna aktualizacja rozszerzonych ikon Material Design, które ulepszają wypełnione ikony desktop_mac, directions i kitchen. (I65f5e)

Wersja 1.4.0-beta01

8 lutego 2023 r.

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

Zmiany interfejsu API

  • Rozwiązaliśmy problem, który powodował, że interfejs pullRefresh nie zużywał prędkości, co powodowało wyświetlanie nadmiernego przewijania. Zmieniono też podpis interfejsu API funkcji lambda onRelease w elemencie Modifier.pullRefresh, aby zwracał liczbę zmiennoprzecinkową dla prędkości wykorzystania (I7db65, b/266874741).
  • Metoda pobierania właściwości LocalMinimuTouchTargetEnforcement została przywrócona i oznaczona jako wycofana oraz przekierowująca do LocalMinimumInteractiveComponentEnforcement. (I60dd5)

Wersja 1.4.0-alpha05

25 stycznia 2023 r.

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

Poprawki błędów

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

Wersja 1.4.0-alpha04

11 stycznia 2023 r.

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

Zmiany interfejsu API

  • Dodano we właściwości semantyki IsContainer na platformach. Ta właściwość zostanie użyta w późniejszej zmianie, która określa kolejność przechodzenia między elementami na podstawie semantycznego znaczenia elementów takich jak powierzchnie. (I63379)
  • Oznacz funkcję snapTo w panelu jako nieeksperymentalny interfejs API. (Ib9c18, b/261425368)
  • Dodaliśmy parametr koloru ścieżki dla okrągłych wskaźników postępu oraz parametr limitu kreski dla okrągłych i liniowych wskaźników postępu. (Ie668c, b/216325962, b/222964817)
  • Zmieniono nazwę elementów ModalBottomSheetState, ModalBottomSheetState.Saver i confirmStateChange użytkownika rememberModalBottomSheetState na confirmValueChange. (IB48d1)
  • Większa dopuszczalność zwracanych wartości null wycofanych funkcji ukrytych (Ibf7b0)
  • Dodaj Modifier.minimumInteractiveComponentSize. Można go użyć, by zarezerwować rozmiar co najmniej 48 dp, aby jednoznacznie rozróżnić interakcje dotykowe, gdy element byłby mniejszy. (I33f58, b/258495559)
  • Wprowadzono zmiany w przesuwanych interfejsach API w ModalBottomSheetLayout. animateTo w elemencie ModalBottomSheetState nie przyjmuje już parametru animationSpec, a widoczna wartość wymiaru offset może mieć teraz wartość null. Użyj zasady requireOffset, aby wymagać uprawnienia offset. (Ia2e79).

Poprawki błędów

  • Arkusz elementu ModalBottomSheetLayout ma teraz maksymalną szerokość 640 dp. (I71a4f, b/234927577)
  • Rozwiązaliśmy problem, który powodował, że usługa rememberPullRefreshState nie aktualizowała przez pewien czas elementów refreshThreshold i refreshingOffset. (Ifed10, b/263159832)
  • Postęp w przypadku wskaźników postępu jest teraz prawidłowo ograniczony do oczekiwanego zakresu. (I8a7eb, b/262262727)
  • Jeśli element ModalBottomSheetState nie otrzymał jeszcze żadnych kotwic, w przypadku wywołania snapTo lub animateTo zaktualizuje currentValue bez animacji, zamiast zgłaszać wyjątek. (I2c91b)
  • Naprawiono stan włączenia w implementacji FilterChip Material 2. (Id326a, b/261329817)
  • Naprawiono błąd, który powodował awarię ModalBottomSheetLayout przy obróceniu z pionowej do poziomej orientacji ekranu (HalfExpanded). Upewnij się, że przekazujesz prawidłowy initialValue, na przykład sprawdzając konfigurację. (Ie8df7, b/182882364)
  • Rozwiązaliśmy problem, który powodował awarię pliku ModalBottomSheetLayout, jeśli zawartość arkusza była pusta. ModalBottomSheetLayout zezwala teraz na pustą zawartość arkusza. Jeśli zawartość arkusza jest pusta, będzie mieć tylko stan Ukryty. (Ic2288, b/200980998, b/216693030)

Znany problem

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

Wersja 1.4.0-alpha03

7 grudnia 2022 r.

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

Zmiany interfejsu API

  • Dodawanie adnotacji @JvmDefaultWithCompatibility (I8f206)
  • Wprowadzono zmiany w interfejsach API Swipeable w ModalDrawer. Metoda animateTo funkcji DrawerState została zastąpiona metodami open i close, a przesunięcie może teraz mieć wartość null. Użyj funkcji requireOffset, aby wymagać przesunięcia. (I3de9e).
  • Dodano interfejs API modyfikatora do wysyłania zapytań o informacje o przewijaniu elementów nadrzędnych (I2ba9d, b/203141462).
  • Używany w Clickable do prawidłowego opóźnienia interakcji polegającej na naciśnięciu, gdy gesty mogą stać się zdarzeniami przewijania.
  • Naprawiono błąd Clickables w zakresie nieprawidłowego opóźniania echa w przypadku użycia wewnątrz elementu Scrollable ViewGroup.
  • Zaktualizowaliśmy panele i panele, tak aby prawidłowo opóźniały naciśnięcia, gdy gesty mogą stać się zdarzeniami przewijania.

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że usługa PullRefreshIndicator mogła blokować się po wywołaniu funkcji onRefresh, jeśli stan odświeżania nie zmienił się na prawda. (IE2416, b/248274004)

Aktualizacje zależności

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

Wersja 1.4.0-alpha02

9 listopada 2022 r.

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

Zmiany interfejsu API

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

Wersja 1.4.0-alpha01

24 października 2022 r.

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

Zmiany interfejsu API

  • Dodano nową metodę (awaitEachGesture()) do wykrywania gestów. Jej działanie jest podobne do forEachGesture(), ale pętla gestów działa w całości w obrębie AwaitPointerEventScope, więc zdarzenia nie mogą zostać utracone między iteracjami.
  • Funkcja forEachGesture() została wycofana i zastąpiona awaitEachGesture(), ponieważ umożliwia utratę zdarzeń pomiędzy gestami. (Iffc3f, b/251260206)

Wersja 1.3

Wersja 1.3.1

9 listopada 2022 r.

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

Wersja 1.3.0

24 października 2022 r.

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

Ważne zmiany wprowadzone od wersji 1.2.0

Niezwykła zmiana w działaniu

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

Zmiany interfejsu API

  • Dodaj do tworzenia wiadomości komponent pull, aby odświeżyć (I29168).
  • Zmień nazwę parametru z wartości na wartość w RangeSlider (I3b79a).

Wersja 1.3.0-rc01

5 października 2022 r.

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

Wersja 1.3.0-beta03

21 września 2022 r.

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

Zmiany interfejsu API

  • Dodawanie komponentu pull, aby odświeżyć do tworzenia wiadomości (I29168)

Wersja 1.3.0-beta02

7 września 2022 roku

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

Brak zmian od wersji 1.3.0-beta01

Wersja 1.3.0-beta01

24 sierpnia 2022 r.

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

Niezwykła zmiana w działaniu

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

Maksymalna obsługiwana wysokość okien dialogowych tworzenia wiadomości i wyskakujących okienek została zmniejszona z 30 dp do 8 dp. Ta zmiana dotyczy zarówno niestandardowych okien dialogowych, jak i wyskakujących okienek z elementami interfejsu użytkownika. Ta zmiana ma na celu usunięcie błędu związanego z ułatwieniami dostępu na Androidzie w wersji starszej niż S oraz zagwarantowanie, że usługi ułatwień dostępu w tych oknach będą mogły wchodzić w interakcje z treściami w oknie lub wyskakującym okienku.

Ta zmiana będzie miała na Ciebie wpływ tylko w przypadku tworzenia implementacji niestandardowych okien lub wyskakujących okienek z wysokością wyższą niż 8 dp. Rozważ obniżenie wysokości okna lub wyskakującego okienka. Jeśli chcesz zrezygnować z tego nowego sposobu, rozważ utworzenie własnego okna lub wyskakującego okienka z ustawioną wysokością. Nie jest to zalecane, ponieważ może to negatywnie wpływać na ułatwienia dostępu. To deweloper musi zadbać o to, aby dolna część okna lub wyskakującego okienka była możliwa do interakcji i czytelna dla usług ułatwień dostępu.

Wersja 1.3.0-alfa03

10 sierpnia 2022 r.

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

Wersja 1.3.0-alfa02

27 lipca 2022 roku

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

Treści tłumaczone przez użytkowników zewnętrznych

  • Napraw problem AnimatedVisibility z atrybutem FloatingActionButton w Scaffold (I3a0ae, b/224005027)

Wersja 1.3.0-alpha01

29 czerwca 2022 r.

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

Zmiany interfejsu API

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

Poprawki błędów

  • Zaktualizuj przykładową plakietkę, aby dodać bardziej opisowy opis treści. (I10b9d)

Wersja 1.2

Wersja 1.2.1

10 sierpnia 2022 r.

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

Wersja 1.2.0

27 lipca 2022 roku

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

Wersja 1.2.0-rc03

29 czerwca 2022 r.

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

  • Brak zmian od wersji 1.2.0-rc02.

Wersja 1.2.0-rc02

22 czerwca 2022 r.

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

Wersja 1.2.0-rc01

15 czerwca 2022 r.

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

Zmiany interfejsu API

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

Poprawki błędów

  • Aktualizacje z kartą ikony wiodącej, która pozwala dołączyć do etykiety plakietkę zamiast ikony. (I90993)

Wersja 1.2.0-beta03

1 czerwca 2022 r.

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

Poprawki błędów

  • Naprawiono błąd, który powodował, że aplikacja BottomSheetScaffold rysowała cień u góry paska aplikacji. BottomSheetScaffold uwzględnia teraz stan arkusza podczas umieszczania pasków powiadomień: w stanie zwiniętym paski powiadomień znajdują się nad arkuszem i przyciskiem typu FAB. W stanie rozwiniętym paski powiadomień są zakotwiczone na dole arkusza. (Ia80b5, b/187771422)

Wersja 1.2.0-beta02

18 maja 2022 r.

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

Wersja 1.2.0-beta01

11 maja 2022 roku

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

Nowe funkcje

  • Pierwsza wersja beta 1.2.

Zmiany interfejsu API

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

Wersja 1.2.0-alpha08

20 kwietnia 2022 r.

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

Zmiany interfejsu API

  • Częściowe wykorzystanie (pozycja w dół LUB w pozycji) zostało wycofane w funkcji PointerInputChange. Aby w pełni zastosować zmianę, możesz użyć polecenia consume(). Parametr isConsumed pozwala określić, czy ktoś inny wykorzystał już tę zmianę.
  • Teraz PointerInputChange::copy() zawsze tworzy płytkie kopie. Oznacza to, że po wykorzystaniu jednej z nich kopie tekstu PointerInputChange zostaną zużyte. Jeśli chcesz utworzyć niepowiązany element PointerInputChange, użyj konstruktora. (Ie6be4, b/225669674)

Wersja 1.2.0-alpha07

6 kwietnia 2022 roku

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

Wersja 1.2.0-alpha06

23 marca 2022 r.

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

Zmiany interfejsu API

  • Aktualizacja klikalnego interfejsu Card API w celu zastosowania zmian w interfejsie Surface API (I56bcb)
  • Aktualizacje interfejsu Material 2 Surface API, które uwzględniają dodatkowe przeciążone funkcje na potrzeby powierzchni do wyboru i przełączania. (Ifcca5).

Wersja 1.2.0-alpha05

9 marca 2022 r.

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

Zmiany interfejsu API

  • Wersje LazyVerticalGrid i LazyHorizontalGrid są teraz stabilne. (I307C0)
  • Pakiet LazyVerticalGrid/LazyHorizontalGrid i wszystkie powiązane interfejsy API zostały przeniesione do podpakietu .grid. Zaktualizuj importy z androidx.compose.foundation.lazy na androidx.compose.foundation.lazy.grid. (I2d446, b/219942574)
  • Cofnięto poprzednią zmianę polegania wyłącznie na widoku danych w WindowInsetsControllerCompat i znowu wymagamy pola Window, które jest wymagane do zarządzania niektórymi flagami okien. Wycofano ViewCompat.getWindowInsetsController na rzecz WindowCompat.getInsetsController, aby zapewnić używanie właściwego okna (np. jeśli widok jest w oknie). (I660ae, b/219572936)
  • Tekst:includeFontPadding jest teraz domyślnie wyłączony. Problemy z przycinaniem wynikające z metody includeFontPadding=false są obsługiwane i nie należy stosować przycinania w przypadku wysokich skryptów. (I31c84, b/171394808)
  • Dodano nowy interfejs API LazyVerticalGrid do definiowania rozmiarów osi krzyżowych (I17723)

Wersja 1.2.0-alfa04

23 lutego 2022 r.

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

Zmiany interfejsu API

  • Add support for filter chips (I39a6e, b/192585545)
  • Dodano TextFieldDecorationBox i OutlinedTextFieldDecorationBox. Używanie ich razem z funkcją BasicTextField pomoże Ci utworzyć niestandardowe pole tekstowe na podstawie pól tekstowych Material Design, ale z większą liczbą opcji dostosowywania.
  • Umożliwiono dostosowanie poziomego i pionowego dopełnienia w polach tekstowych. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, 33617{/13
  • Dodano ComposableTarget, ComposableTargetMarker i ComposableOpenTarget, które umożliwiają raportowanie w czasie kompilacji, kiedy funkcja kompozycyjna jest wywoływana pod kątem kierowania na aplikację, która nie została przez nią zaprojektowana.

    W większości przypadków adnotacje można wywnioskować dzięki wtyczce kompilatora, więc nie można używać ich bezpośrednio . Przypadki, których nie można wywnioskować, to m.in. utworzenie i użycie niestandardowego zastosowania, abstrakcyjnych funkcji kompozycyjnych (np. metod interfejsu), pól lub zmiennych globalnych, które są obiektami kompozycyjnymi (wywnioskowane są lokalne zmienne i parametry) lub podczas korzystania z funkcji ComposeNode albo powiązanych funkcji kompozycyjnych.

    W przypadku zastosowania niestandardowych funkcje kompozycyjne wywołujące funkcję ComposeNode lub ReusableComposeNode muszą dodać adnotację CompoableTarget dla funkcji i dowolnych typów parametrów kompozycyjnych lambda. Zalecamy jednak utworzenie adnotacji zawierającej adnotację ComposableTargetMarker, a następnie użycie oznaczonej adnotacji zamiast bezpośrednio ComposableTarget. Adnotacja kompozycyjna oznaczona kodem ComposableTargetMarker jest równoważna z adnotacją ComposbleTarget z pełną i jednoznaczną nazwą klasy atrybutu jako parametrem zastosowania. Przykład użycia ComposableTargetMarker znajdziesz tutaj: anroidx.compose.ui.UiComposable. (I38f11)

Wersja 1.2.0-alfa03

9 lutego 2022 r.

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

Poprawki błędów

Wersja 1.2.0-alfa02

26 stycznia 2022 r.

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

Zmiany interfejsu API

  • Dodano NonRestartableComposable do metod przeciążonych istniejącymi metodami, które nie wymagają skomplikowanej logiki. Zmniejsza to liczbę sprawdzania zapamiętanych przez kompilatora (równa się) wszystkich parametrów, które są powtarzane w wywoływanej funkcji wewnętrznej. (I90490)
  • Dodaj obsługę elementu działania (I07100, b/192585545)

Wersja 1.2.0-alpha01

12 stycznia 2022 r.

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

Aktualizacje zależności

  • Teraz zależy od Kotlin 1.6.10.

Treści tłumaczone przez użytkowników zewnętrznych

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

Wersja 1.1

Wersja 1.1.1

23 lutego 2022 r.

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

Poprawki błędów

  • Napraw NullPointerException pod adresem androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059, b/206677462)
  • Naprawiono błąd spowodowany przez zawartość schowka przy odczytywaniu ze schowka na Androidzie. (I06020, b/197769306)
  • Poprawiono RTL w LazyVerticalGrid (aosp/1931080, b/207510535)

Wersja 1.1.0

9 lutego 2022 r.

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

Ważne zmiany wprowadzone od wersji 1.0.0

  • Stabilna obsługa efektu przewijania w Androidzie 12.
  • Ulepszenia rozmiaru docelowego elementu dotykowego
  • Pamiętaj, że w przypadku Compose 1.0 komponenty Material mają rozszerzać obszar układu, aby zapewnić zgodność z wytycznymi dotyczącymi ułatwień dostępu Material Design rozmiar docelowego elementu dotykowego. Na przykład docelowy element dotykowy przycisku zostanie powiększony do minimalnego rozmiaru 48 x 48 dp, nawet jeśli ustawisz mniejszy rozmiar przycisku. Dzięki temu interfejs Compose Material ma takie samo zachowanie jak komponenty stylu Material Design, co zapewnia spójne zachowanie w przypadku połączenia widoków i tworzenia wiadomości. Ta zmiana zagwarantuje też, że w przypadku tworzenia UI z użyciem komponentów Compose Material, minimalne wymagania dotyczące ułatwień dostępu docelowych elementów dotykowych będą spełnione.
  • Stabilna obsługa kolejki nawigacyjnej
  • Przeniesienie niektórych wcześniej eksperymentalnych interfejsów API do wersji stabilnej
  • pomoc dotycząca nowszych wersji Kotlin,

Wersja 1.1.0-rc03

26 stycznia 2022 r.

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

Zmiany w zachowaniu

Pamiętaj, że w przypadku Compose 1.0 komponenty Material mają rozszerzać obszar układu, aby zapewnić zgodność z wytycznymi dotyczącymi ułatwień dostępu elementem dotykowym Material. Na przykład docelowy element dotykowy przycisku zostanie powiększony do minimalnego rozmiaru 48 x 48 dp, nawet jeśli ustawisz mniejszy rozmiar przycisku. Dzięki temu interfejs Compose Material ma takie samo zachowanie jak komponenty stylu Material Design, co zapewnia spójne zachowanie w przypadku połączenia widoków i tworzenia wiadomości. Ta zmiana zagwarantuje też, że w przypadku tworzenia UI z użyciem komponentów Compose Material, minimalne wymagania dotyczące ułatwień dostępu docelowych elementów dotykowych będą spełnione.

Poprawki błędów

  • Dodaliśmy dokładniejsze informacje na temat debugowania przez inspektora układu podczas sprawdzania minimalnych modyfikatorów docelowych elementów dotykowych. (Aosp/1955036).

Wersja 1.1.0-rc01

15 grudnia 2021 roku

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

Poprawki błędów

Wersja 1.1.0-beta04

1 grudnia 2021 r.

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

Nowe funkcje

  • Zaktualizowano, aby była zgodna z platformą Kotlin 1.6.0

Wersja 1.1.0-beta03

17 listopada 2021 r.

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

Wersja 1.1.0-beta02

3 listopada 2021 r.

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

Poprawki błędów

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

Wersja 1.1.0-beta01

27 października 2021 roku

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

Nowe funkcje

  • Echo obsługuje teraz stany najechania i zaznaczenia. Najechanie kursorem lub zaznaczenie komponentu takiego jak Przycisk spowoduje teraz wyświetlenie odpowiedniej nakładki stanu.

Wersja 1.1.0-alpha06

13 października 2021 r.

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

Zmiany interfejsu API

  • Dodano przeciążenie bez dzieci w przypadku układów, co zwiększyło wydajność (Ib0d9a)
  • Implementacja funkcji ExposedDropdownMenu na podstawie reguły ExposedDropdownMenuBox z komponentem TextField i DropdownMenu (If60b2)
  • Pole dismissOnOutsideClick zostało dodane do tabeli PopupProperties, zastępując dismissOnClickOutside, która została wycofana. Nowa właściwość otrzymuje pozycję kliknięcia i granice kotwicy, zapewniając dokładniejszą kontrolę nad tym, czy ma być wywoływane czy nie. Pozwala to na przykład zapobiec odrzuceniu reklamy zakotwiczonej po dotknięciu reklamy zakotwiczonej.
    • Element updateAndroidWindowManagerFlags został dodany do PopupProperties, umożliwiając niską kontrolę nad flagami przekazywanymi przez wyskakujące okienko do Menedżera okien Androida. Parametrem funkcji lambda będą flagi obliczone na podstawie wartości Popupproperty, które skutkują flagami WindowManager, np. „ableable”. Wynikiem funkcji lambda będą ostateczne flagi, które zostaną przekazane do Android WindowManager. Domyślnie flagi updateAndroidWindowManagerFlags pozostawiają flagi obliczone na podstawie parametrów bez zmian. Z tego interfejsu API należy korzystać z rozwagą tylko w sytuacjach, gdy wyskakujące okienko ma określone wymagania dotyczące działania. (I6e9f9)

Wersja 1.1.0-alpha05

29 września 2021 r.

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

Zmiany interfejsu API

  • Dodaje minimalny rozmiar docelowego elementu dotykowego dla komponentów Material, które nie mają dostępnego docelowego elementu dotykowego. Powoduje to zwiększenie odstępów wokół komponentów, aby zapewnić, że mają one wystarczająco duży docelowy element dotykowy. Może to zmienić dotychczasowe interfejsy użytkownika, w których zakładamy, że rozmiar tych komponentów jest taki sam jak ich rozmiar, i nie uwzględnia on rozmiaru docelowego elementu dotykowego. Możesz użyć eksperymentalnej kompozycji LocalMinimumTouchTargetEnforcement lokalnie, aby wyłączyć to działanie w obrębie hierarchii, ale jest to tylko tymczasowa awaryjność, którą należy aktualizować w istniejących interfejsach użytkownika pod kątem nowego minimalnego rozmiaru. (I9b966, b/149691127, b/171509422)
  • Dodano eksperymentalny interfejs TextFieldColorsWithIcons, rozszerzony pola TextFieldColors, aby zapewnić element InteractionSource w przypadku atrybutów leadColor i końcowy. Umożliwia to modyfikowanie wyglądu pola tekstowego zgodnie ze stanem zaznaczenia. (I66923, b/198402662)

Wersja 1.1.0-alfa04

15 września 2021 r.

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

Zmiany interfejsu API

  • Wycofano reguły performGesture i GestureScope, które zostały zastąpione przez reguły performTouchInput i TouchInjectionScope. (Ia5f3f, b/190493367)
  • Do SemanticsNode dodano element touchBoundsInRoot, który uwzględnia minimalny rozmiar docelowego elementu dotykowego, dzięki czemu deweloperzy mogą zagwarantować, że docelowe elementy dotykowe spełniają minimalne wymagania dotyczące ułatwień dostępu. (I2e14b, b/197751214)

Poprawki błędów

  • Zezwól na rozszerzenie na obszar docelowego elementu dotykowego poza obszarem klipu, co pozwoli ograniczyć zasięg docelowego elementu dotykowego. (I43e10, b/171509422)
  • Zaktualizowaliśmy funkcję Divider kompozycyjną, aby uwzględniać wartość Dp.Hairline w parametrze grubości, aby umożliwić rysowanie separatorów pojedynczych pikseli niezależnie od gęstości wyświetlacza. (I16ffb, b/196840810)

Wersja 1.1.0-alfa03

1 września 2021 roku

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

Nowe funkcje

  • Zaktualizowano funkcję Utwórz 1.1.0-alpha03, aby bazowała na Kotlinie 1.5.30. (I74545)

Zmiany interfejsu API

  • Dodano metodę testową służącą do pobierania granic przyciętych. (I6b28e)
  • Dodano minimalny rozmiar docelowego elementu dotykowego do interfejsu ViewConfiguration na potrzeby semantyki i wprowadzania wskaźnika do celu w celu zapewnienia ułatwień dostępu. (IE861C)

Wersja 1.1.0-alfa02

18 sierpnia 2021 r.

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

Treści tłumaczone przez użytkowników zewnętrznych

  • Naprawianie działania funkcji PrzesuńableState w przypadku, gdy przesunięcie przesunięcia znajduje się w obrębie błędu zaokrąglania reklamy zakotwiczonej. (I03d39, b/191993377)

Wersja 1.1.0-alpha01

4 sierpnia 2021 r.

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

Zmiany interfejsu API

  • Zaktualizowana metoda DrawScope#drawImage, która używa zapytań źródłowych i miejsc docelowych w celu korzystania z opcjonalnego parametruFilterQuality. Przydaje się to w przypadku elementów typu pixel art, które mają być pikselizowane po przeskalowaniu w górę. Zaktualizowaliśmy BitmapPainter i funkcję komponowania obrazu, aby korzystała też z opcjonalnego parametruFilterQuality (Ie4fb0, b/180311607)
  • Zmieniono nazwę BadgeBox na BadgedBox i zmieniono parametry, aby przyjmowały funkcję kompozycyjną logo. Dodano komponent plakietki, który jest typową treścią plakietki w przypadku BadgedBox. (I639c6)
  • Dodano komponent NavigationRail. Informacje o wykorzystaniu znajdziesz w dokumentacji i przykładach (I8de77)

Poprawki błędów

  • Dodaliśmy do dołu wyrównaną do dołu przykładową kartę NavigationRail oraz demonstrację aplikacji Catalog. (I3cffc)
  • Okna dialogowe są teraz zgodne z zachowaniem rozmiaru platformy. Aby zastąpić to zachowanie, ustaw wartość usePlatformDefaultWidth na false. (Iffaed, b/192682388)
  • Do aplikacji do katalogu dodano wersję demonstracyjną paska nawigacji (I04960).
  • Dodano wersję demonstracyjną plakietki do aplikacji katalogowej (If285d).

Wersja 1.0

Wersja 1.0.5

3 listopada 2021 r.

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

Poprawki błędów

  • Usunięto problem ze śledzeniem awarii w instancjach originStateOf. (Aosp/1792247)

Wersja 1.0.4

13 października 2021 r.

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

Aktualizacje zależności

  • Zaktualizowano na podstawie usługi Kotlin 1.5.31

Wersja 1.0.3

29 września 2021 r.

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

Aktualizacje zależności

  • Zaktualizowano na podstawie usługi Kotlin 1.5.30

Wersja 1.0.2

1 września 2021 roku

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

Zaktualizowano, aby obsługiwała wersję 1.0.2 Utwórz. Funkcja Compose 1.0.2 jest nadal zgodna z Kotlin 1.5.21.

Wersja 1.0.1

4 sierpnia 2021 r.

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

Aktualizacje zależności

  • Zaktualizowano w zależności od systemu Kotlin 1.5.21.

Wersja 1.0.0

28 lipca 2021 roku

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

Główne funkcje 1.0.0

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

Znane problemy

  • Jeśli korzystasz z Android Studio Bumblebee Canary 4 lub AGP 7.1.0-alpha04/7.1.0-alpha05, może dojść do tej awarii:

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

    Aby rozwiązać ten problem, tymczasowo zwiększ wartość parametru minSdkVersion w pliku build.gradle do wartości 24 lub nowszej. Ten problem zostanie naprawiony w następnej wersji Androida Studio Bumblebee i AGP 7.1. (b/194289155)

Wersja 1.0.0-rc02

14 lipca 2021 roku

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

Poprawki błędów

  • Okna dialogowe są teraz zgodne z zachowaniem rozmiaru platformy. Aby zastąpić to zachowanie, ustaw usePlatformDefaultWidth na wartość Fałsz. (Iffaed, b/192682388)

Wersja 1.0.0-rc01

1 lipca 2021 r.

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

Zmiany interfejsu API

  • Dodano komponent BadgeBox. Informacje o użyciu znajdziesz w dokumentacji i przykładach (I5e284)
  • Nazwa pliku useDefaultMaxWidth w: PopupProperties została zmieniona na usePlatformDefaultWidth. (I05710)
  • Okna mogą teraz zajmować całą szerokość ekranu. (I83929, b/190810877)
  • Dodano eksperymentalną implementację suwaka zakresu (I2f4b3).

Poprawki błędów

  • Aby zapewnić zgodność ze specyfikacją Material Design, OutlinedTextField z użyciem nieprawidłowych danych wejściowych przestał używać koloru błędu etykiety, gdy etykieta jest używana jako obiekt zastępczy. Ta druga zasada obowiązuje, gdy w polu tekstowym nie ma tekstu wejściowego, a pole nie jest zaznaczone. W związku z tą zmianą znaczenie parametru error:Boolean w funkcji TextFieldColors.labelColor() uległo też zmianie: będzie teraz zwracać wartość false, nawet jeśli dane wejściowe są nieprawidłowe, gdy etykieta jest używana jako zmienna. (I45f78)

Wersja 1.0.0-beta09

16 czerwca 2021 r.

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

Zmiany interfejsu API

  • Dodaliśmy parametr Kształt do OutlinedTextField, by umożliwić dostosowanie kształtu obramowania (I8f39e, b/181322957)
  • Ustawienie TextOverflow zostało zmienione na klasę wbudowaną. (I433af).

Poprawki błędów

  • Scrim w panelu DrawDrawer, BackdropScaffold i MmodalbottomSheetLayout znikną, a pole Kolor zostanie przekazany. Nieokreślony (I2d899, b/182063309).

Dodane reguły profilu

Ta wersja dodaje reguły profilu do następujących modułów tworzenia wiadomości (I14ed6):

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

Co to są reguły profilu?

  • Reguły profilu dla biblioteki określa się w pliku tekstowym baseline-prof.txt znajdującym się w katalogu src/main lub podobnym. Plik określa regułę w każdym wierszu, gdzie reguła w tym przypadku jest wzorcem dopasowywania do metod lub klas w bibliotece. Składnia tych reguł jest elementem nadrzędnym w przypadku czytelnego dla człowieka formatu profilu ART, który jest używany, gdy używasz adb shell profman --dump-classes-and-methods .... Reguły te mogą kierować reklamy na metody lub klasy w jednej z dwóch form.

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

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

    <CLASS_DESCRIPTOR>
    
  • <FLAGS> to co najmniej jeden ze znaków H, S i P wskazujących, czy ta metoda ma być oznaczona jako „Przebojowa”, „Uruchomienie” lub „Po uruchomieniu”.

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

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

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

Do czego służą reguły?

  • Metoda z flagą H wskazuje, że jest to metoda „hot” i należy ją skompilować wcześniej.

  • Metoda z flagą S wskazuje, że jest ona wywoływana przy uruchamianiu i należy ją skompilować z wyprzedzeniem, by uniknąć kosztów kompilacji i interpretacji podczas uruchamiania.

  • Metoda z flagą P wskazuje, że jest to metoda, która jest wywoływana po uruchomieniu.

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

Jak to działa?

  • Biblioteki mogą definiować reguły, które będą spakowane w artefaktach AAR. Po utworzeniu pliku APK zawierającego te artefakty reguły te są łączone ze sobą, a scalone reguły służą do utworzenia kompaktowego binarnego profilu ART charakterystycznego dla danego pliku APK. Gdy pakiet APK jest zainstalowany na urządzeniu, ART może potem wykorzystać ten profil, by z wyprzedzeniem skompilować określony podzbiór aplikacji w celu poprawy jej wydajności, zwłaszcza przy pierwszym uruchomieniu. Pamiętaj, że nie będzie to miało wpływu na aplikacje z możliwością debugowania.

Wersja 1.0.0-beta08

2 czerwca 2021 r.

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

Nowe funkcje

Zmiana w interfejsie Behavior Breaking API

  • PŁYWANIE ZACHOWANIA: Karta przetwarza kliknięcia, dzięki czemu kliknięcia dodane przez Card(Modifier.clickable) stają się nieopłacalne. Wykorzystaj nową eksperymentalną kartę, która akceptuje kliknięcia onClick. (Ia8744, b/183775620)
    • Dodaliśmy nowe przeładowanie kart, które obsługuje kliknięcia i inne klikalne funkcje: wskazanie, interakcjęSource, a także włączenie/wyłączenie. Nie można było użyć zwykłej karty, której nie można kliknąć, z Modifier.clickable, ponieważ w takich przypadkach nie będzie ona przycinać fali.
  • PRZERYWANIE DZIAŁANIA: Surface pochłania teraz kliknięcia, przez co kliknięcia dodane przez Surface(Modifier.clickable) stają się nieopłacalne. Wykorzystaj nowe eksperymentalne przeciążenie Surface, która akceptuje kliknięcia onClick. (I73e6c, b/183775620)
    • Dodaliśmy nowe przeciążenie Surface, które obsługuje kliknięcia oraz inne klikalne funkcje: wskazanie, interakcjaSource, włączone/wyłączone. Użycie zwykłej powierzchni nieklikalnej z użyciem Modifier.clickable nie było możliwe, ponieważ w takich przypadkach nie będzie ona obcinać fali.

Zmiany interfejsu API

  • Komponent FabPosition został przekonwertowany z klasy wbudowanej z enum, aby umożliwić potencjalne rozwinięcie w przyszłości (I030fb)
  • Zrefaktoryzowano użycia enum do klas wbudowanych, aby uniknąć problemów z pełnymi instrukcjami związanymi z dodawaniem nowych wartości wyliczeniowych. (I2b5eb)
  • Dodaje czas oczekiwania na kliknięcie, aby zapobiec wyświetlaniu fali podczas przewijania lub przeciągania (Ia2704, b/168524931)
  • Właściwości ContentDescription i semantyka tekstu nie są już pojedynczymi wartościami, lecz listami. Dzięki temu można je scalić w postaci, w jakiej są zamiast konkatenacji. Udostępniliśmy też lepsze interfejsy API do testowania umożliwiające wykorzystanie tych zmian (Ica6bf, b/184825850)
  • Metoda Modifier.focusModifier() została wycofana i zastąpiona przez Modifier.focusTarget() (I6c860)
  • Zastąpiono enum FocusState interfejsem FocusState (Iccc1a, b/187055290)
  • Usunięto LocalRippleNativeRendering, ponieważ implementacja fali po wyświetleniu jest stabilna (I7fab3, b/188569367)

Poprawki błędów

  • Pole Modifier.onGloballyPositioned() zostało zmienione tak, aby po zastosowaniu wszystkich modyfikatorów raportować współrzędne tego modyfikatora w łańcuchu modyfikatorów, a nie współrzędne układu. Oznacza to, że teraz kolejność modyfikatorów wpływa na to, jakie współrzędne będą podawane w raportach. (Ieb67d, b/177926591)
  • Dodano plik README do istniejącego katalogu Compose Material. (If9191).

Wersja 1.0.0-beta07

18 maja 2021 r.

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

Zmiany interfejsu API

  • Nie musisz już używać metod rozszerzeń do obsługi trasy w narzędziu Navigation Compose. (I22beb, b/172823546)

Wersja 1.0.0-beta06

5 maja 2021 roku

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

Zmiany interfejsu API

  • Funkcje Ripple zostały przeniesione do wewnętrznego korzystania z RippleDrawable na urządzeniach z Androidem. Oznacza to, że faliste animacje będą wyświetlane w obiekcie RenderThread, przez co będą płynne nawet wtedy, gdy wątek UI jest załadowany, na przykład podczas przechodzenia między ekranami. Nie zmieni to powierzchni interfejsu API, ale w wyniku tej zmiany mogą wystąpić zmiany w działaniu interfejsu. Aby ułatwić migrację, dodano LocalRippleNativeRendering – podaj wartość false do tego elementu CompositionLocal, aby wrócić do poprzedniej implementacji fali wewnątrz obiektu CompositionLocalProvider. Ten interfejs API jest tymczasowy i w przyszłości zostanie usunięty, więc jeśli napotkasz problemy, które uniemożliwiają korzystanie z niego, zgłoś błąd. (I902f8, b/168777351, b/183019123)
  • Dodano interfejsy API ułatwień dostępu CollectionInfo i CollectionItemInfo, które umożliwiają oznaczanie kolekcji i ich elementów dla usług ułatwień dostępu (Id54ef, b/180479017).
  • Dodano interfejs API ułatwień dostępu error umożliwiający oznaczenie węzła zawierającego nieprawidłowe dane wejściowe (I12997, b/180584804, b/182142737)

Poprawki błędów

  • Implementacja wkładek katalogu Compose Material została zaktualizowana na stronie https://github.com/google/accompanist/pull/365. (I25dc3)
  • Elementy podrzędne w wierszach i kolumnach z wagą(fill = false) nie powodują już wypełnienia całej dostępnej przestrzeni głównej osi. (Ied94d, b/186012444, b/184355105)

Wersja 1.0.0-beta05

21 kwietnia 2021 r.

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

Poprawki błędów

  • Do istniejącego katalogu Compose Material dodaliśmy obrazy kafelków komponentów, selektor motywów i bardziej szczegółowe adresy URL menu. (I9B58e)

Wersja 1.0.0-beta04

7 kwietnia 2021 r.

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

Zmiany interfejsu API

  • ZMIANA W API: stan DrawerState nie jest już rozszerzony eksperymentalną funkcją PrzesuńableState.
    • ZMIANA W API: BottomDrawerState jest teraz oznaczony jako eksperymentalny, co pasuje do już eksperymentalnego komponentu docierania do dołu (I81114, b/181656094)
  • Zmień nazwy hideSoftwareKeyboard i showSoftwareKeyboard w SoftwareKeyboardController odpowiednio na hide() i show().
    • Udostępnij pełny interfejs CompositionLocal dla kontrolera Local SoftwareKeyController, aby umożliwić jego skonfigurowanie (jest to szczególnie przydatne w testach) (I579a6).
  • Interfejs LiveRegion Accessibility API został dodany. Jeśli węzeł jest oznaczony jako aktywny region, usługi ułatwień dostępu automatycznie powiadomią użytkownika o zmianach (Idcf6f, b/172590946)

Poprawki błędów

  • Do istniejącego modułu dodano wdrożenie katalogu Material Material. Obecnie brakuje: obrazy kafelków komponentu, selektor motywu (do dodania w kolejnych zmianach). (IE7a94)

Wersja 1.0.0-beta03

24 marca 2021 r.

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

Zmiany interfejsu API

  • Interfejs DefaultMonotonicFrameClock został wycofany. Wywołanie withFrameNanos lub Recomposer.runRecomposeAndApplyChanges bez numeru MonotonicFrameClock spowoduje zgłoszenie IllegalStateException. (I4eb0d).
  • Dodano nowy interfejs API LeadingIconTab, aby obsługiwać wyświetlanie ikony i tekstu w tekście na karcie. (I23267)

Treści tłumaczone przez użytkowników zewnętrznych

  • [autor: Jossi Wolf] BottomDrawer pakuje teraz zawartość boksu panelu. BottomDrawer nie wysyła elementu IllegalStateException, gdy element nadrzędny ma nieskończoną wysokość. Dolna szuflada otwiera się teraz w stanie rozwiniętym, jeśli jej obszar jest mniejszy niż 50% elementu nadrzędnego. Zaktualizowano dokumenty dotyczące około BottomDrawerState i ModalBottomSheetLayoutState. BottomDrawerState#isOpen zwraca wartość „prawda”, jeśli jest w stanie otwartym lub rozwiniętym. (I87241)

Wersja 1.0.0-beta02

10 marca 2021 r.

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

Zmiany interfejsu API

  • Dodano nowy 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 korzystania z eksperymentalnych interfejsów API (I6aa29, b/174531520)
  • Zmieniono domyślne wyrównanie w poziomie dla elementów TopAppBar i bottomAppBar na „Start”, które są zgodne z wierszem (Ib2dc7).
  • Dodaliśmy nowy moduł i interfejs zastępczy do katalogu Compose Material, który jest obecnie umieszczony w istniejących wersjach testowych integracyjnych. (Idfcb3).
  • androidx.compose.ui:ui nie zależy już od AppCompat ani Fragment. Jeśli w swojej aplikacji używasz obiektu ComposeView i fragmentu lub AppCompat, sprawdź, czy używasz AppCompat 1.3 lub nowszego / fragmentu 1.3 lub nowszego – te wersje są niezbędne do prawidłowego ustawienia cyklu życia i zapisanych właścicieli stanu wymaganych dla ComposeView. (I1d6fa, b/161814404)

Wersja 1.0.0-beta01

24 lutego 2021 r.

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

To jest pierwsza wersja beta Compose 1.0.0.

Zmiany interfejsu API

  • Zmieniono nazwy modyfikatorów rozmiaru. Zmieniono nazwę modyfikatora.width/height/size na requiredWidth/requiredHeight/requiredSize. Zmieniono nazwę metody Modifier.preferredWidth/preferredHeight/preferredSize na szerokość/wysokość/rozmiar. (I5b414)
  • imageResource i vectorResource są teraz funkcjami rozszerzeń odpowiednio w elementach towarzyszących ImageBitmap i ImageVector. load{Image,Vector,Font}Funkcje zasobów zostały usunięte. (I89130)
  • Modyfikatory dopasowujące wymiary do elementów wewnętrznych nie są już eksperymentalne. (I15744)
  • Usunięto asercje dp (I798d2)
  • Usunęliśmy wywołanie zwrotne SoftwareKlawiaturaController ze wszystkich pól tekstowych. Wkrótce zostanie zastąpione nowym interfejsem API. (IAe869, b/168778053)
  • Listy lambda działań Switch, Checkbox i RadioButton mogą teraz przyjmować wartości null. Przykłady pól wyboru w wierszach z możliwością kliknięcia zostały zaktualizowane w celu korzystania z tej funkcji. (If601b, b/171819073)
  • Pole InteractionState zostało zastąpione elementem [Mutable]InteractionSource
    • Interfejsy odpowiadają za wysyłanie / zbieranie zdarzeń interakcji.
    • Zamiast przekazywać interactionState = remember { InteractionState() } do komponentów takich jak Button czy Modifier.clickable(), użyj interactionSource = remember { MutableInteractionSource() }.
    • Zamiast: Interaction.Pressed in interactionState użyj funkcji rozszerzeń w InteractionSource, takich jak InteractionSource.collectIsPressedAsState().
    • W złożonych przypadkach możesz użyć parametru InteractionSource.interactions do obserwowania strumienia interakcji. Więcej informacji znajdziesz w dokumentacji i przykładach InteractionSource.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • Dodanie interfejsu AccessibilityMananger i interfejsu LocalAccessibilityMananger w kompozycji CompositionLocals (I53520).
  • Usunięto wycofane metody LayoutCoordinates. Użyj funkcji zamiast właściwości positionInParent i boundsInParent (I580ed, b/169874631, b/175142755)
  • Suwak obsługuje teraz stan włączenia/wyłączenia (I6d56b, b/179793072)
  • Utworzono nową sesję TextInputSession na potrzeby sesji wprowadzania danych z komponentów tekstowych niskiego poziomu, np. CoreTextField. (I8817f, b/177662148)
  • Element AnimationEndReason.Interrupted został usunięty. Anulowanie wyjątku będzie powodować zgłoszenie, jeśli animacja zostanie przerwana. (I2cbbc, b/179695417)
  • Usunięto klasę @ExperimentalRippleApi i zmieniono klasę RippleAlpha na klasę z właściwościami zamiast interfejsu. (I6df7c)
  • Dodano interfejs TextFieldColors do reprezentowania różnych kolorów używanych w polach TextField i OutlineTextField w różnych stanach. Informacje o implementacji definicji determinacji znajdziesz na stronach TextFieldDefaults.textFieldColors i TextFieldDefaults.outlinedTextFieldColors.
  • Dodaj modyfikator selectGroup, który umożliwia oznaczanie kolekcji kart lub opcji na potrzeby ułatwień dostępu (Ie5c29)
  • Dodaj parametr LazyListState.animate ScrollToItem

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

  • Nazwa ScrollableState.smoothScrollBy() została zmieniona na animateScrollBy() Nazwa LazyListState.snapToItemIndex() została zmieniona na scrollToItem() Nazwa ScrollState.smoothScrollTo() została zmieniona na animateScrollTo() (niestandardowa).

  • Wszystkie elementy kompozycyjne oznaczone symbolem @ReadOnlyComposable są teraz weryfikowane podczas kompilacji, aby zapewnić, że wywołują tylko inne elementy @ReadOnlyComposables (I58961)

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

  • Pozycja przewinięcia w modyfikatorze.vertical Scroll()/vertical Scroll() obecnie przedstawia się za pomocą liczb całkowitych (I81298).

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

  • Nazwa FlingConfig została zmieniona na FlingBehavior i umożliwia teraz dostosowanie animacji zawieszenia, a nie wstępnie zdefiniowanego spadku. (I02b86, b/175294473)

  • Zmieniono nazwy modyfikatorów rozmiaru. Zmieniono nazwę modyfikatora.width/height/size na requiredWidth/requiredHeight/requiredSize. Zmieniono nazwę metody Modifier.preferredWidth/preferredHeight/preferredSize na szerokość/wysokość/rozmiar. (I5b414)

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

  • Orientacja została przeniesiona do pakietu podstawowego. Przeniesiono aplikację VelocirtTracker z obszaru ui.gesture do witryny ui.input.pointer. (Iff4a8, b/175294473)

  • DrawerState.open() i dreszerState.close() zawieszają funkcje. Użyj funkcji PamiętajCoroutineScope(), aby uzyskać zakres kompozycji i je wywołać (I16f60, b/175294473).

  • Nazwa dostawców została zmieniona na CompositionLocalProvider

    • Konstruktor Kompozycja nie akceptuje już kluczowego parametru i został wycofany.
    • Parametr currentCompositeKeyHash został przekształcony w kompozycyjną właściwość najwyższego poziomu zamiast funkcji kompozycyjnej najwyższego poziomu.
    • CompositionData i CompositionGroup zostały przeniesione do przestrzeni nazw androidx.compose.runtime.tooling.
    • Interfejs ComposableLambda został utworzony zamiast konkretnej klasy i nie ma już parametrów typu.
    • Interfejs ComposableLambdaN został utworzony zamiast konkretnej klasy i nie ma już parametrów typu.
    • Funkcja snapshotFlow została przeniesiona do przestrzeni nazw androidx.compose.runtime
    • metoda scalania zasady SnapshotMutationPolicy nie jest już eksperymentalna
    • Funkcja clearRoots najwyższego poziomu @TestOnly została usunięta. Już nie jest to konieczne.
    • Funkcje keySourceInfoOf i resetSourceInfo zostały usunięte. Nie są już potrzebne.
    • Element Composer.collectKeySourceInformation został usunięty. Już nie jest to konieczne.
    • Metody isJoinedKey, JoinKeyLeft i joinKeyRight zostały usunięte. Nie są już potrzebne.
    • Różne interfejsy API najwyższego poziomu zostały przeniesione i porządkowane w różne pliki. Ze względu na semantykę klas plików Kotlin spowoduje to naruszenie zgodności plików binarnych, ale nie źródła, więc nie powinno stanowić problemu dla większości użytkowników.
    • (I99b7d, b/177245490)
  • Modifier.scrollable został przerobiony. Teraz używa interfejsu Scrollable zamiast klasy ScrollableController (I4f5a5, b/174485541, b/175294473)

  • Modifier.draggable akceptuje teraz obiekt DraggableState zamiast prostej funkcji lambda. Możesz utworzyć stan za pomocą funkcji rememberDraggableState { delta -> }, aby uzyskać takie samo zachowanie jak wcześniej (Ica70f, b/175294473)

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

  • usunęliśmy niektóre wycofane wcześniej interfejsy API (Ice5da, b/178633932),

  • W interfejsie Material API wprowadzono te zmiany:

    • Do górnego/dolnego paska aplikacji dodano parametr contentPadding, aby umożliwić dostosowanie domyślnego dopełnienia.
    • Zmieniono kolejność parametrów w TleDScaffold, aby zachować zgodność z wytycznymi interfejsu API dotyczącymi parametrów, które powinny znajdować się przed parametrami opcjonalnymi.
    • Parametr icon w elemencie bottomNavigationItem został przeniesiony za selected i onClick.
    • Nazwa parametru alwaysShowLabels w elemencie bottomNavigationItem została zmieniona na alwaysShowLabel.
    • Zmieniono nazwę parametrów bodyContent niektórych komponentów na content.
    • Zmieniono kolejność parametrów w kolumnie ButtonDefaults.buttonColors(). Należy pamiętać, że ze względu na to, że typ parametrów nie uległ zmianie, nie spowoduje to błędu w kodzie. Upewnij się, że używasz parametrów nazwanych lub ręcznie zaktualizujesz kolejność. W przeciwnym razie kod nie będzie działać tak samo jak poprzednio.
    • Do grupy reklam darkColors() dodano parametr secondaryVariant. Ten kolor jest zwykle taki sam jak kolor secondary w ciemnym motywie, ale zapewnia spójność i dodatkowe możliwości dostosowania.
    • Usunięto klasę ElevationDefaults i animmateElevation() z publicznej platformy interfejsu API, ponieważ nie były one powszechnie używane ani przydatne.
    • Zmieniono nazwę onValueChangeEnd w Slider na onValueChangeFinished i ustawiłem ją na wartość null.
    • Nazwa parametru text w komórce Snackbar została zmieniona na content w celu zachowania spójności.
    • Dodano parametr contentPadding do elementu DropdownMenuItem, aby umożliwić dostosowanie domyślnego dopełnienia, oraz ustawienie content jako rozszerzenia w witrynie RowScope.
    • Nazwa ModalDrawerLayout została zmieniona na ModalDrawer.
    • Nazwa BottomDrawerLayout została zmieniona na BottomDrawer.
    • (I1cc66).
  • BasicTextField zamiast koloru obsługuje teraz Pędzel, co daje lepsze możliwości dostosowania (I83a36)

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

  • Zmieniono Indication#createIndication() na Indication#rememberUpdatedIndication(InteractionState) i usunięto parametr InteractionState z metody IndicationInstance#drawIndication(). Instancja IndicationInstance powinna być odpowiedzialna wyłącznie za rysowanie efektów wizualnych i nie może uruchamiać animacji ani zapisu w odpowiedzi na zmiany w interfejsie InteractionState. Animacje i zapisy stanów powinny następować w zasadzie rememberUpdatedIndication(). Parametr indication w obiekcie Modifier.indication również został zmieniony na parametr wymagany. (IC1764, b/152525426)

Poprawki błędów

  • Dodaliśmy nowy lokalny interfejs API do kompozycji Local SoftwareKlawiaturaController, aby zastąpić poprzedni interfejs SoftwareKlawiaturaController w polu TextField. (I658b6, b/168778053)

Wersja 1.0.0-alfa12

10 lutego 2021 r.

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

Zmiany interfejsu API

  • Modifier.pointerInput wymaga teraz zapamiętywania klawiszy, aby wskazywać, kiedy współprogram wykrywania danych wejściowych wskaźnika ma zostać uruchomiony ponownie w przypadku nowych zależności. (I849cd)
  • DrawDrawerLayout i ListItem zostały oznaczone jako @ExperimentalMaterialApi (Id766e)
  • Dodano parametr PaddingValues.Bezwzględny, którego można używać w interfejsach API akceptujących wartości PaddingValues. (Ia5f30).
  • Parametr onImeActionPerformed został wycofany. Użyj jego działania (If0bbd, b/179071523).
  • Aby lepiej dopasować konwencje nazewnictwa do obrazów ImageBitmap i ImageVector, nazwa komponentu ImagePainter została zmieniona na BitmapPainter na równoległe narzędzie VectorPainter. (Iba381, b/174565889)
  • Animatable.snapTo i Animatable.stop to teraz funkcje zawieszania (If4288)
  • Element KomponentActivity.setContent został przeniesiony do folderu androidx.activity.compose.setContent w module androidx.activity:activity-compose. (Icf416).
  • Usunęliśmy metody niszczenia i copy() z kilku klas, w których były one rzadko używane. (I26702, b/178659281)
  • Wprowadź właściwości HalExpand() iexpand() w trybie wewnętrznym ModallowerSheetState (Ic914e)
  • Zmieniono Indication#createInstance na @Composable, a LocalIndication tak, by zawierał Indication, a nie () -> Indication (I5eeea, b/157150564)
  • Okno Alertów i Menu zostały przeniesione do trybu na Androidzie Do menu DropdownMenu dodano parametr PopupWłaściwości, który umożliwia dalszą konfigurację wyskakującego okienka. (I9c443)
  • Zasób loadFontResource został wycofany. Używaj zamiast niego fontResource. Elementy graficzne, loadImageResource, vectorResource i loadVectorResource zostały wycofane. Użyj narzędzia PaintterResource. (I6B809)
  • Parametry toggle i toggleModifier zostały usunięte z menu oraz zmieniono ich nazwy odpowiednio dropdownModifier, dropdownOffset i dropdownContent na modifier, offset i content. Menu rozwijane działa teraz spójnie w wymiarze Popup, gdzie do określenia pozycji menu jest używany układ nadrzędny. W większości przypadków możesz przenieść plik toggle, aby utworzyć element potomny DropdownMenu, i umieścić oba w elemencie Box. Aby dowiedzieć się więcej o korzystaniu z tego interfejsu API, zapoznaj się ze zaktualizowanym przykładem w dokumentacji. (I884fb)
  • Nazwa funkcji toIntPx() została zmieniona na roundToPx(). (I9b7e4, b/173502290)
  • Nazwa IntBounds została zmieniona na IntRect, a interfejs API został ulepszony. (I1f6ff)
  • Dodano działania semantyczne rozwijania i zwijania. Dodano elementy rozwijana i połówkowa w stanie ModallowerSheetState (Ib5064)
  • Interfejs Modifier.dragStepFilter został wycofany. Użyj w zamian zasady Modifier.pointerInput { detectDragGestures (...)}. Możesz też użyć metody Modifier.draggable, aby przeciągać jedną oś (I0ba93, b/175294473)
  • Zmieniono nazwy Ambientów, aby pasowały do nazwy Ambient -> CompositionLocal. Lokalizatory nosiły wcześniej nazwę AmbientFoo, a teraz CompositionLocals – LocalFoo. (I2d55d)
  • Zaznaczenie zostało przeniesione do podstawy. (I7892B)
  • Podobnie jak poprzednio usunęliśmy funkcję state { 0 } kompozycyjną, a teraz promujemy jej użycie, takie jak remember { mutableStateOf(0) }, usuniemy funkcję savedInstanceState { 0 } kompozycyjną. Zamiast niego użyj parametru rememberSaveable { mutableStateOf(0) }. Zostanie on automatycznie zapisany i przywrócony, jeśli typ użyty w MutableState może być przechowywany w pakiecie. Jeśli do tej pory przekazywano obiekt wygaszacza niestandardowego, teraz musisz użyć nowego przeciążenia funkcji meetSaveable, które zawiera parametr stateSaver. Użycie będzie wyglądać tak: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • Dodano ProgressBarRangeInfo.Indeterminate, aby zaznaczyć nieokreślone paski postępu w ułatwieniach dostępu (I6fe05).
  • Atrybut @ComposableContract został wycofany i zastąpiono 3 bardziej szczegółowymi adnotacjami.

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

  • Zapamiętano nazwę savedInstanceState(), aby korzystały z ! (I1366e, b/177338004)

  • Saver, listSaver(), mapSaver(), autoSaver przeniesiono z androidx.compose.runtime.savedinstancestate do androidx.compose.runtime.saveable (I77fe6).

  • Nazwy parametrów RounderCornerForm, CutCornerPosition i CornerBasedForm zostały zmienione z lewej/prawej na początek/koniec, by zapewnić obsługę automatycznego odbicia lustrzanego kształtu w kierunku rtl. Funkcje absolutRounderCornerangle i absoledCutCornerForm zostały wprowadzone w przypadkach, gdy automatyczne odbicie lustrzane nie jest potrzebne. (I61040, b/152756983)

  • Zmieniono parametry text i icon karty oraz parametr label elementu bottomNavigationItem na null, aby lepiej oddawało zachowanie komponentu, gdy te parametry nie są podane. Ma to wpływ na rozmiar i układ komponentu. Jeśli obecnie przekazujesz emptyContent(), aby reprezentować brak tekstu, ikony/etykiety, zamiast tego użyj null. (I57ed4).

  • Nazwa parametru contentColorFor została zmieniona na backgroundColor (I5bb67).

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

  • Wprowadzenie interfejsu ColorMatrix API służącego do modyfikowania wartości RGB treści źródłowych Zrefaktoryzowanego interfejsu ColorFilter API do tworzenia interfejsu zgodnego z implementacją PathEffect. (Ica1e8),

  • Parametr AnimatedValue/Float został wycofany. Zamiast niej użyj Animatable. (I71345, b/177457083)

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

  • Dodano włączone parametry do elementów Tab i bottomNavigationItem, aby uniemożliwić ich klikanie. Zmieniono bottomNavigationItem na RowScope.bottomNavigationItem, aby lepiej przedstawić wymagania dotyczące układu w interfejsie API. (Id683d).

  • Parametry tapTrackingFilter, DoubleTapStepFilter, longPressConsentFilter i PressIndicaitonTrackingFilter zostały wycofane. Użyj w zamian funkcji Modifier.clickable lub Modifier.pointerInput z funkcją wykrywaniaTapSteps. (I6baf9, b/175294473)

  • Dodano parametr layout Direction do klasy createOutline w kształcie. Pozwala to tworzyć kształty uwzględniające kierunek układu. (I57c20, b/152756983)

  • Czcionka Recomposer.current() została usunięta. [Abstract]Plik ComposeView obecnie domyślnie używa leniwych, ograniczonych do okna Rekompozytorów, które są wywoływane przez obiekt ViewTreeLifecycleOwner dla okna. Rekompozycja i animacje z FrameNanos są wstrzymywane na czas zatrzymania cyklu życia hosta. (I38e11)

Poprawki błędów

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

Wersja 1.0.0-alfa11

28 stycznia 2021 roku

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

Zmiany interfejsu API

  • Przeniesienie niektórych interfejsów Material API do interfejsu @Experimental (I5d20e)
  • Do obrazów i ikon został dodany parametr Opis treści. Służy do opisania usług ułatwień dostępu (I2ac4c).
  • Zmienia interfejsy parametrów stanowych Material w funkcje @Composable, które zwracają wartość State<T>. Dodaje atrybut Animatable.asState(), aby ułatwić przekształcenie animatycznej na stan. Zmienia też działanie animacji Elevation na rozszerzenie w trybie zawieszenia w Animatable. (If613c).
  • Snackbar, SnackbarHost, SnackbarHostState nie są już @ExperimentalMaterialAPI (Id1fb5)
  • Zmienia typografię, kształty i pozycję Tablicy, by nie były już klasami danych. Dodaje funkcję kopiowania dla Typografii i Kształtów, aby zastąpić wygenerowane wartości. (I40037)
  • usunęliśmy niektóre wycofane wcześniej interfejsy Material API (Ifaa25);

Poprawki błędów

  • Interfejsy onCommit, onDispose i onActive zostały wycofane i zastąpione interfejsami SideEffect i DiposableEffect (If760e).
  • Przejście na podstawie definicji przejścia zostało wycofane (I0ac57)
  • Obsługiwany jest stan początkowy w trakcie aktualizacji (Ifd51d)
  • Element WithConstraints został przetworzony pod nazwą BoxWithConstraints i przeniesiony do pliku Foundation.layout. (I9420b, b/173387208)
  • Wycofanie funkcji przewijania ScrollBy bez zawieszenia, usunięcia elementu przewijania bez zawieszenia

    Zalecamy teraz korzystanie z funkcji zawieszania, które pozwalają kontrolować przewijanie i poczekać na zakończenie przewijania. W ramach tego procesu wycofujemy lub usuwamy wersje tych funkcji, które nie są zawieszone. (Zastosowane)

  • Wycofanie funkcji smooth ScrollBy bez zawieszania, zalecamy obecnie korzystanie z funkcji zawieszania, które umożliwiają kontrolowanie przewijania i oczekiwanie na zakończenie przewijania. W ramach tego procesu wycofujemy wersje tych funkcji bez zawieszenia. (I12880)

  • Dodano ComposeContentTestRule, który rozszerza zakres ComposeTestRule i definiuje zasadę setContent, która została usunięta z ComposeTestRule. Dodaliśmy metodę fabryczną createEmptyComposeRule(), która zwraca ComposeTestRule i nie uruchamia za Ciebie aktywności. Użyj tej opcji, jeśli chcesz uruchomić aktywność podczas testu, np. za pomocą narzędzia ActivityScenario.launch (I9d782, b/174472899)

  • Odchyleń używanych w elementach Button i FloatingActionButton nie można już dostosowywać przez wprowadzanie nowych Wskazówek w AmbientIndication – nigdy nie było to w zamierzeniu sposób dostosowywania tych komponentów, dlatego teraz są one spójne z innymi komponentami Material. Aby dostosować Echo w aplikacji, zobacz RippleTheme. (I546c5)

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

  • BasicTextField otrzymał nowy parametr o nazwie decorationBox. Umożliwia dodanie dekoracji, takich jak ikony, obiekty zastępcze, etykiety i inne podobne do elementów w polu tekstowym, oraz zwiększenie jego docelowego obszaru działania. (I16996).

  • Poprawiono błąd, przez który nie można było ustawić szerokości pola tekstowego materiału poniżej 280.dp (I78373).

  • Parametr canDrag został usunięty z pliku Modifier.draggable (Ic4bec, b/175294473)

  • Usuń parametr displaySize, ponieważ powinien się unikać. Zwykle lepiej jest użyć funkcji onRoot() lub rozmiaru co najmniej okna. (I62db4).

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

  • Nieprawidłowo i kompozytoryzacja() zostały wycofane. Zastąpiono je odpowiednio recomposeScope i ReminderCompositionReference. (I583a8)

  • Zmienia element PopupPositionProvider, aby używać współrzędnych zależnych od okna, a nie globalnych. Zmienia nazwę obiektuparentGlobalBounds na AnchorBounds i zmienia parametr windowGlobalBounds na windowSize: IntSize (I2994a)

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

  • Usunięto plik AnimatedFloating.fling, który akceptuje FlingConfig. Zamiast tego użyj zawieszenia Animatable.animateDecay. (I4659b, b/177457083)

  • klikalne, włączane i klikalne można teraz tworzyć poza kompozycją (I0a130, b/172938345, b/175294473)

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

  • Przewijane kolumny/wiersz zostały wycofane. Korzystanie z ScrollableColumn jest mniej wydajne niż LazyColumn, jeśli masz dużo przewijanych treści, ponieważ LazyColumn umożliwia tylko tworzenie, pomiar i rysowanie widocznych elementów. Aby uchronić użytkowników przed niewydajnym działaniem, zdecydowaliśmy się wycofać elementy ScrollableColumn i ScrollableRow i promować wykorzystanie metod LazyColumn i LazyRow. Użytkownicy mogą zdecydować, że nie potrzebują leniwego działania, i użyją modyfikatorów bezpośrednio w ten sposób: Column(Modifier.vertical Scroll(remember ScrollState())) (Ib976b, b/170468083).

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

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

  • Wycofaliśmy globalne metody współrzędnych i wprowadziliśmy nowe metody oparte na współrzędnych w oknach. (IEE284).

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

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

  • Nazwa Semantics PropertyReceiver.hidden została zmieniona na invisibleToUser i oznaczona jako @ExperimentalComposeUiApi. Nazwa AccessibilityRangeInfo została zmieniona na ProgressBarRangeInfo. Nazwa stateDescriptionRange została zmieniona na progressBarRangeInfo. Nazwa Accessibility ScrollState została przemianowana na ScrollAxisRange. Nazwa levelAccessibility ScrollState została zmieniona na level ScrollAxisRange. Nazwa verticalAccessibility powiązanych z nią została zmieniona na vertical ScrollAxisRange. (Id3148).

  • Wykorzystanie narzędzia TestCoroutineDispatcher w testowaniu (I532b6)

  • Zaktualizowaliśmy interfejs API grafiki wektorowej, aby obsługiwał analizowanie barwienia stosowanego do głównej grafiki wektorowej. (Id9d53, b/177210509)

Wersja 1.0.0-alpha10

13 stycznia 2021 r.

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

Zmiany interfejsu API

  • zmodyfikowano Prędkość, aby uwzględnić części składowe i operacje matematyczne. (IB0447)
  • Zmieniliśmy nazwę @ExperimentalTesting na @ExperimentalTestApi, aby była zgodna z podobnymi eksperymentalnymi adnotacjami interfejsu API (Ia4502, b/171464963)
  • Zmieniono nazwę pozycji na DpOffset i usunęliśmy getRange() (Ib2dfd).
  • Zmieniono nazwę Color.useOrElse() na Color.takeOrElse() (Ifdcf5)
  • Dodaj przełącznik do podstawowego pliku Strings.kt (I4a5b7, b/172366489)
  • Obiekty FlowRow i FlowColumn zostały wycofane. Użyj układu niestandardowego. (I09027)
  • Modifier.focus() i Mmodifier.focusRequester() zostały wycofane. Użyj w zamian metod Modifier.focusModifier() i Modifier.focusReference(). (I75a48, b/175160751, b/175160532, b/175077829)
  • Przeniesienie obiektu natywnego do modułu interfejsu i przekształcenie go w moduł wewnętrzny. Zaktualizowane użycie natywnego użycia klasy natywnej oznacza, że w implementacjach używana jest metoda „to MyClass”. (I4f734)

Poprawki błędów

  • Dodano obsługę wyłączonych i tylko do odczytu pól tekstowych (I35279, b/171040474, b/166478534)
  • Metoda animate() została zastąpiona przez animateAsState(), która zwraca State<T> zamiast T. Zwiększa to wydajność, ponieważ zakres unieważniania można zawęzić do miejsca, w którym odczytywana jest wartość stanu. (IB179e)
  • Dodaj interfejs API roli Semantics i rolę jako parametr do klikalnego, możliwego do wyboru i przełączenia interfejsu SemanticsModifier. Zmieniono Modifier.progressSemantics, tak aby Slider mógł z niego korzystać. (I216cd)

Wersja 1.0.0-alpha09

16 grudnia 2020 roku

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

Zmiany interfejsu API

  • dodano interfejs API, aby ręcznie aktywować ułożenie animacji i przeciągnięcie w pliku Modifier.swipeable (Iaa17a, b/162408885)
  • Zmieniono nazwy obiektów *Stałe, np. ButtonConstants, tak aby kończyć się wartościami domyślnymi, np. ButtonDefaults. Z właściwości w tych nowych obiektach zostaną też usunięte zbędne prefiksy default. (Ibb915, b/159982740)
  • Funkcja tworzenia obsługuje moduły pobierania właściwości, które mogą tworzyć wywołania kompozycyjne. Ta funkcja nie będzie już obsługiwana, ale zmienia się składnia deklarowania metody pobierania właściwości jako typu @Composable.

    Wycofana składnia służąca do tego celu polegała na dodaniu adnotacji do samej właściwości:

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

    Prawidłową składnią, aby to zrobić, jest dodanie adnotacji do metody getter właściwości:

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

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

  • Dodano bibliotekę androidx.compose.material:material-ripple zawierającą interfejsy API Ripple, aby umożliwić tworzenie komponentów interaktywnych bez konieczności korzystania z reszty biblioteki Material. W przypadku używania biblioteki Material Design biblioteka PamiętajRippleIndication została wycofana i zastąpiona elementem meetRipple. (Ibdf11).

Poprawki błędów

  • Funkcje lambda w modyfikatorach przesunięcia zwracają 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. Przydaje się to przy definiowaniu gradientów, które w momencie tworzenia kompozycji zajmują pełne granice rysowania funkcji kompozycyjnej, bez konieczności wdrażania niestandardowych implementacji DrawModifier.

    Wycofaliśmy interfejsy API konstruktora funkcji gradientu. W obiekcie Gradient zastąpiliśmy metody fabryczne. (I511fc, b/173066799)

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

  • Wycofano LazyColumnFor, LazyRowFor, LazyColumnForIndexed i LazyRowForIndexed. Użyj LazyColumn i LazyRow (I5b48c)

  • Przeniesiono Dp.VectorConverter, Position.VectorConverter itp. do animation-core oraz wycofaliśmy stare rozwiązanie VectorConveters (If0c4b).

  • Autofill API to teraz eksperymentalny interfejs API, który wymaga włączenia (I0a1ec)

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

  • AccessibilityLabel została zmieniona na contentDescription. Wartość ułatwień dostępu została zmieniona na stateDescription. (I250f2)

  • Nowa funkcja nieskończoności powtarzania do tworzenia specyfikacji InfiniteRepeatableSpec (I668e5)

  • Sposób pozycjonowania menu rozwijanego został nieco zmieniony zgodnie ze specyfikacją materiału (I34c72, b/168594123).

  • Dodaliśmy obsługę obiektu InteractionState dla pól tekstowych. (I61d91)

  • Dodaliśmy modyfikator.clearAndSetSemantics, aby wyczyścić semantykę elementów podrzędnych i ustawić nowe. (I277ca)

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

Wersja 1.0.0-alpha08

Grudzień 2, 2020

androidx.compose.material:material:1.0.0-alpha08, androidx.compose.material:material-icons-core:1.0.0-alpha08 i androidx.compose.material:material-icons-extended:1.0.0-alpha08 zostały udostępnione. Wersja 1.0.0-alfa08 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • MaterialTheme ustawia teraz prawidłowe kolory uchwytów wyboru i tła zaznaczenia. Aplikacje niematerialne mogą ręcznie używać elementów AmbientTextSelectionColors, aby dostosowywać kolory używane do zaznaczenia. (I1e6f4, b/139320372, b/139320907)
  • Dodano sprawdzanie nazw i pozycji parametrów kompozycyjnych lambda w celu sprawdzenia spójności z wytycznymi dotyczącymi tworzenia wiadomości. Zgodnie ze sprawdzaniem lintowania i wskazówkami przenieśliśmy też niektóre interfejsy API z użyciem nazwy children jako nazwy końcowej lambdy do content. (Iec48e).
  • Zmieniliśmy nazwę komponentu VectorAsset na ImageVector. Przeniesiono komponent VectorAsset na Builder, aby stał się wewnętrznym klasą ImageVector, zgodnie z wytycznymi rady ds. interfejsów API. Dodano alias typu VectorAssetBuilder do połączenia z obiektem ImageVector.Builder w przypadku zgodności. (Icfdc8)
  • Zmieniliśmy nazwę komponentu ImageAsset i powiązane metody na ImageBitmap. (Ia2d99)
  • Przeniesiono właściwości semantyki podstawowej do interfejsu użytkownika (I6f05c)
  • Interfejs fun RippleIndication() został wycofany i zastąpiony rememberRippleIndication(), aby zapewnić spójność z innymi interfejsami API. (Id8e2c).
  • Do pól BasicTextField, TextField i OutlinedTextField dodaliśmy parametr singeLine. Ustaw ten parametr na „true”, aby pole tekstowe było jedną linią, którą można przewijać w poziomie. (I57004, b/168187755)

Poprawki błędów

  • Dodaj działanie semantyczne Odrzuć (I2b706)
  • Przeniesiono interfejsy API DrawModifier z pakietu androidx.compose.ui do pakietu androidx.compose.ui.draw. Utworzono plik DrawModifierExit.kt, który zawiera aliasy typów i metody pomocnicze, które pomagają w migracji z wycofanych interfejsów API do obecnych. (Id6044, b/173834241)
  • W odpowiedzi na opinie interfejsu API zmieniliśmy też nazwę Modifier.drawLayer na Modifier.graphicsLayer. W odpowiedzi na opinie interfejsu API zaktualizowaliśmy też powiązane klasy na GraphicsLayer. (I0bd29, b/173834241)
  • Element <T> został usunięty z deklaracji SubcomposeLayout. Możesz go użyć bez określania typu. (IB60c8)
  • W drewnie dodaliśmy interfejs API Modifier.scale/rotate.
    • Nazwa Modifier.drawOpacity została zmieniona na Modifier.alpha
    • Nazwa Modifier.drawShadow została zmieniona na Modifier.shadow (I264ca, b/173208140)
  • Nazwa parametru wyrównania Box została zmieniona na contentWyrównajment. (I2C957)
  • Zmieniono nazwy modyfikatorów przesunięciaPx na przesunięcie. Wykorzystują teraz parametry lambda zamiast stanu State. (Ic3021, b/173594846)
  • Wprowadziliśmy interfejsy SweepGradientShader i SweepGradientBrush API. (Ia22c1).
  • Dodano sprawdzanie lintowania parametrów modyfikatora w funkcjach kompozycyjnych. Ten lint sprawdza nazwy, typ zwracany, wartość domyślną i kolejność parametru pod kątem spójności ze wskazówkami dotyczącymi tworzenia wiadomości. (If493b).
  • Zaktualizowano TextFieldValue API
    • ustawił wartość pola TextFieldValue.composition tylko do odczytu
    • usunięto wyjątek dla nieprawidłowego zakresu wyboru (I4a675, b/172239032)
  • Dodano nowe obciążenie typu Modifier.drawLayer(). Zajmuje to nowy blok lambda w elemencie GraphicsLayerScope, gdzie definiujesz parametry warstwy w sposób, który umożliwia pominięcie ponownej kompozycji i przekazywania jej po zmianie stanu. DrawLayerModifier jest obecnie na wewnętrznym etapie przygotowań do migracji logiki do metody placeable.placeWithLayer() w LayoutModifier (I15e9f, b/173030831)
  • Wycofany komponent Ambient został wycofany z sufiksem Ambient i zastąpił je nowymi właściwościami z prefiksem Ambient zgodnie z innymi wytycznymi dotyczącymi interfejsu Ambients i Compose API. (I33440)
  • Dodaliśmy sprawdzanie lintowania, aby sprawdzić, czy fabryki modyfikatorów używają wewnętrznie interfejsu androidx.compose.ui.composed {}, a nie są oznaczane jako @Composable. (I3c4bc).
  • Nazwa argumentu mergeAllDescendants została zmieniona na scalanie potomnych. (IB6250)
  • Kontrola czasu w testach (TestAnimationClock i jego zastosowania) jest obecnie w fazie eksperymentalnej (I6ef86, b/171378521)
  • Usuń stary moduł testowania interfejsu i jego złącza (I3a7cb)
  • Nazwa elementu TextUnit.Inherit została zmieniona na TextUnit.Nieokreślona, aby zachować spójność z innymi jednostkami. (Ifce19).
  • Interfejs Wyrównania został zaktualizowany i działa. (I46a07, b/172311734)
  • Zmieniono nazwę identyfikatora na „LayoutId” dla elementu LayoutIdParentData. Nazwa Measurable.id została zmieniona na Measurable.layoutId. (Iadbcb, b/172449643)

Wersja 1.0.0-alpha07

11 listopada 2020 roku

androidx.compose.material:material:1.0.0-alpha07, androidx.compose.material:material-icons-core:1.0.0-alpha07 i androidx.compose.material:material-icons-extended:1.0.0-alpha07 zostały udostępnione. Wersja 1.0.0-alfa07 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Wyróżnienie zostało wycofane i zastąpione elementem AmbientContentAlpha. AmbientContentAlpha to prostsza abstrakcja, która reprezentuje wersję alfa preferowanej treści w części hierarchii, podobnie jak w przypadku preferowanego koloru treści AmbientContentColor. Tekst i ikona domyślnie pobierają teraz bieżącą wartość z AmbientContentAlpha. Możesz to zrobić ręcznie: color.copy(alpha = AmbientContentAlpha.current), aby uzyskać taki sam efekt w komponentach. Zamiast korzystać z ProvideEmphasis, możesz po prostu podać wartość bezpośrednio za pomocą AmbientContentAlpha i zastąpić stare EmphasisLevels nowymi poziomami domyślnymi w ContentAlpha. (Idf03e, b/159017896)
  • Dodaje androidx.compose.material.AmbientContentColor, aby zastąpić androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770)
  • Dodaje komponent androidx.compose.material.Text, aby zastąpić androidx.compose.foundation.Text jako komponent wysokiego poziomu tekstu z motywami. W przypadku podstawowego komponentu tekstu, który nie wykorzystuje stylu koloru / tekstu z motywu, użyj BasicText. (IE6ae0).
  • Dodano maxLines do pól tekstowych (Ib2a5b).
  • Zaktualizuj pola TextFields, aby akceptować KlawiaturaOptions (Ida7f3)
  • W przypadku powierzchni uwzględnia teraz wysokość bezwzględną (całkowitą) podczas obliczania nakładek wysokości, więc powierzchnia zagnieżdżona na innej powierzchni używa tej połączonej wysokości do rysowania. (I7bd2b, b/171031040)

Poprawki błędów

  • captureToBitmap przeniesiono do: captureToImage. (I86385)
  • Podstawowe funkcje AmbientTextStyle, ProvideTextStyle i AmbientContentColor zostały wycofane. Zamiast nich używaj nowych wersji dostępnych w bibliotece Material Design. W przypadku aplikacji innych niż Material Design należy utworzyć własny system projektowania specyficznych dla nich motywów graficznych, z którego można korzystać w własnych komponentach. (I74acc, b/172067770)
  • Foundation.Text została wycofana i zastąpiona materiałem material.Text. Informacje o podstawowym, nieopiniowanym interfejsie API tekstowym, który nie przetwarza wartości z motywu, znajdziesz na stronie androidx.compose.foundation.BasicText. (If64cb).
  • Zmień nazwę KlawiaturaOptions na ImeOptions (I82f36).
  • Przeniesiono KlawiaturaType i ImeAction do KlawiaturaOptions (I910ce).
  • Pole BaseTextField zostało wycofane. Użyj w zamian pola BasicTextField. (I896eb)
  • Adnotacja ExperimentalSubcomposeLayoutApi została usunięta. Elementu SubcomposeLayout można teraz używać bez dodawania elementu @OptIn (I708ad)
  • FirstBaseline i LastBaseline zostały przeniesione do pakietu androidx.compose.ui.layout (Ied2e7).
  • Zaktualizowaliśmy interfejs Icon API, tak aby przyjęto kolor.Nieokreślony jako możliwy odcień, który rysuje przesłany zasób lub malarz bez użycia ColorFilter. Wcześniej próba ignorowania odcienia za pomocą opcji Color.Unspecified powodowała odcień przezroczystym kolorem, który kończył się bez renderowania. (I049e2, b/171624632)
  • Zmieniono nazwę parametru metricPaddingFrom na splashFrom. Dodaliśmy modyfikator paddingFromBaseline, aby ułatwić określenie odległości od granic układu do linii bazowych tekstu. (I0440a, b/170633813)
  • Nazwa LaunchedTask została zmieniona na LaunchedEffect, aby zachować spójność z interfejsami API SideEffect i DiposableEffect. Aby zachęcić do stosowania sprawdzonych metod, metoda LaunchedEffect bez parametrów tematu jest niedozwolona. (Ifd3d4).
  • Element MeasureResult został przeniesiony z obiektu MeasureScope. (Ibf96d, b/171184002)
  • Kilka symboli związanych z układem zostało przeniesionych z androidx.compose.ui do androidx.compose.layout.ui. (I0fa98, b/170475424)

Wersja 1.0.0-alpha06

28 października 2020 r.

androidx.compose.material:material:1.0.0-alpha06, androidx.compose.material:material-icons-core:1.0.0-alpha06 i androidx.compose.material:material-icons-extended:1.0.0-alpha06 zostały udostępnione. Wersja 1.0.0-alfa06 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Strona androidx.compose.foundation.Icon została przeniesiona do androidx.compose.material.Icon. Jeśli nie chcesz korzystać z biblioteki Material Design, możesz w narzędziu Painter użyć komponentu Image / Modifier.paint() . (I9f622)
  • Dodaje element FloatingActionButtonElevation, który odzwierciedla wysokość używaną przez przyciski PPP w różnych stanach. W sekcji FloatingActionButtonConstants.defaultElevation() znajdziesz implementację domyślną (I2d4f5).
  • Dodaje interfejs SwitchColors do reprezentowania kolorów używanych przez przełącznik w różnych stanach. Aby dostosować te kolory, zobacz SwitchConstants.defaultColors. (I93805)
  • Dodaje interfejsy ButtonElevation i ButtonColors do reprezentowania wysokości i kolorów używanych przez przyciski o różnych stanach. Aby dostosować te parametry, zapoznaj się z domyślnymi funkcjami w ButtonConstants. (IC5b7b)
  • Dodaje interfejs RadioButtonColors do reprezentowania kolorów używanych przez opcję RadioButton w różnych stanach. Aby dostosować kolory używane w różnych stanach, patrz RadioButtonConstants.defaultColors(). (I74130)
  • Dodaje interfejs CheckboxColors reprezentujący kolory używane przez pole wyboru o różnych stanach. Aby dostosować kolory używane w różnych stanach, patrz CheckboxConstants.defaultColors(). (I7dbdb)

Poprawki błędów

  • Komponenty Material Design nie ustawiają już wysokości jako zIndex. Oznacza to, że w obrębie tego samego elementu nadrzędnego element podrzędny z większym cieniem nie będzie automatycznie rysowany na elemencie podrzędnym z mniejszym. Jeśli nadal potrzebujesz takiego działania, w razie potrzeby ustaw ręcznie Modifier.zIndex() (I70417, b/170623932)
  • Zrezygnuj z metody VectorPainter i zamiast niej użyj komponentu PamiętajVectorPainter, aby lepiej wskazać, że interfejs kompozycyjny interfejs API wewnętrznie wykorzystuje funkcję „zapamiętuj” w celu zachowywania danych w różnych kompozycjach. (Ifda43).
  • Włącz przejścia w ComposeTestRule. Usuń tę opcję, by włączyć migający kursor z reguły ComposeTestRule. (If0de3).
  • Do CoreTextField (I72e6d) dodano opcję klawiatury jednowierszowej.
  • Zmieniliśmy nazwę interfejsu Radius API na CornerRadius, aby lepiej odzwierciedlić sposób jego używania w usłudze Compose. Zaktualizowaliśmy dokumentację, by wskazać, że ujemne promienie narożników są zaciśnięte do zera. (I130c7, b/168762961)
  • Zrefaktoryzowano interfejsy DrawScope i ContentDrawScope zamiast klas abstrakcyjnych.
    • Utworzono implementację CanvasDrawScope dla DrawScope
    • Zrefaktoryzowane implementacje narzędzia DrrawScope w zamian za pomocą CanvasScope
    • Utworzyliśmy DrawContext, aby opakowywać zależności DawScope
    • Usunięto wycofane metody w DrawScope (I56f5e).
  • Box został przekształcony w funkcję wbudowaną. (Ibce0c, b/155056091)

Wersja 1.0.0-alpha05

14 października 2020 r.

androidx.compose.material:material:1.0.0-alpha05, androidx.compose.material:material-icons-core:1.0.0-alpha05 i androidx.compose.material:material-icons-extended:1.0.0-alpha05 zostały udostępnione. Wersja 1.0.0-alfa05 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Wyskakujące okienka i okna dialogowe dziedziczą teraz flagę FLAG_SECURE z okna nadrzędnego. Dodaliśmy też opcję bezpośredniego konfigurowania (I64966, b/143778148, b/143778149)
  • Modifier.swipeable ma obecnie domyślne wartości progowe 56.dp dla stanów (Iab825, b/168610267)
  • wszystkie stany rusztowania oznaczone jako @Stable. Drużyny w aplikacji ScaffoldState zostały przeniesione do Scaffold. (I36645, b/168297016)
  • Usuwa z parametrów lambda w Scaffold typ dopuszczalny do wartości null. Możesz użyć funkcji emptyContent() do reprezentowania braku treści dla danego parametru. (I2b318, b/157633857, b/158551084)
  • Wycofuje interfejsy API contentColor() i currentTextStyle(), a następnie zastępuje je odpowiednio środowiskom AmbientContentColor i AmbientTextStyle. Aby uzyskać dostęp do bieżącej wartości, użyj właściwości .current z właściwości trybu nieaktywnego, jak w przypadku każdego innego elementu otoczenia. Zmiana ta została wprowadzona w celu zachowania spójności i uniknięcia korzystania z wielu sposobów na osiągnięcie tego samego celu. Dodatkowo zmienia nazwy niektórych właściwości elementów otoczenia, by lepiej opisać ich przeznaczenie:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
  • Dodaje nakładkę AmbientElevationOverlay, która umożliwia dostosowanie lub wyłączenie domyślnej nakładki wysokości zastosowanej do powierzchni w ciemnym motywie. (I5B74D)

Poprawki błędów

  • W ramach standaryzacji wartości w klasach wbudowanych zmień nazwę Kolor.Unset na Kolor. Nieokreślona, aby zachować spójność z innymi klasami wbudowanych (I97611, b/169797763).
  • Wprowadzono tekst TextOverflow.None. Gdy nadmiarowe ma wartość Brak, tekst nie obsługuje już nadmiarowych elementów i zgłasza rzeczywisty rozmiar do LayoutNode. (I175c9, b/158830170)
  • updateInComposition zmieniona na LaunchedTask, by zapewnić zgodność z wytycznymi na temat interfejsu Compose API (I99a8e)
  • Nazwa OnPositionedModifier została zmieniona na OnGloballyPositionedModifier, a nazwa onPositioned() została zmieniona na onGloballyPositioned(). (I587e8, b/169083903).

Wersja 1.0.0-alpha04

1 października 2020 roku

androidx.compose.material:material:1.0.0-alpha04, androidx.compose.material:material-icons-core:1.0.0-alpha04 i androidx.compose.material:material-icons-extended:1.0.0-alpha04 zostały udostępnione. Wersja 1.0.0-alfa04 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Udostępnia parametry InteractionState w stanowych komponentach Material, co umożliwia przenoszenie stanu i odczytywanie / sterowanie nim. (Iaca5f, b/168025711, b/167164434)
  • Zmienia parametry *color w parametrach RadioButton i TriStateCheckbox, aby umożliwić pełne dostosowanie kolorów używanych w każdym stanie, a także w razie potrzeby zmianę sposobu animowania kolorów między stanami. Więcej informacji znajdziesz w opisie nowych funkcji kolorów animateDefault* w atrybutach CheckboxConstants i RadioButtonConstants. (I1c532).
  • Zmieniliśmy nazwę zapamiętywania BackdropState w taki sposób, aby zapamiętaćBackdropScaffoldState, i dodano dodatkowy parametr zegara animacji. Zmieniono nazwę param backdropScaffoldState of BackdropScaffold na scaffoldState Zmieniliśmy nazwę BackdropConstants na BackdropScaffoldConstants. (IB644D)
  • Dodano eksperymentalny komponent DolnyScaffold. (Ie02f0, b/148996320)
  • Dodano eksperymentalny komponent ModalbottomSheetLayout. (IC209e, b/148996320)
  • Zmienia nazwę elementu ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation na defaultElevation, a teraz zwraca wartość Dp zamiast AnimatedValue. (I5f3ed)

Poprawki błędów

  • Zaktualizowano wiele interfejsów Graphics API.
    • Zaktualizowaliśmy interfejsy API skalowania i obrotu przekształcania, aby wykorzystywały pojedynczy parametr Offset do reprezentowania współrzędnych przestawnej zamiast osobnych parametrów zmiennoprzecinkowych dla współrzędnych x/y w DrawScope i DrawTransform
    • Usunięto metody Rect.expandToInclude i Rect.join
    • Zaktualizowaliśmy dokumentację dotyczącą promieni eliptycznych. Oprócz eliptycznego
    • Dodaliśmy dokumentację wskazującą, że publiczny konstruktor dla wbudowanej klasy Radius nie powinien być wywoływany bezpośrednio, ale wystąpienie obiektów Radius należy tworzyć za pomocą ich konstruktorów funkcji.
    • Usunęliśmy interfejsy RoundRect API do wysyłania zapytań dotyczących górnych praw, dolnych, dolnej, środkowej części itp.
    • Wycofano Rect.shift na rzecz Rect.translate
    • Usunięto interfejsy API RoundRect.grow i Rect.shrink
    • Zmieniono nazwę RoundRect.outerRect na Rect.boundingRect
    • Usunęliśmy metody RoundRect.middleRect/tallMiddleRect/wideMiddleRect i Rect.isStadium
    • Nazwa RoundRect.longestSide została zmieniona na RoundRect.maxDimensions
    • Zmieniono nazwę RoundRect.shortestSide na RoundRect.mindimension
    • Zmieniono RoundRect.center na właściwość, a nie funkcję
    • Zaktualizowaliśmy konstruktor RoundRect, który wykorzystuje właściwości typu Radius zamiast poszczególnych parametrów dla wartości promieni x/y.
    • Usunęliśmy interfejsy Size API, które zakładały, że jest to prostokąt o źródle wartości 0,0
    • Do interfejsu Radius dodano interfejs API destrukcyjny.
    • Przenieśliśmy różne funkcje rozszerzenia RoundRect na właściwości
    • (I8f5c7, b/168762961)
  • Fundament.Box został wycofany. Zamiast niej użyj elementu Foundation.layout.Box. (IE5950, b/167680279)
  • Nazwa stosu została zmieniona na Box. Dotychczasowa wersja Box zostanie wycofana i zastąpi nową nową wersją na stronie compose.foundation.layout. Działanie nowego pola to układanie elementów podrzędnych jedna nad drugą, jeśli ma ona kilka elementów podrzędnych. Różni się to od poprzedniej skrzynki, która działała podobnie jak kolumna. (I94893, b/167680279)
  • Parametry dekoracji pola zostały wycofane. Jeśli chcesz dodać do pola ozdoby lub dopełnienie, użyj modyfikatorów (Modifier.background, Modifier.border, Modifier.splash) (Ibae92, b/167680279)
  • Zaktualizowano wiele interfejsów Graphics API.
    • Zaktualizowaliśmy interfejsy API DrawScope z metodami przekształcania o zakresie wskazującym, że przekształcenie jest stosowane tylko w wywołaniu zwrotnym i usuwane po wywołaniu wywołania zwrotnego
    • Zaktualizowaliśmy dokumentację dotyczącą clipPath, aby odwoływały się do ścieżki zamiast zaokrąglonego prostokąta
    • Poprawiono odstępy w dokumentacji dla prawego parametru w clipPath
    • Zmieniliśmy nazwę DrawScope.drawCanvas na DrawIntoCanvas i usunęliśmy parametr rozmiaru.
    • Zmieniono nazwę parametrów Dx/dy w metodzie wstawienia na poziomą i pionową
    • Dodano przeciążenie wektora, które zapewnia tę samą wartość wstawienia do wszystkich 4 progów
    • Usunęliśmy dokumentację metody wstawiania, która wskazuje, że wstawienie zostanie zastosowane do wszystkich 4 stron,
    • Zaktualizowano dokumentację klasy Rect
    • Zaktualizowaliśmy komentarze do parametrów Rect, aby pasowały do stylu kdoc
    • Usunięto elementy Rect.join i Rect.expandToInclude
    • Utworzono przeciążenie dla Rect.translate(offset) i wycofano Rect.shift
    • (If086a, b/167737376)
  • Zablokowaliśmy statyczne importowanie treści zakresów układu (np.alignWithSiblings w RowScope). Zamiast niego należy stosować alternatywny zakres wyraźny: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be, b/166760797)

Wersja 1.0.0-alpha03

16 września 2020 roku

androidx.compose.material:material:1.0.0-alpha03, androidx.compose.material:material-icons-core:1.0.0-alpha03 i androidx.compose.material:material-icons-extended:1.0.0-alpha03 zostały udostępnione. Wersja 1.0.0-alfa03 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Zmienia nazwę parametru onSelect urządzenia BottomNavigationItem na onClick (I91925, b/161809324)
  • Dodaje parametr InteractionState do elementów bottomNavigationItem i Tab, umożliwiając podniesienie tego stanu i dostosowanie sposobu wyświetlania komponentu w różnych stanach. (Ia3e9e, b/168025711)
  • Usuwa z przycisków parametry disabledBackgroundColor i disabledContentColor. Zamiast tego należy użyć nowych funkcji domyślnych koloru wewnątrz ButtonConstants. Jeśli masz już ustawione jawne ustawienie contentColor lub backgroundColor, użyj tych funkcji domyślnych i dostosuj niektóre lub wszystkie parametry, aby uniknąć zastąpienia koloru w przypadku obu stanów włączenia/wyłączenia. (If9b52).
  • Kolor tła pola tekstowego nie powoduje już niejawnego zastosowania przezroczystości w wersji alfa. Zamiast tego każdy kolor podany za pomocą parametru backgroundColor zostanie zastosowany bezpośrednio. (Iecee9, b/167951441)
  • Nazwa InnerPadding została zmieniona na PaddingValues. (I195f1, b/167389171)
  • Parametry resistanceFactorAtMin i resistanceFactorAtMax w tabeli Modifier.swipeable zostały zastąpione pojedynczym parametrem oporu. Nowa metoda defaultResistanceConfig została dodana w SwipeableConstants. (I54238)
  • Dodaje animowaną obsługę podwyższeń dla elementów Button i FloatingActionButton. Wysokość jest teraz animowana między stanem domyślnym i po naciśnięciu. Aby dostosować wysokość między stanami, użyj elementów ButtonConstants.defaultAnimatedElevation() i FloatingActionButtonConstants.defaultAnimatedElevation(), zamiast ustawiać zryczałtowaną wartość Dp we wszystkich przypadkach. (I37925)
  • Etykieta jest teraz opcjonalnym parametrem w polach TextField i OutlinedTextField (I267f6, b/162234081)

Poprawki błędów

  • Funkcje testowania globalnego, takie jak onNode czy waitForIdle, zostały wycofane. Zacznij korzystać z ich nowych odpowiedników zdefiniowanych w ComposeTestRule (I7f45a).
  • Funkcje DpConstraints i interfejsy API korzystające z nich zostały wycofane. (I90cdb, b/167389835)
  • Nazwy parametrów minwidth i maxWidth – szerokośćIn zostały zmienione na „min” i „max”. Analogicznie w przypadku wartości preferredwidthIn, heightIn i preferredHeightIn. (I0e5e1, b/167389544)
  • Usuń działania semantyczne polegające na przewijaniu do przodu i do tyłu. Dodaliśmy kroki w AccessibilityRangeInfo. (Ia47b0).
  • Spójnie przemianowaliśmy zastosowania grawitacji, aby wyrównać lub wyrównać interfejsy API układu. (I2421a, b/164077038)
  • Dodano onNode i inne metody globalne w ComposeTestRule, 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-alpha02

Wrzesień 2, 2020

androidx.compose.material:material:1.0.0-alpha02, androidx.compose.material:material-icons-core:1.0.0-alpha02 i androidx.compose.material:material-icons-extended:1.0.0-alpha02 zostały udostępnione. Wersja 1.0.0-alfa02 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Dodano eksperymentalny komponent TłoScaffold. (IAD908),

Poprawki błędów

  • Matrix4 została zastąpiona matrycą. Wszystkie pozostałe części pakietu Vectormath zostały usunięte. (Ibd665, b/160140398)

Wersja 1.0.0-alpha01

26 sierpnia 2020 r.

androidx.compose.material:material:1.0.0-alpha01, androidx.compose.material:material-icons-core:1.0.0-alpha01 i androidx.compose.material:material-icons-extended:1.0.0-alpha01 zostały udostępnione. Wersja 1.0.0-alfa01 zawiera te zatwierdzenia.

Znany problem

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

Wersja 0.1.0-dev

Wersja 0.1.0-dev17

19 sierpnia 2020 r.

androidx.compose.material:material:0.1.0-dev17, androidx.compose.material:material-icons-core:0.1.0-dev17 i androidx.compose.material:material-icons-extended:0.1.0-dev17 zostały udostępnione. Wersja 0.1.0-dev17 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Wcześniej wycofane elementy RadioGroup i RadioGroupItems zostały usunięte. Zamiast nich użyj Row i RadioBotton (I381b7, b/163806637)
  • Usunięto wywołania zwrotne onFocusChanged z TextField. Zamiast niej użyj metody Modifier.focusObserver. (I51089, b/161297615)
  • Interfejs Modifier.drawBorder został wycofany. Zamiast niego użyj metody Modifier.granic. Klasa danych obramowania została zastąpiona przez BorderStroke (I4257d, b/158160576)
  • Zmieniono nazwy niektórych właściwości w SkalableState: Przesuwanie w kierunku -> targetValue, Postęp przesuwania -> postęp, przesunięcieDirection -> kierunek. Dodano funkcję zapamiętania SwipeableState do tworzenia właściwości LTIableStates. (I2fc9c, b/163129614, b/163132293)
  • Dodaliśmy obsługę paska powiadomień z odpowiednim pozycjonowaniem i kolejką. Uzyskaj do niego dostęp za pomocą funkcji zawieszania SnackbarHostState.showSnackbar. Dodatkowo:
    • Komponenty SnackbarHost zostały dodane. Na jej podstawie działają paski powiadomień i odpowiadają za przełączanie się między nimi.
    • Dodano SnackbarHostState, aby umożliwić kontrolę nad paskami powiadomień i hostami pasków powiadomień oraz odłączanie ich od ScaffoldState. Dostęp do tego stanu możesz też uzyskać za pomocą scaffoldState.snackbarHostState.
    • Dodano przeciążenie paska powiadomień, aby zapewnić obsługę wspólnego interfejsu między paskami powiadomień. (I79aaa).
  • Dodaje włączony parametr do IconButton i zmienia kolejność parametrów w IconToggleButton (I0a941, b/161809385, b/161807956)
  • Wersja ListItem z interfejsem API opartym na ciągach znaków została usunięta. Użyj wersji przedziału. (Ib8f57, b/161804681)
  • Usunięto wycofany komponent FilledTextField. Aby uzyskać implementację interfejsu Material Design w wypełnionym polu tekstowym, użyj pola TextField. (I5e889)
  • AlertDialog używa teraz FlowRow do obsługi przycisków (I00ec1, b/161809319, b/143682374)
  • W modyfikatorze.swipeable dodano parametry zmieniające natężenie oporu przy przesuwaniu poza granice. Usunięto parametry wartości [min/max]. (I93d98)
  • Dodano parametr backgroundColor do właściwości LinearProgressIndicator, a w przypadku CircularProgressIndicator usunęliśmy wewnętrzne dopełnienie. Dodano nową wartość ProgressIndicatorConstants.DefaultProgressAnimationSpec, której można użyć jako domyślnej właściwości AnimationSpec podczas animowania postępu między wartościami (If38b5, b/161809914, b/161804677).
  • Opcjonalny parametr velocityThreshold został dodany do pliku Modifier.swipeable. (I698BA)
  • LowBarSize, fabSize i inne i nie są już dostępne w ScaffoldState. Użyj metody Modifier.onPosition w elemencie, którego rozmiar chcesz sprawdzić. Do komponentów Scaffold dodano pamates contentColor i modyfikator (Ic6f7b, b/161811485, b/157174382)
  • Zmienia nazwy niektórych parametrów na karcie i zmienia ich kolejność, aby zapewnić spójność z innymi interfejsami API (Ia2d12, b/161807532)
  • Dzieli TabRow na elementy TabRow i ScrollableTabRow oraz usunięcie elementu is Scrollable z interfejsu TabRow. Udostępnia też EdgePadding w ScrollableTabRow, co umożliwia kontrolowanie wolnego miejsca przed kartami i za nimi. (I583e8, b/161809544)
  • Obiekt TabRow został usunięty, zastępując go TabConstants. Element TabRow.TabPosition został przeniesiony na najwyższy poziom (TabPosition) i zmienił nazwę komponentu indexContainer na indicator. Szczegółowe informacje o korzystaniu ze zaktualizowanego interfejsu API i ustawień domyślnych znajdziesz w przykładach i dokumentacji. (I54d45, b/161809544)
  • Parametr progów w modyfikatorze.swipeable został zmieniony. Obecnie przyjmuje parę stanów (typu T) i zwraca próg między nimi w postaci ThresholdConfig. Do metody SwipeToBounce, z którym jest to parametr lambda (BounceDirection) -> ThresholdConfig, dodano parametr disapprovalThresholds. (IE1080).
  • Suwak ma więcej kolorów, co pozwala na precyzyjne dostosowanie (I73e64, b/161810475)
  • Nazwa parametru koloru karty została zmieniona na backgroundColor (I01fc1, b/161809546).
  • Pasek powiadomień ma teraz dostosowywane kolory tła i treści (I238f2, b/161804381)
  • Do szuflad dodaliśmy parametry dostosowania modyfikatora, backgroundColor, contentColor oraz scrimColor do szuflad (I23655, b/161804378)
  • Funkcja kompozycyjna state { ... } została wycofana i zastąpiła jawne wywołania remember { mutableStateOf(...) }, aby zapewnić przejrzystość. Zmniejsza to ogólną powierzchnię interfejsu API i liczbę pojęć związanych z zarządzaniem stanem. Dopasowanie do wzorca by mutableStateOf() w przypadku przekazywania właściwości klas. (IA5727).
  • Nazwa parametru dopełnienia przycisku została zmieniona na contentPadding (Id252e, b/161809394)
  • Dodaj eksperymentalny komponent materiału PrzesuńToClose. (I129e5)

Poprawki błędów

  • Usunięto: onChildPositioned i OnChildPositionedModifier. W układzie podrzędnym deweloperzy powinni zamiast tego używać właściwości onPositioned i OnPositionedModifier. (I4522e, b/162109766)
  • Do elementu Semantics PropertyKey dodano funkcję mergePolicy lambda. Pozwala to zdefiniować niestandardową zasadę łączenia semantyki mergeAllDescendants. Domyślną zasadą jest użycie wartości nadrzędnej, jeśli już istnieje, lub wartości podrzędnej. (Iaf6c4, b/161979921)
  • IntSize jest teraz klasą wbudowaną (I2bf42)
  • Nazwa usługi PlacementScope.placeAbsolute() została zmieniona na PlacementScope.place(), a poprzednia nazwa (PlacementScope.place()) na PlacementScope.placeRelative(). W efekcie metoda PlacementScope.place() nie będzie już automatycznie dublować położenia w kontekstach od prawej do lewej. Jeśli chcesz, użyj PlacementScope.placeRelative(). (I873ac, b/162916675)
  • Wycofane PxBounds na rzecz Rect. Zaktualizowano wszystkie przypadki użycia PxBounds w polu „PxBounds” i dodano odpowiednie wycofanie/zastąpienie adnotacjami, aby wspomóc migrację. (I37038, b/162627058)
  • Zmieniliśmy nazwę parametru RRect na RoundRect, by lepiej dopasować ją do wzorców nazewnictwa tworzenia kompozycji Utworzyliśmy podobne konstruktory funkcji do konstruktorów funkcji RRect i wycofanych konstruktorów funkcji RRect (I5d325)

Wersja 0.1.0-dev16

5 sierpnia 2020 r.

androidx.compose.material:material:0.1.0-dev16, androidx.compose.material:material-icons-core:0.1.0-dev16 i androidx.compose.material:material-icons-extended:0.1.0-dev16 zostały udostępnione. Wersja 0.1.0-dev16 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Kolory to teraz klasa końcowa, a nie interfejs. Zamiast rozszerzać i udostępniać implementację niestandardową, utwórz nowe tło dla obiektu motywu niestandardowego i uzyskaj dostęp do obiektu motywu, używając nowego trybu otoczenia w komponentach, podobnie jak wewnętrznie działa MaterialTheme. (IBae84).
  • Zmieniliśmy nazwę ColorPalette na ColorPalette, aby lepiej zmapować system kolorów Material i wyeliminować nieporozumienia w odniesieniu do tego, że ColorPalette jest „ogólnym” obiektem tematycznym, a nie jest konkretną implementacją systemu kolorów Material. Dodatkowo zmienia nazwy z lightColorPalette i darkColorPalette na lightColors i darkColors. (I9e976, b/161812111)
  • Zmienia nazwę parametru text elementu bottomNavigationItem na label, onSelected na onSelect, activeColor na selectedContentColor, inactiveColor na unselectedContentColor oraz aktualizuje kolejność parametrów zgodnie ze wskazówkami. (Icb605, B/161809324)
  • Pole Modifier.stateDraggable zostało całkowicie przerobione i nazwane na Modifier.swipeable. Wprowadzono nową klasę PrzesuńableState, a elementy DrawerState i bottomDrawerState zostały zmodyfikowane tak, aby dziedziczyły z niej elementy. [Modal/bottom]DrawerLayout nie używa już parametru onStateChange. (I72332, b/148023068)
  • pakiet Foundation.shape.corner został spłaszczony do pliku Foundation.share (I46491, b/161887429)
  • Dodano adnotację ExperimentalMaterialApi. RippleTheme oznaczony jako eksperymentalny (Ic5fa0, b/161784800)
  • Nazwa pola Material FilledTextField została zmieniona na TextField, a podstawowy element TextField zmienił się na BaseTextField, by ułatwić znajdowanie i używanie najprostszego interfejsu API (Ia6242, b/155482676).

Poprawki błędów

  • Funkcja OnChildPositioned została wycofana. Użyj w zamian elementu OnPositioned w elemencie podrzędnym. (I87f95, b/162109766)
  • Naprawianie ogólnych poprawek interfejsu API (I077bc)
    1. Usuń nieużywany interfejs OffsetBase
    2. Wyrównuje klasy Offset i IntOffset, aby mieć spójny interfejs API
    3. Zmień nazwę IntOffset.Origin na IntOffset.Zero, by była zgodna z interfejsem Offset API
    4. Przeniesiono metodę natywnego Canvas z interfejsu Canvas, aby zachęcić konsumentów do tworzenia własnych instancji Canvas
    5. Utworzono stub klasy EmptyCanvas do refaktoryzacji DrawScope jako parametr niepusty zamiast lateinit i zapewnia niedodawanie pola do wartości null
    6. Zmieniono nazwę wyliczeń ClipOp na sprawy Pascal
    7. Zmieniono nazwę enumów filtraJakość na typ Pascal
    8. Zmieniono nazwę wyliczeń Stroke Join na Case Pascal
    9. Zmieniono nazwę wyliczeń PointMode na typ Pascal
    10. Zmieniono nazwy enum PaintingStyle na przypadek Pascala
    11. Zmieniono nazwę wyliczeń PathFillType na przypadek Pascal
    12. Zmieniono nazwę wyliczeń StrokeCap na przypadki Pascal
    13. zaktualizowaliśmy implementację DrawCache tak, aby nie używała już parametrów Lateinit,
    14. Zaktualizowano metodę DrawScope, by nie używała już leniwego przekazywania w przypadku wewnętrznych parametrów FillPaint i slidePaint
    15. Zaktualizowaliśmy funkcję kompozycji obrazu, aby uniknąć używania usługi Box i zmniejszania nakładu pracy
    16. Zaktualizowaliśmy klasę Outline tak, aby dodać do niej adnotacje @stałe.
    17. Zaktualizowaliśmy narzędzie PathNode, aby dodać adnotacje @Stałe dla każdej instrukcji ścieżki
    18. Zaktualizowaliśmy składnię wektorową, aby usunąć zbędne warunkowe kontrole równości, ponieważ funkcja tworzenia wiadomości już je obsługuje
    19. Wycofane metody konstruktora towarzyszącego Prostokąt na rzecz konstruktorów funkcji
    20. zaktualizowaliśmy klasy i konstruktory funkcji Brush, używając interfejsów API @Immutable i @Stable.
    21. Zaktualizowano enum VertexMode na PascalCase
    22. Zaktualizowano metodę DrawScope selectPaint, która warunkowo zastępuje parametry kreski w malowaniu, jeśli uległy zmianie
    23. Zaktualizowaliśmy rozmiar, by dodać interfejs API destrukcyjny; zmień nazwę UnspecifiedSize na Nieokreślony i usunęliśmy nieużywane metody
  • Przenieś okno do interfejsu użytkownika (I47fa6)
  • Czcionka SemanticsNodeInteraction.performPartialGesture została usunięta. Użyj 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 parametr LayoutDirectionAmbient, którego można używać do odczytywania i zmieniania kierunku układu. Modifier.rtl oraz Modifier.ltr zostały usunięte. (I080B3)
  • Nazwa Modifier.deternimateProgress została zmieniona na Modifier.progressSemantics (I9c0b4).
  • Aktualizuje ikony materiał-ikony o najnowsze ikony dodane do Material.io/ikony (I4b1d3).
  • Wymagaj wyraźnego określenia typu T w transitDefinition. (Zignorowano)
  • Interfejs Modifier.plus został wycofany. Użyj interfejsu Modifier.then. Pole „To” daje silniejszy sygnał określający kolejność, ale uniemożliwia też wpisanie słowa Modifier.padding().background() + anotherModifier, które przerywa łańcuch i jest trudniejsze do odczytania (Iedd58, b/161529964).
  • Zmieniono nazwę reguły AndroidComposeTestRule na createAndroidComposeRule. (I70aaf)
  • Dodano elementy isFocused() i isNotFocused() SemanticsMatcher. (I0B760)
  • Usunięto tabelę BaseGestureScope.globalBounds, której nie należy używać do testów. Zamiast tego użyj lokalnych współrzędnych węzła, z którym się komunikujesz. (IE9b08)
  • Stała pozycja wyskakującego okienka na wyświetlaczu z wycięciem. (Idd7dd)
  • Nazwa Modifier.drawBackground została zmieniona na Modifier.background (I13677)

Wersja 0.1.0-dev15

22 lipca 2020 r.

androidx.compose.material:material:0.1.0-dev15, androidx.compose.material:material-icons-core:0.1.0-dev15 i androidx.compose.material:material-icons-extended:0.1.0-dev15 zostały udostępnione. Wersja 0.1.0-dev15 zawiera te zatwierdzenia.

Aktualizacja zależności

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

Zmiany interfejsu API

  • Adnotacja @Model została wycofana. Zamiast nich używaj parametrów state i mutableStateOf. Decyzja o wycofaniu została podjęta po bardzo wnikliwej dyskusji.

    Uzasadnienie

    Uzasadnienie obejmuje m.in.:

    • Skraca powierzchnię interfejsu API oraz koncepcje, których trzeba nauczać
    • ściślej pasuje do innych podobnych narzędzi (Swift UI, React, Flutter).
    • Decyzja odwracalna. Zawsze możemy później przywrócić użytkownika @Model.
    • Nie używa wielkich liter i nie wymaga odpowiedzi na pytania o konfigurację @Model jako rzeczy, którymi musimy się zająć.
    • Klasy danych: @Model, równa się, kod numeryczny itp.
    • Co zrobić, aby niektóre właściwości były „obserwowane”, a inne nie?
    • Jak określić równość strukturalną i referencyjną do zastosowania w obserwacji?
    • Ogranicza działanie „magii” działania systemu. Zmniejszyłoby prawdopodobieństwo, że ktoś zakłada, że system jest mądrzejszy niż jest (tj. wie, jak porównać listę)
    • Zwiększa szczegółowość obserwacji.
    • Poprawia refaktoryzację z zmiennej -> właściwości w klasie
    • Potencjalnie otwiera możliwości wprowadzenia ręcznych optymalizacji w kontekście poszczególnych stanów.
    • Jest ściślej dopasowany do reszty ekosystemu i ogranicza niejasności w odniesieniu do „stałego stanu” lub „akceptowania zmiennego stanu”.

    Uwagi dotyczące migracji

    Niemal wszystkie dotychczasowe sposoby korzystania z usługi @Model są dość proste w użyciu na jeden z 2 sposobów. Przykład poniżej zawiera klasę @Model z 2 właściwościami i jest używana w funkcji kompozycyjnej.

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
        p.x = it }
        p.y = it }
     )
    }
    

    Opcja 1. Użyj elementu State<OriginalClass> i utwórz kopie.

    To podejście jest łatwiejsze dzięki klasom danych Kotlin. Ogólnie rzecz biorąc, przenieś wszystkie właściwości var do właściwości val klasy danych, a następnie użyj state zamiast remember i przypisz wartość State sklonowanym kopiom oryginału za pomocą wygodnej metody klasy danych copy(...).

    Pamiętaj, że to podejście działa tylko wtedy, gdy jedyne mutacje w danej klasie zostały wprowadzone w tym samym zakresie co instancja State. Jeśli klasa zmienia się wewnętrznie poza zakres użytkowania i polegasz na obserwowaniu tej zmiany, należy zastosować się do kolejnego podejścia.

    data class Position(
     val x: Int,
     val y: Int
    )
    
    @Composable fun Example() {
     var p by state { Position(0, 0) }
     PositionChanger(
       position=p,
        p = p.copy(x=it) }
        p = p.copy(y=it) }
     )
    }
    

    Opcja 2: użyj przedstawicieli mutableStateOf i właściwości

    Takie podejście jest łatwiejsze dzięki przedstawicielom właściwości Kotlina i interfejsowi API mutableStateOf, które umożliwia tworzenie instancji MutableState poza kompozycją. Ogólnie rzecz biorąc, zastąp wszystkie właściwości var pierwotnej klasy właściwościami var właściwościami mutableStateOf. Ta zaleta polega na tym, że sposób korzystania z klasy nie ulegnie zmianie, a jedynie jego wewnętrzna implementacja. Działanie nie jest jednak całkowicie takie samo jak w przypadku pierwotnego przykładu, ponieważ każda właściwość jest teraz obserwowana/zasubskrybowana osobno, więc zmiany widoczne po tym refaktoryzacji mogłyby być bardziej wąskie (to dobrze).

    class Position(x: Int, y: Int) {
     var x by mutableStateOf(x)
     var y by mutableStateOf(y)
    }
    
    // source of Example is identical to original
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
        p.x = it }
        p.y = it }
     )
    }
    

    (I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/925

  • Nazwa wywołania zwrotnego onFocusChange w polach tekstowych została zmieniona na onFocusChanged (Ida4a1)

  • Dodaliśmy parametr progów w stanie stateDraggable, który pozwala określić progi między kotwicami. Posłużyło to do ustawienia progu 56 dp w dolnej szufladzie. Poza tym bottomDrawerLayout korzysta teraz z oddzielnego wyliczeniowego bottomDrawerState. (I533fa)

  • Usuwa wcześniej wycofany plik Modifier.ripple. Kliknięcie jest teraz domyślnym wskaźnikiem echa (jeśli w aplikacji masz ustawiony motyw MaterialTheme {}), więc w większości przypadków wystarczy użyć kliknięcia i uzyskać wskaźnik fali. Jeśli chcesz dostosować parametr koloru / rozmiaru / granicy fali, możesz ręcznie utworzyć parametr RippleIndication i przekazać go do kliknięcia jako parametr wskaźnika. (I663b2, b/155375067)

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

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

  • Boks treści przycisku wyświetla się teraz jako wiersz (przydatne, gdy musisz mieć ikonę z tekstem; zobacz przykłady dotyczące pisania przycisku) (I0ff10, b/158677863)

  • Opcje RadioGroup i RadioGroupItem zostały wycofane. Użyj opcji Pole z modyfikatorem.wyboru, Wierszem i Kolumną, aby wybrać odpowiedni zestaw opcji (I7f5cf, b/149528535).

  • Dodano pole tekstowe z konturem materiału (I1a518)

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

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

  • Zastąpiliśmy wartość IntPx wartością IntPxPosition (Parametr IntPxPosition) wartością IntOffset. IntPxSize zastąpiono wartością IntSize. (IB7b44)

  • Aby skonsolidować liczbę klas używanych do przedstawiania informacji o rozmiarze, ustandaryzuj użycie klasy Size zamiast PxSize. Dzięki temu w klasie wbudowanej można umieścić 2 wartości zmiennoprzecinkowe w postaci długiej do pakowania 2 wartości liczb zmiennoprzecinkowych, które reprezentują szerokość i wysokość reprezentowane przez liczbę zmiennoprzecinkową. (IC0191).

  • Wycofuje modyfikator.ripple. Kliknięcie jest teraz domyślnym wskaźnikiem echa (jeśli w aplikacji masz ustawiony motyw MaterialTheme {}), więc w większości przypadków wystarczy użyć kliknięcia i uzyskać wskaźnik fali. Jeśli chcesz dostosować parametr koloru / rozmiaru / granicy fali, możesz ręcznie utworzyć parametr RippleIndication i przekazać go do kliknięcia jako parametr wskaźnika. (I101cd, b/155375067)

  • Interfejs Scaffold API został przerobiony: zmieniono nazwę kilku parametrów i dodaliśmy nowe parametry w celu lepszego dostosowania. Dodano metodę pobierania do rozmiarów zapytań w przypadku parametrów Fab, TopBar i DolnyPasek (I0e7ce).

  • Dodano komponent Menu z menu w materiale UI, czyli implementacji menu w stylu Material Design. (I9bb3d).

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

  • Do pakietu podstawowego dodano modyfikator.indication. Służy do pokazywania wskaźnika naciśnięcia lub przeciągnięcia innych elementów na niestandardowych elementach interaktywnych (I8425f, b/155287131).

  • Skonsolidowano implementacje CanvasScope, dzięki czemu powstaje tylko DrawScope i ContentDrawScope. Nazwa obiektu CanvasScope została zmieniona na DrawScope. Zaktualizowaliśmy DrawScope, aby wdrożyć interfejs Density i udostępnić interfejs LayoutDirection Usunięta podklasa DrawScope w ContentDrawScope Zaktualizowaliśmy aplikację Painter i painterModifier, aby nie utrzymywała już właściwości RTL, ponieważ DrawScope udostępnia ją już bez ręcznego podawania jej właściwości (I1798e)

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

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

  • FilledTextField otrzymuje działanie ime, przekształcanie wizualne i obsługę typu klawiatury (I1f9cf, b/155075201)

  • Dodaje parametr trafficWidth do wskaźnika CircularProgressIndicator, by dostosować rozmiar kreski. Aby zmienić rozmiar kreski (wysokość) wskaźnika LinearProgressIndicator, możesz użyć modyfikatora Modifier.preferredHeight() lub innego modyfikatora rozmiaru. (Icea16, b/154919081)

  • Dodaje parametr trafficWidth do wskaźnika CircularProgressIndicator, by dostosować rozmiar kreski. Aby zmienić rozmiar kreski (wysokość) wskaźnika LinearProgressIndicator, możesz użyć modyfikatora Modifier.preferredHeight() lub innego modyfikatora rozmiaru. (Icea16, b/154919081)

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

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

  • Wszystkie przypadki użycia koloru, które mogą przyjmować wartości null w interfejsie API, zastąpiono wartością niedopuszczającą wartości null i ustawiono wartość Color.Unset zamiast wartości null (Iabaa7).

  • Zmieniono nazwę EdgeInsets na InnerPadding. Zmieniono nazwę parametru innerPadding elementu Material Buttons na pasek boczny. (I66165).

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

  • Usunięto panel StaticDrawer. W razie potrzeby użyj wartości Box z szerokością określoną przez materiał (I244a7)

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

  • Dodano parametr modyfikatora do elementu ListItem i zmienione parametry, aby promować końcowe treści lambda (I66e21)

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

  • Tymczasowo usunięto Material Data Tables z interfejsu API. (Iaea61),

  • Zmienione nazwy parametrów w funkcji podziału na separator (Ic4373)

  • dzieci (Ia6d19)

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

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

  • Zmieniliśmy interfejsy API MaterialTheme, takie jak MaterialTheme.colors(), MaterialTheme.typography(), na właściwości, a nie funkcje. Usuń nawiasy z istniejących połączeń. Nie powinno to wpłynąć na działanie usługi. (I3565a)

  • Zrefaktoryzowano interfejsy API FloatingActionButton, aby akceptować obiekty lambda z możliwością kompozycyjnej zamiast obiektów podstawowych. Informacje o korzystaniu znajdziesz w zaktualizowanych przykładach. (I00622)

  • dodanie parametru enabled do pola wyboru, przełącznika i możliwości przełączania (I41c16)

  • Echo jest teraz modyfikatorem. Chociaż elementy klikalne nie zostały jeszcze przekonwertowane, zalecane użycie to Clickable( ... }, modifier = ripple()) (IE5200, b/151331852, b/150060763)

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

  • Elementy FloatingActionButton i Clickable mają teraz osobny parametr enabled. Zmieniono nazwy niektórych parametrów przycisku lub ich kolejność. (I54b5a)

  • Zmieniliśmy nazwę obrazu na ImageAsset, by lepiej rozróżnić dane obrazu od przyszłej funkcji kompozycyjnej obrazu wykorzystywanej do tworzenia układu i rysowania treści. _Body:Utworzono metodę rozszerzenia w android.graphics.Bitmap, Bitmap.asImageAsset(), w celu utworzenia komponentu ImageAsset przydatnego do połączenia tworzenia tradycyjnych aplikacji na Androida z platformą tworzenia (Id5bbd).

  • Usunęliśmy interfejs Snackbar API z parametrami typu String, co ułatwia użycie przeciążenia, które akceptuje obiekty lambda możliwe do kompozycji. Zobacz zaktualizowane przykłady informacji o wykorzystaniu (I55f80)

  • Interfejsy API kart zrefaktoryzowanych, aby akceptować lambda text i icon (Ia057e)

  • Dodano komponent bottomNavigation z informacjami o wykorzystaniu w dokumentacji i przykładach (I731a0).

  • Dodano ikony, IconButton i iconToggleButton, usuwając ikony AppBarIcon. Możesz bezpośrednio zastąpić obecne zastosowania AppBarIcon przez IconButton, aby reklamy te miały odpowiedni docelowy element dotykowy. Zapoznaj się z przykładami informacji o wykorzystaniu i zobacz ikony dostępnych ikon materiału, których można używać bezpośrednio z tymi komponentami. (I96849)

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

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

  • LayoutCoordinates nie ma już właściwości pozycji. Właściwość pozycji nie ma sensu przy uwzględnianiu elementów LayoutModifiers, rotacji lub skalowania. Do obliczania przekształceń z jednego LayoutCoordinate na inny programiści powinni używać koordynatorów nadrzędnych i podrzędnych (childToLocal()).

    Funkcja LayoutCoordinates używa właściwości rozmiaru IntPxSize, a nie PxSize. W przypadku układów stosuje się rozmiary w pikselach całkowitych, więc we wszystkich rozmiarach układów należy używać liczb całkowitych, a nie wartości zmiennoprzecinkowych. (I9367b)

  • Zmiany w interfejsie API nieaktywnym. Szczegóły znajdziesz w logu i dokumentacji Ambient<T> (I4c7ee, b/143769776)

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

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

Poprawki błędów

  • FocusModifier został wycofany i zastąpiony przez Modifier.focus, Modifier.focusRequester, Modifier.focusObserver. FocusState i FocusSzczegółState zostały wycofane i zastąpione FocusState2 (I46919, b/160822875, b/160922136)
  • Interfejsy Vertical Scroller oraz Horiziontal Scroller zostały wycofane. Użyj interfejsu ScrollableColumn i ScrollableRow, aby mieć wbudowane funkcje i parametry związane z kolumnami/wierszami, lub modyfikatorami.vertical Scroll i Mmodifier.vertical Scroll, aby umożliwić ich użycie własnemu elementowi. Natomiast ScrollerPosition został wycofany i zastąpiony przez ScrollState (I400ce, b/157225838, b/149460415, b/154105299).
  • Zmieniliśmy interfejsy API Modifier.draggable i Modifier.scrollable. Kierunek przeciągania został usunięty i zastąpiona Orientacją. Uprościliśmy stan wymagany w przypadku elementów przewijanych. Nazwa ScrollableState została zmieniona na ScrollableController (Iab63c, b/149460415).
  • Nazwa runOnIdleCompose została zmieniona na runOnIdle (I83607)
  • Usługi semantyczne z jedną wartością używają teraz stylu wywoływania. Na przykład pole „semantics { hide = true }” będzie teraz zapisane w następujący sposób: „semantics {hidden() }”. (Ic1afd, b/145951226, b/145955412).
  • Zmieniono nazwy kilku interfejsów API do testowania, 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 Impact API został zmieniony tak, aby zwracał wartość MigrateState zamiast przekazywać wartość przejśćState do elementów podrzędnych. Dzięki temu interfejs API jest bardziej spójny z interfejsami API aniate(). (I24e38)
  • Dodano klasę jednostki IntBounds, która reprezentuje granice liczby całkowitej liczby pikseli od układu. Interfejs API obiektu PopupPositionProvider został zaktualizowany, aby go używać. (I0d8d0, b/159596546)
  • Do narzędzi do znajdowania testów dodano nową opcjonalną flagę useUnmergedTree. (I2ce48).
  • Usunięto przestarzałe interfejsy API do testowania rozmiaru. (IBa0a0).
  • Usunięto klasę wbudowanej Shadera, która opakowała klasę oczekiwaną NativeShader. Zmieniono nazwę NativeShader na Shader. Opakowana klasa wbudowana Shadera nie dodała nic wartościowego do platformy interfejsu API i była klasą wbudowaną, więc użyj bezpośrednio klasy NativeShader. (I25e4d)
  • Wyskakujące okienka, okna i menu dziedziczą teraz kontekstowy motyw MaterialTheme (Ia3665, b/156527485).
  • Menu Material Design można teraz przewijać. (Ide699).
  • Z bloku miary funkcji Layout() usunięto parametr kierunku układu. Kierunek układu jest jednak dostępny w wywołaniu zwrotnym w obiekcie zakresu pomiaru (Ic7d9d)
  • Użyj AnimationSpec zamiast AnimationBuilder w interfejsach API najwyższego poziomu, aby wyjaśnić koncepcję specyfikacji animacji statycznej. -Udoskonalenie przejścia DSL przez usunięcie wymogu lambda przy tworzeniu specyfikacji animacji, takich jak starsze czy sprężyna. Zamiast tego korzystają bezpośrednio z parametrów konstruktora. – Zwiększenie ogólnej łatwości otwierania konstruktorów AnimationSpec zamiast użycia konstruktorów. -Zmiana czasu trwania i opóźnienia ramek KeyFrame i Tween na Int. Eliminuje to niepotrzebne rzuty typów i przeciążanie metod (przy obsłudze zarówno długich, jak i Int). (ICA0b4).
  • Przełącznik jest teraz wyłączony, gdy zasada enabled ma wartość Fałsz (If4624, b/155941869, b/159331694)
  • Nazwa Modifier.tag została zmieniona na Modifier.layoutId, aby uniknąć pomyłek z modyfikatorem.testTag. (I995f0)
  • Pozycje całkowite linii wyrównania zwrócone z Placeable#get(alignmentLine) nie mają teraz wartości null. Jeśli nie ma wiersza wyrównania, którego dotyczy zapytanie, funkcja wyrównania wejściowa zostanie zwrócona. (I896c5, b/158134875)
  • Zmieniono klasę Radius na klasę wbudowaną. Usunięto metody tworzenia elementów towarzyszących na rzecz konstruktora funkcji z domyślnym parametrem, aby promień na osi Y był zgodny z obowiązkowym parametrem promienia osi X.

    Zaktualizowaliśmy parametr DrawScope.drawRoundRect, tak aby korzystał z pojedynczego parametru Radius zamiast 2 osobnych wartości zmiennoprzecinkowych promienia wzdłuż osi x i y (I46d1b).

  • Aby skonsolidować liczbę klas używanych do przedstawiania informacji o pozycji, ustandaryzuj użycie klasy Offset zamiast PxPosition. Dzięki temu w klasie wbudowanej można umieścić 2 wartości zmiennoprzecinkowe za pomocą funkcji „long” (długie) do reprezentowania przesunięcia x i y reprezentowanego jako liczby zmiennoprzecinkowe. (I3ad98).

  • Zastąpiliśmy użycie klasy Px w różnych klasach tworzenia w ramach dużych nakładów refaktoryzacyjnych, które polegały na używaniu w parametrach pikseli wyłącznie typów Dp i typów podstawowych. Cała klasa Px została usunięta (I3ff33).

  • Komponent z możliwością przełączania został wycofany. Użyj metody Modifier.toggleable (I35220, b/157642842)

  • Zastąpiono użycie klasy Px w różnych klasach tworzenia w ramach dużych nakładów refaktoryzacyjnych, które polegały na używaniu w parametrach pikseli tylko typów Dp i typów podstawowych (I086f4).

  • Zastąpiono użycie klasy Px w różnych klasach tworzenia w ramach dużej refaktoryzacji, która polegała wyłącznie na używaniu w parametrach pikseli tylko typów Dp i typów podstawowych (Id3434).

  • Zastąpiono użycie klasy Px w różnych klasach tworzenia w ramach dużej refaktoryzacji polegającej na używaniu w parametrach pikseli tylko typów Dp i typów podstawowych (I97a5a).

  • Naprawiono brak wywoływania onClick w przypadku elementu DropdonMenuItems. (I3998b, b/157673259)

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

  • Tag TestTag został wycofany. Użyj w zamian metody Modifier.testTag. (If5110, b/157173105)

  • Kursor pola tekstowego ma migającą animację (Id10a7)

  • Zastąpiono użycie klasy Px w różnych klasach tworzenia w ramach dużej refaktoryzacji polegającej na używaniu w parametrach pikseli tylko typów Dp i typów podstawowych (I19d02).

  • W aplikacji Vertical Scroller dostępna jest teraz funkcja Column. Aplikacja Poziomy przewijania teraz udostępnia funkcję Wiersz bezpośrednio w oknie. (IECA5d, b/157020670)

  • Zastąpiono użycie klasy Px w różnych klasach tworzenia w ramach dużej refaktoryzacji, która polegała wyłącznie na używaniu w parametrach pikseli tylko typów Dp i typów podstawowych (Iede0b).

  • Wycofanie metody Modifier.semantics pozwala na użycie komponentów wysokiego poziomu. (I4cfdc)

  • Interfejs API modyfikatorów DrawLayer został zmieniony: zmieniono nazwę outline shape na „ shape” i ma wartość domyślną Rectangleangle, a teraz nie ma wartości „null”; zmieniono nazwę clipToOutline na klip; plik clipToOutline został usunięty, ponieważ jest taki sam jak w przypadku klipu == true z zasadą Rectangleangle (I7ef11, b/155075735)

  • Zaktualizowano interfejsy API tworzenia wyższego poziomu, które udostępniają obiekt Canvas do wyświetlania obiektu CanvasScope. Dzięki temu konsumenci nie muszą utrzymywać własnych obiektów Paint. Klienci, którzy nadal potrzebują dostępu do obiektu Canvas, mogą skorzystać z metody rozszerzenia dropCanvas, która powoduje wywołanie zwrotne do poleceń rysowania na podstawie obiektu Canvas. (I80afd).

  • Funkcja kompozycyjna wyrównania AdjustLineOffset została wycofana. Zamiast niej użyj modyfikatorarelativePaddingFrom(). Funkcja kompozycyjna CenterWyrównajmentLine została usunięta. (I60107).

  • Zmieniono końcowy interfejs API WithConstraints lambda. Teraz zamiast 2 parametrów ma zakres odbiornika, który oprócz ograniczeń oraz właściwości layoutDirection zapewnia właściwości minWidth, maxWidth, minHeight i maxHeight w Dp (I91b9a, b/149979702)

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

  • Element FocusManagerAmbient został usunięty. Aby uzyskać ostrość, użyj FocusModifier.requestFocus. (IC4826).

  • Utworzono interfejs CanvasScope API, który opakowuje obiekt Canvas, aby udostępniać bezstanową, deklaratywnej powierzchni interfejsu API do rysowania. Przekształcenia są zawarte w oddzielnym zakresie odbiornika, a informacje o rozmiarze są również ograniczone do odpowiednich granic wektora. Nie wymaga od konsumenta zachowania własnego obiektu stanu renderowania umożliwiającego konfigurowanie operacji rysowania.

    Dodaliśmy CanvasScopeSample oraz zaktualizowaliśmy aplikację w wersji demonstracyjnej, aby dodać demonstrację grafiki deklaratywnej (Ifd86d).

  • Dodawanie dostosowania koloru kursora w polu tekstowym (I6e33f)

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

  • Nazwa UkładModifier2 została zmieniona na LayoutModifier. (Id29f3).

  • Usunięto wycofany interfejs LayoutModifier. (I2a9d6)

  • Zastąpiliśmy parametr CoreTextField/TextFieldfocusIdentifier obiektem FocusNode, by zintegrować go z podsystemem zaznaczenia. (I7Ea48).

  • Wewnętrzne funkcje pomiarowe w usługach Layout i LayoutModifier2 mają teraz odbiornik IntrinsicMeasureScope, który udostępnia wewnętrzny interfejs API zapytań z niejawnie rozpowszechnianym kierunkiem układu. (Id9945).

  • Dodano nową funkcję Modifier.zIndex(), aby kontrolować kolejność rysowania elementów podrzędnych w tym samym układzie nadrzędnym. Właściwość wysokości w DrawLayerModifier została zmieniona na shadowElevation i nie kontroluje już kolejności rysowania. Zmieniła się kolejność parametrów w przypadku DrawShadow. Wysokość jest teraz pierwszym parametrem, a kształt to drugi, z domyślnym kształtem prostokąta. (I20150, b/152417501)

  • Rectangleangle zostały przeniesione z androidx.ui.foundation.shape.* do androidx.ui.graphics.* (Ia74d5, b/154507984)

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

  • Dodano parametry grawitacji pionowego i poziomego do wierszy oraz kolumn. (I7dc5a)

  • Zaktualizowaliśmy właściwości wrapContentWidth i wrapContentHeight tak, aby można było korzystać z wyrównania w pionie lub poziomie, a nie wyrównania w poziomie. Modyfikator grawitacji został zaktualizowany, aby przyjmował wyrównanie w pionie lub poziomie. Wiersze, kolumny i stos zostały zaktualizowane, aby obsługiwały niestandardowe ciągłe wyrównania. (IB0728)

  • Stworzyliśmy interfejs PixelMap API do obsługi zapytania o informacje o pikselu z ImageAsset. (I69ad6).

  • Usuwa element ProvideContentColor. Zamiast tego używaj interfejsu ContentColorAmbient bezpośrednio w Providers (Iee942).

  • Moduł ui-text-compose zmienił nazwę na ui-text. ui-text zawiera teraz elementy kompozycyjne CoreText i CoreTextField (Ib7d47)

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

  • Przeniesiono elementy kompozycyjne ui-framework/CoreText i CoreTextField do sekcji ui-text-compose. Możesz dodać do projektu plik ui-text-compose. (I32042)

  • Ulepszenie interfejsu API DrawModifier:

    • Zmieniono zakres odbiorcy dla metody Draw() ContentDrawScope
    • Usunięto wszystkie parametry z dresz()
    • Interfejs DrawScope jest taki sam jak poprzednia wersja CanvasScope
    • ContentDrawScope ma metodę DrawContent() (Ibaced, b/152919067)
  • runOnIdleCompose i runOnUiThread to teraz funkcje globalne, a nie metody w ComposeTestRule. (Icbe8f).

  • [Mutable]Operatory delegowania właściwości stanu zostały przeniesione do rozszerzeń, aby obsługiwać optymalizację przekazywania właściwości Kotlin 1.4. Rozmówcy muszą dodać importowanie, aby dalej używać by state { ... } lub by mutableStateOf(...). (I5312C)

  • W przypadku współrzędnych układu dodano elementy positionInParent i boundsInParent. (Icacdd, b/152735784)

  • Interfejs ColoredRect został wycofany. Używaj zamiast niego Box(Modifier.preferredSize(szerokość, wysokość).drawBackground(color)). (I499fa, b/152753731)

  • Zmieniono nazwę elementu LayoutResult na MeasureResult. (Id8c68).

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

  • Zastąpienie operatora modyfikatora plus funkcjami rozszerzeń fabrycznych (I225e4).

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

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

  • Wycofana funkcja kompozycyjna w centrum. Należy go zastąpić modyfikatorem LayoutSize.Fill + Layoutalizator.Center lub jednym z elementów kompozycyjnych Box albo Stack z odpowiednimi modyfikatorami (Idf5e0).

  • Dodaliśmy interfejs VectorPainter API, aby zastąpić dotychczasowy interfejs subcomposition API dla grafiki wektorowej. Wynikem składni podrzędnej jest obiekt VectorPainter, a nie DrawModifier. Wycofaliśmy wcześniejsze funkcje kompozycyjne DrawVector i zastąpiliśmy VectorPainter.

    Zmieniono nazwę interfejsu Image(Painter) API na PaintBox(Painter) Utworzono wektorową kompozycję kompozycyjną, która zachowuje się jak obiekt kompozycyjny Obraz, z wyjątkiem obiektu VectorAsset zamiast obiektu ImageAsset (I9af9a, b/149030271)

  • Zmieniono nazwę Układ Elastyczny na Układ Weight. Zmieniono nazwę precyzyjnego parametru na wypełnienie. (If4738).

  • Usunięto funkcję RepaintBoundary na rzecz DrawLayerModifier (I00aa4).

  • Metoda DrawVector zmieniła się ze zwykłej funkcji kompozycyjnej na zwracanie modyfikatora pullVector(), który spowoduje narysowanie wektora jako tła w układzie. (I7B8E0)

  • Funkcja kompozycjonalna przezroczystości została zastąpiona modyfikatorem DrOpacity. (I5fb62)

  • Zastąp funkcję kompozycyjną Clip modyfikatorem drawClip(). DrawClipToBounds to wygodny modyfikator do użycia, gdy chcesz przyciąć do granic warstwy tylko w formacie prostokątnym. (If28eb).

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

  • Dodano LayerModifier – modyfikator, który umożliwia dodanie RenderNode do układu. Umożliwia ustawienie przycinania, przezroczystości, obrotu, skalowania i cieni. Spowoduje to zastąpienie RepaintBoundary. (I7100d, b/150774014)

  • Aplikacja androidx.compose.ViewComposer została przeniesiona do androidx.ui.node.UiComposer. androidx.compose.Emittable została usunięta. W przypadku węzła KomponentNode to niepotrzebne narzędzie. Aplikacja androidx.compose.ViewAdapters została usunięta. Nie są już one obsługiwanym przypadkiem użycia. Interfejs Compose.composeInto został wycofany. Użyj interfejsu setContent lub setViewContent. Metoda Compose.disposeComposition została wycofana. Użyj metody dispose na obiekcie Composition zwróconym przez setContent. Nazwa androidx.compose.Compose.subcomposeInto została przeniesiona do androidx.ui.core.subcomposeInto. Nazwa węzła #emitInsertAt została zmieniona na KomponentNode

  • Utworzono obraz, który oprócz rysowania zasobu graficznego można umieścić na ekranie do obsługi rozmiaru/układu. Ta funkcja kompozycyjna obsługuje też rysowanie dowolnych instancji Painter z uwzględnieniem ich rozmiaru wewnętrznego, a także obsługi określonego stałego lub minimalnego rozmiaru (Ibcc8f)

  • Wycofana funkcja opakowania. Można ją zastąpić modyfikatorem LayoutWyrównaj lub funkcją kompozycyjną Stos (Ib237f).

  • WithConstraints uzyskała parametr LayoutDirection (I6d6f7)

  • Wykonano propagację kierunku układu z węzła nadrzędnego do elementów podrzędnych. Dodano modyfikator kierunku układu. (I3D955)

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

  • Funkcja kompozycyjna DrawStatus została usunięta. Użyj modyfikatora DrawBackground. (I7ceb2).

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

  • Dodaliśmy AdapterList – komponent listy przewijanej, który tylko tworzy i rozkłada widoczne elementy. Znane obecnie problemy polegają na tym, że tryb ten działa tylko pionowo i nie obsługuje w pełni wszystkich przypadków zmian w elementach podrzędnych. (IB351b)

  • Flaga ComposeFlags.COMPOSER_PARAM została zmieniona na true, co zmieni strategię generowania kodu dla wtyczki do tworzenia wiadomości. Ogólnie powoduje to generowanie funkcji @Composable z dodatkowym parametrem syntetycznym, który jest przekazywany do kolejnych wywołań @Composable w celu prawidłowego zarządzania wykonaniem w środowisku wykonawczym. Jest to istotna zmiana polegająca na nieprawidłowym działaniu plików binarnych, jednak powinna ona zachować zgodność na poziomie źródła we wszystkich objętych sankcjami użycia funkcji tworzenia wiadomości. (I7971C)

  • Dodano komponent Canvas. Ten element kompozycyjny zajmuje określony rozmiar (podany przez użytkownika) i umożliwia rysowanie za pomocą CanvasScope (I0d622)

  • Interfejsy Density i DensityScope zostały połączone w jeden interfejs. Zamiast trybu nieaktywnego() możesz teraz używać obiektu DensityAmbient.current. Zamiast opcji Gęstość(gęstość) tylko za pomocą(gęstości) (I11cb1)

  • Zmieniliśmy parametry LayoutCoordinates, by móc użyć funkcji providedWyrównajmentLines, a nie Mapa, a funkcja LayoutCoordinates wdrożyła operator get() zamiast pobierać wartość. Ułatwia to modyfikatorom modyfikowanie jednej lub większej liczby wartości zestawu bez tworzenia nowej kolekcji dla każdego modyfikatora. (I0245a)

  • Przewijacze wykazują teraz natywne działanie przesuwania w Androidzie. (I922af, b/147493715)

  • Ulepszenia interfejsu API ograniczeń (I0fd15)