Wear Compose Material 3

  
Tworzenie aplikacji Jetpack Compose na urządzenia z Wear OS przez zapewnienie funkcji obsługujących różne rozmiary urządzeń i gesty nawigacyjne za pomocą systemu projektowania Material 3 Expressive.
Ostatnia aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja Beta Wersja alfa
4 czerwca 2025 r. - - 1.5.0-beta03 -

Deklarowanie zależności

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

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

Odlotowe

dependencies {
    implementation "androidx.wear.compose:compose-foundation:1.5.0-beta03"

    // For Wear Material Design UX guidelines and specifications
    implementation "androidx.wear.compose:compose-material3:1.5.0-beta03"

    // For integration between Wear Compose and Androidx Navigation libraries
    implementation "androidx.wear.compose:compose-navigation:1.5.0-beta03"

    // For Wear preview annotations
    implementation("androidx.wear.compose:compose-ui-tooling:1.5.0-beta03")
    
    // NOTE: DO NOT INCLUDE dependencies on androidx.wear.compose:compose-material
    // or androidx.compose.material:material.
    // androidx.wear.compose:compose-material3 is designed as a replacement,
    // not an addition, to both of these other libraries.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material3, please raise a bug to let us know.
}

Kotlin

dependencies {
    implementation("androidx.wear.compose:compose-foundation:1.5.0-beta03")

    // For Wear Material Design UX guidelines and specifications
    implementation("androidx.wear.compose:compose-material3:1.5.0-beta03")

    // For integration between Wear Compose and Androidx Navigation libraries
    implementation("androidx.wear.compose:compose-navigation:1.5.0-beta03")
    
    // For Wear preview annotations
    implementation("androidx.wear.compose:compose-ui-tooling:1.5.0-beta03")

    // NOTE: DO NOT INCLUDE dependencies on androidx.wear.compose:compose-material
    // or androidx.compose.material:material.
    // androidx.wear.compose:compose-material3 is designed as a replacement,
    // not an addition, to both of these other libraries.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material3, please raise a bug to let us know.
}

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

Opinia

Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk z gwiazdką.

Tworzenie nowego zgłoszenia

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

Wear Compose Material3 w wersji 1.5

Wersja 1.5.0-beta03

4 czerwca 2025 r.

Element androidx.wear.compose:compose-*:1.5.0-beta03 został zwolniony. Wersja 1.5.0-beta03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • OpenOnPhoneDialog odczytuje teraz tylko tekst wiadomości w ramach funkcji TalkBack, pomijając semantykę ikony. Funkcja OpenOnPhoneDialogDefaults została zaktualizowana w celu usunięcia parametrów iconContentDescriptioncontentDescription z funkcji icon(). Ponadto komponent ConfirmationDialogDefaults ma teraz parametry modyfikatorów w komponentach SuccessIconFailureIcon. (Id2ae2)

Poprawki błędów

  • Zmieniliśmy kolejność, w jakiej stosujemy efekt parametrów SurfaceTransformation. Wcześniej przekształcenia stosowane do komponentów Wear Material3 były wykonywane w ten sposób: malowanie tła, przekształcenie kontenera, przekształcenie zawartości. Pierwsze 2 elementy są odwrócone, a między nimi stosujemy dowolny przekazany modyfikator, więc podlegają one przekształceniom kontenera. Rozwiązanie to dotyczy takich przypadków jak użycie efektu migotania obiektu zastępczego z elementami w ramach TLC za pomocą parametru transformacji. (I786cf)
  • RevealState.Saver został dodany, aby służyć do przywracania stanu SwipeToReveal podczas ponownego tworzenia aktywności lub procesu. Funkcja rememberRevealState domyślnie używa teraz tej funkcji oszczędzania. (Ie0ecb)
  • Domyślne przyciski działań głównych i dodatkowych SwipeToReveal powinny mieć wartość ButtonDefault.Height (naprawiono błąd, w którym przyciski zajmowały maksymalną wysokość w przypadku wyższych przycisków). (Ibfba1)
  • Zmieniliśmy SwipeToReveal, aby po wykonaniu gestu przesunięcia palcem w prawo zresetować ostatni komponent, z którym nastąpiła interakcja. (Ia8450)
  • SwipeToReveal zostało zmienione, aby przyjmowało stan Revealing, gdy końcowa pozycja przesunięcia znajduje się między ujawniającymi się i ujawnionymi kotwicami oraz jest bliższa kotwi ujawniającej się. (If4458)
  • Teraz zawartość ButtonGroup jest prawidłowo odwrócona w układzie RTL (Ib378d)
  • AnimatedText obsługuje teraz kierunek tekstu RTL (I4533c).
  • TransformingLazyColumn poprawnie zmienia rozmiar elementów po usunięciu dolnego elementu (Idacab)
  • TransformingLazyColumn wykonuje teraz tylko 1 przebieg pomiaru, co zwiększa wydajność dzięki skróceniu czasu trwania klatek. (I501a1)

Wersja 1.5.0-beta02

20 maja 2025 r.

Element androidx.wear.compose:compose-*:1.5.0-beta02 został zwolniony. Wersja 1.5.0-beta02 zawiera te commity.

Poprawki błędów

  • Zaktualizowano profile bazowe bibliotek foundation, material i material3. (I53f06)
  • Naprawiliśmy błąd w TransformingLazyColumn, który powodował zmianę rozmiaru elementów po usunięciu dolnego elementu. (Idacab)
  • Usunęliśmy błąd związany z TransformingLazyColumn, gdy lista zatrzymywała się na górze lub na dole. (I49d00)
  • OpenOnPhoneDialog w TalkBack powinien odczytywać tekst wygięty w poziomie, a nie opis zawartości ikony. (I4efe8)
  • Naprawiliśmy błąd w funkcji SwipeToReveal, który powodował niewłaściwe raportowanie kotwicy w funkcji RevealState.currentValue, gdy parametr hasPartiallyRevealedState ma wartość false. (I9c7cf)
  • Przyciski cofnij w SwipeToReveal są teraz domyślnie ButtonDefaults.Height. (I1f6c8)
  • BasicSwipeToDismissBox została poprawiona dzięki wyeliminowaniu korzystania z Canvas do rysowania zasłon. (I68f2c)
  • Naprawienie błędu ułatwień dostępu w suwaku, w którym ogłoszony procent nie pasował do wartości po aktualizacjach (I91146)
  • Naprawiono błąd implementacji placeholderShimmer. (Iee39b
  • Skuteczność TransformingLazyColumn została zwiększona dzięki optymalizacji obliczeń ScrollProgress o 30%. (I4c4cb)

Wersja 1.5.0-beta01

7 maja 2025 r.

Element androidx.wear.compose:compose-*:1.5.0-beta01 został zwolniony. Wersja 1.5.0-beta01 zawiera te komity.

Wersja 1.5.0-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest kompletna pod względem funkcji, a interfejs API jest zablokowany (z wyjątkiem wersji oznaczonych jako eksperymentalne).

Wear Compose 1.5.0-beta01 zawiera bibliotekę Wear Compose Material3, która obsługuje nowy system projektowania interfejsu użytkownika o nazwie Material 3 Expressive. Zalecamy przejście z Material na Material 3, aby wprowadzić nowy projekt wizualny w aplikacjach i korzystać z nowych komponentów w ten sposób:

  • MaterialTheme, aby skorzystać z aktualizowanych i rozszerzonych schematów kolorów, typografii i kształtów, które nadadzą Twoim projektom głębi i różnorodności.
  • Dynamiczne motywy kolorystyczne, które automatycznie generują schemat kolorów aplikacji dopasowany do kolorów tarczy zegarka.
  • Nowe komponenty automatycznie dostosowują się do większych rozmiarów ekranu
  • Przekształcanie kształtu – komponenty okrągłych przycisków, takie jak IconButton, TextButton, IconToggleButtonTextToggleButton, obsługują warianty, które animują się po naciśnięciu lub zaznaczeniu.
  • EdgeButton – nowy przycisk z zaokrąglonymi rogami o specjalnym kształcie, który pasuje do dolnej części ekranu.
  • szkielety – wprowadzenie AppScaffoldScreenScaffold w celu rozplanowania struktury ekranu i zsynchronizowania animacji ScrollIndicatorTimeText;
  • Przyciski – obsługiwane są liczne przyciski w kształcie stadionu z elastycznymi kontenerami jednoslotowymi i wariantami wieloslotowymi dla przycisków z ikonami i etykietami. CheckboxButtonSwitchButton są dostępne, gdy potrzebne są przełączniki, a RadioButton to przycisk wyboru (dostępne są też opcje „Split” przełączników i przycisków wyboru).
  • ButtonGroup – implementuje wyrazistą grupę przycisków w wierszu, które zmieniają kształt po dotknięciu.
  • AlertDialog odmiany obsługują przyciski OK/Anuluj lub EdgeButton.
  • ConfirmationDialog służy do wyświetlania komunikatu z czasem oczekiwania. Obsługuje specjalne animacje dla wersji na telefony, które wskazują na powodzenie, niepowodzenie lub otwarcie.
  • Selektory – obsługiwane są warianty TimePickerDatePicker, a także komponenty Picker i PickerGroup do tworzenia własnych ekranów selektora.
  • ProgressIndicators – obsługiwane są wskaźniki postępu okrągłe i liniowe (element CircularProgressIndicator ma warianty segmentowane i nieokreślone).
  • Karty – dostępnych jest kilka wariantów kart, w tym TitleCard, który oferuje określone układy kart z polami na tytuł, czas, napisy lub treść. TitleCard może też mieć tło z obrazem, aby wzmocnić znaczenie informacji na karcie.
  • Przewijanie – komponenty HorizontalPagerScaffold, VerticalPagerScaffoldAnimatedPage koordynują animacje HorizontalPageIndicatorVerticalPagerIndicator. Komponenty HorizontalPagerVerticalPager są dostępne w bibliotece Compose Foundation na Wear.
  • Zastępniki – rysują one szkieletowy kształt na komponencie w sytuacjach, gdy nie ma dostępnych treści tymczasowych.
  • Suwaki i suwaki krokowe – zarówno suwaki, jak i suwaki krokowe umożliwiają użytkownikom wybór spośród zakresu wartości. Suwaki są bardziej kompaktowe i można je podzielić na segmenty, a Stepper to komponent pełnoekranowy, który jest zwykle połączony z elementem StepperLevelIndicator.
  • SwipeToReveal – służy do dodawania dodatkowych działań do komponentu po jego przesunięciu z prawa do lewej.

Dodatkowo pakiet Wear Compose Foundation 1.5.0-beta01 zawiera te nowe komponenty:

  • TransformingLazyColumn – lista z lazy load, która przewija się pionowo i obsługuje animacje skalowania i przekształcania
  • Hierarchiczne grupy punktów skupienia uwagi – służą do adnotacji komponentów w aplikacji, aby śledzić aktywną część kompozycji i koordynować punkt skupienia uwagi.
  • Przeglądarki – komponenty HorizontalPagerVerticalPager, oparte na komponentach Compose Foundation z ulepszeniami dotyczącymi Wear, które zwiększają wydajność i spełniają wytyczne dotyczące Wear OS.

Zmiany w interfejsie API

  • Zaktualizowano interfejs API hierarchicznej funkcji Focus – zmieniono nazwę parametru Modifier.hierarchicalFocus na Modifier.hierarchicalFocusGroup i usunięto parametr wywołania zwrotnego. Usunięto też przeciążenie parametru Modifier.hierarchicalFocusRequester z parametrem FocusRequester. Utworzono też nowy parametr CompositionLocal, LocalScreenIsActive, dzięki któremu komponenty mogą informować i sprawdzać, który ekran jest aktywny. (I5ff7c).
  • Wycofany interfejs SwipeToReveal z fundamentów Wear Compose w zamian zastąpiony interfejsami API SwipeToReveal w komponencie Wear Compose Material i Wear Compose Material3. Aby nadal korzystać z interfejsów API, zastąp importowanie interfejsu Wear Foundation SwipeToReveal importowaniem interfejsu Wear Compose Material lub Wear Compose Material3. (Ia147d).
  • Zależność Wear Compose Material3 SwipeToReveal od Foundation została przeniesiona do pakietu material3, np. RevealValue, RevealDirection, RevealActionType, RevealState, rememberRevealState. Deweloperzy powinni zmienić importowanie tych klas i funkcji z androidx.wear.compose.foundation na androidx.wear.compose.material3. (I640e6).
  • Zaktualizowaliśmy interfejs API Wear Compose Material3 SwipeToReveal w następujący sposób: dodaliśmy parametry primaryAction, onFullSwipe, secondaryAction, undoPrimaryAction, undoSecondaryActionhasPartiallyRevealedState do kompozytu SwipeToReveal; usunęliśmy z komponentu RevealState możliwość dostosowywania elementów positionalThresholdanimationSpec; usunęliśmy z komponentu RevealState parametry lastActionType, revealThreshold i szerokość; zmieniliśmy konstruktor RevealState tak, aby przyjmował element RevealDirection zamiast elementów kotwiujących; usunęliśmy funkcje createRevealAnchors, kotwy i bidirectionalAnchors; funkcje SwipeToRevealScope primaryAction, secondaryAction, undoPrimaryActionundoSecondaryAction zostały przemianowane na PrimaryActionButton, SecondaryActionButton, UndoActionButton i przekształcone w funkcje kompozytowe; element RevealActionType został oznaczony jako wewnętrzny. (I885d0).
  • Dalsze zmiany interfejsu SwipeToReveal: zmieniliśmy nazwę onFullSwipe na onSwipePrimaryAction; zmieniliśmy nazwę SwipeToRevealNonAnchoredSample, aby wskazywała użycie parametru hasPartiallyRevealedState; usunęliśmy actionButtonHeight, ponieważ domyślna wysokość przycisku jest domyślna, a większą wysokość można ustawić za pomocą modyfikatora; usunęliśmy SmallActionButtonHeightSwipeToRevealDefaults; parametr value w konstruktorach RevealValueRevealDirection jest teraz prywatny. (I465ce).

Poprawki błędów

  • Poprawiono obsługę ScreenScaffold w EdgeButton, tak aby po usunięciu elementu TransformingLazyColumn element EdgeButton był animowany na swoje miejsce. (I6d366).
  • Zaktualizowaliśmy zależności Wear Compose od bibliotek Compose do wersji 1.8.0. (I2ef3f).
  • Zaktualizowano ruch nieokreślony CircularProgressIndicator, aby nie cofał się tymczasowo. (Ieddb1).
  • Rozwiązanie problemu z interfejsem SwipeDismissableNavHost – po przesunięciu palcem w lewo nie przełączał się fokus, co powodowało niepowodzenie wprowadzania za pomocą pokrętła (dotyczy to interfejsu API 36+, który używa przewidywanego cofnięcia). (Ieddb1).
  • Poprawiona dokumentacja interfejsu Hierarchical Focus API (Idf2ff).
  • Zaktualizowaliśmy dokumentację dotyczącą przycisków i kart, aby wyjaśnić, jak containerPainterdisabledContainerPainter zastępują containerColordisabledContainerColor (I4a453).
  • W poprzedniej wersji cofnęliśmy zmianę w komponencie TimeText, która przeniosła BroadcastReceiver do wątku roboczego, ponieważ powodowała problemy w przypadku aplikacji zarządzających własnymi wątkami podczas nawigacji. (I34d02).
  • Zaktualizowaliśmy przykłady selektora, aby usunąć niepotrzebne wywołania funkcji remember i zamiast tego używać w Pickerze funkcji rememberUpdatedState, aby zapamiętać najnowszą funkcję lambda contentDescription. (Icb5b1).
  • Zaktualizowano style tekstu w TimePickerDatePicker, aby zmiany czcionki nie powodowały już obcinania tekstu. (I26194).
  • Domyślne wyrównanie tekstu w elementach ListHeaderListSubHeader to odpowiednio wyrównanie do środka i wyrównanie do lewej. (I78339).
  • Zaktualizowaliśmy przykłady i demonstracje komponentu Foundation oraz komponentu Material Swipe to Reveal, aby uwzględnić w nich niestandardowe działania ułatwień dostępu (niestandardowe działania muszą zostać dodane jako semantyka w treści, a nie w samym komponencie SwipeToReveal). (Ie92a3).
  • Zaktualizowano domyślny MaxLines ustawiony na treści EdgeButton zgodnie z ich rozmiarem – teraz jest to 1 dla bardzo małych, 2 dla małych i średnich oraz 3 dla dużych. (Ie35f6).
  • Uproszczone LocalReduceMotion, aby zwiększyć wydajność. Dzięki temu obserwator jest rejestrowany tylko raz. (Ib1979).
  • Zmniejszono liczbę ponownych rysowań w ScrollIndicator, aby poprawić wydajność. (Ia7a67).
  • Rozwiązaliśmy błąd w TransformingLazyColumn, który powodował, że górny widoczny element na liście nie był prawidłowo skalowany, gdy przycisk krawędzi osiągnął pełną wysokość. (I30580).

Wear Compose Material3 w wersji 1.0

Wersja 1.0.0-alpha37

23 kwietnia 2025 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha37 został zwolniony. Wersja 1.0.0-alpha37 zawiera te komity.

Zmiany w interfejsie API

  • Usunięto scrollTransform z publicznego interfejsu API. Jeśli chcesz uzyskać te same funkcje, użyj kombinacji modyfikatorów transformedHeight i graphicsLayer. (Ie181d)
  • Zastąpiono kompozytyle ImageButtonImageCard odpowiednio przez przeciążenia ButtonCard/TitleCard. Zmieniono nazwę imageButtonColors na buttonWithContainerPainterColors, a imageCardColors na cardWithContainerPainterColors. Dodano publiczne ButtonDefaults.scrimBrush i CardDefaults.scrimBrush. Zmieniono nazwy przycisków imageBackgroundGradientStartColorimageBackgroundGradientEndColor na scrimGradientStartColorscrimGradientEndColor. Nazwa CardDefaults.ImageContentPadding została zmieniona na CardDefaults.CardWithContainerPainterContentPadding (I7b8b6)
  • Funkcje PickerPickerGroup przyjmują teraz funkcję contentDescription jako funkcję lambda, aby uniknąć niepotrzebnych ponownych składań. (I002dd)

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że nieokreślony CircularProgressIndicator kołysał się podczas animacji, jeśli szerokość nie była równa wysokości. (I76bfe)
  • Rozwiązaliśmy problem z rozmieszczeniem przycisków krawędzi w nieprawidłowym rozmiarze. Zapobiega teraz aktualizowaniu układu przycisku krawędzi, gdy wysokość jest NaN. (I32b93)
  • Zwiększono maksymalny kąt skanowania w OpenOnPhoneDialog, aby domyślny tekst „Sprawdź telefon” nie był przycinany przy największym rozmiarze czcionki. (I90af9)

Wersja 1.0.0-alpha36

9 kwietnia 2025 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha36 został zwolniony. Wersja 1.0.0-alpha36 zawiera te komisy.

Zmiany w interfejsie API

  • Zawartość komórki ButtonDefaults.imageBackgroundButtonColors została zastąpiona przez komórki ImageButton, ButtonDefaults.imageButtonColors, ButtonDefaults.containerPainterButtonDefaults.disabledContainerPainter. I podobne zmiany w przypadku kart. Malarze zostali usunięci z funkcji ButtonColorsCardColors. (I8c6a1)
  • Zaktualizowano obiekty zastępcze, aby uprościć interfejs API. Udostępniamy teraz 2 modyfikatory: Modifier.placeholderShimmer, który pozwala zastosować efekt migotania na poziomie komponentu, oraz Modifier.placeholder, który pozwala zastosować maskę na wierzchu wyładowanych treści (Iaee7a).

Poprawki błędów

  • Zintegrowanie przewijania w ScrollIndicator. (Icfb7f)
  • Rozwiązanie problemu z pustymi tłami i brakiem okienek podczas uruchamiania okienek Material3. (Ice597)
  • Rozwiązaliśmy problemy w elementach FadingExpandingLabel, gdy tekst zajmuje kilka wierszy. (I04eb7)
  • Zaktualizowano odstęp między etykietami głównymi i dodatkowymi na przyciskach. (I99b7b)
  • Wartość ArcLarge została zmniejszona z 20sp do 18sp, a odstępy między literami w elementach ArcLargeArcSmall zostały zaktualizowane. ConfirmationDialog/OpenOnPhoneDialog używają teraz domyślnej wartości ArcLarge zamiast zastępować ją wartością 18sp. (Id39a8)

Aktualizacje zależności

  • Biblioteka ta jest teraz kierowana na poziom języka Kotlin 2.0 i wymaga pakietu KGP 2.0.0 lub nowszego. (Idb6b5)

Wersja 1.0.0-alpha35

26 marca 2025 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha35 został zwolniony. Wersja 1.0.0-alpha35 zawiera te komity.

Zmiany w interfejsie API

  • AlertDialog Górny margines jest teraz domyślnie zmniejszany, gdy jest podana ikona – pozwala to lepiej wykorzystać dostępny rozmiar ekranu. (Ief06c)
  • Nazwa PagerScaffoldDefaults.FadeOutAnimation została zmieniona na PagerScaffoldDefaults.FadeOutAnimationSpec. Parametr strony AnimatedPage został przemianowany na pageIndex. (I701f2)
  • Zaktualizowano nazwy TransformingLazyColumn SurfaceTransformationapplyTransformation podzielono na applyContainerTransformation i applyContentTransformation, a createBackgroundPainter zmieniono na createContainerPainter. Zmiany nazw TransformationSpecResponsiveTransformationSpec. (I1c534)
  • Nazwa AppScaffold backgroundColor została zmieniona na containerColor. (I4e63f)

Poprawki błędów

  • Rozwiązaliśmy problem w FadingExpandingLabel, który powodował, że tekst nie zawsze był prawidłowo rozwijany. (I0e773)
  • Wartość ArcLarge została zmniejszona z 20 sp do 18 sp, a odstępy między literami w elementach ArcLargeArcSmall zostały zaktualizowane. ConfirmationDialog/OpenOnPhoneDialog teraz używa domyślnej wartości ArcLarge zamiast zastępować ją wartością 18 sp. (Id39a8)
  • Zaktualizowaliśmy animację nagłówka w wersjach DatePickerTimePicker, tak aby animacja zanikania i pojawiania się działała jak jedna animacja sprężynowa. (I68963)
  • Zoptymalizowano PagerScaffold, unikając odczytu currentPageOffsetFraction w komponencie AnimatedPage. (I433ef)
  • Wszystkie typy skal zostały zaktualizowane, aby domyślnie zawierały proporcjonalne cyfry, ponieważ jest to najczęstszy przypadek użycia, a ustawienie domyślnego formatu tabelarycznego powodowało zbyt duże odstępy między niektórymi parami cyfr. TimePicker i DatePicker nadal stosują FontFeatureSetting=tnum do cyfr w tabelach. (I88929)
  • Poprawiono początkowy fokus RSB dla TimePickerDatePicker. (I1c773)
  • Zaktualizowano domyślny tekst na stronie OpenOnPhoneDialog na „Sprawdź telefon”. (I00a3f)
  • Zaktualizowano wartości wag dla ArcLarge i ArcMedium z 600 na 599, aby rozwiązać problem, w którym waga 600 była traktowana jako pogrubienie (I2a51d).
  • Zaktualizuj SwipeToRevealdopełnienie między treścią a przyciskami akcji, a także dopełnienie między ikoną a tekstem przycisków akcji. (Ic46cb)

Wersja 1.0.0-alpha34

12 marca 2025 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha34 został zwolniony. Wersja 1.0.0-alpha34 zawiera te komity.

Zmiany w interfejsie API

  • PagerScaffold nie emituje już komponentu Pager – zamiast tego musisz go podać za pomocą kompozytu content. AnimatedPagesnapWithSpringFlingBehaviour są teraz publiczne i można ich używać razem z Wear Foundation Pager, aby uzyskać poprzednie zachowanie M3 PagerScaffold. (zobacz zaktualizowane przykłady). (Ia4724)
  • Zaktualizowano klasę PagerState, usuwając z niej klasę podstawową Compose Foundation PagerState i dodając właściwości currentPage, currentPageOffsetFraction oraz pageCount. Zaktualizowaliśmy interfejs GestureInclusion, zmieniając nazwę metody na ignoreGestureStart. (I4ae07)
  • Parametry kąta LevelIndicator są teraz opatrzone adnotacją FloatRange(0, 360) (I7e636)
  • Dodaliśmy opcję CurvedModifier.clearAndSetSemantics, aby umożliwić wyłączenie wygiętej semantyki. CurvedText nadal domyślnie ustawia opis treści jako tekst, ale timeTextCurvedText i timeTextSeparator nie ogłaszają już treści. (I4b568)
  • Dodano parametry tła i domyślnego koloru treści do AppScaffold. (I56652)
  • Domyślne obsługiwanie gestów przesuwania przez HorizontalPager zostało przemianowane na PagerDefaults.gestureInclusion. Domyślnie gesty przesuwania są ignorowane tylko wtedy, gdy zaczynają się od lewej krawędzi pierwszej strony i tylko wtedy, gdy Talkback jest wyłączony. W innych przypadkach domyślnie gesty przesuwania nie są ignorowane przez przeglądarkę, więc nie są dostępne dla obsługi gestów przesuwania w celu zamknięcia. (Iee486)
  • Dodaliśmy parametr SurfaceTransformation do komponentów przycisku, karty i nagłówka listy, aby można było stosować różne przekształcenia tła i treści podczas używania ich w kontenerach, które zmieniają wygląd elementów w zależności od ich pozycji, np. TransformingLazyColumn. (Iabe3f)
  • Zaktualizowaliśmy właściwości „public const val” w interfejsie API Wear Compose Material3 na „public val”, aby uniknąć wstawiania wartości. (Ib0f32)
  • Dodano obsługę strefy przesunięcia palcem po krawędzi w funkcji SwipeToReveal. Domyślne działanie przeglądarki Foundation SwipeToReveal polega teraz na niedopuszczaniu do przesuwania, gdy gest rozpoczyna się od krawędzi. Domyślne zachowanie Material3 SwipeToReveal’ polega teraz na niedopuszczaniu do przesuwania, gdy gest rozpoczyna się od krawędzi, gdy SwipeDirection jest ustawiony na jeden kierunek. (I32ef0)
  • Dodano komponent FadingExpandingLabel, który umożliwia stopniowe pojawianie się tekstu w ramach animacji. (Ic60fa)
  • TransformingLazyColumn używa teraz domyślnie pustego contentPadding zamiast umieszczania pierwszych i ostatnich elementów na środku. (I77ab7)
  • Usunięto komponent SwipeToReveal rememberRevealState z biblioteki Material3 na Wear. (I8c0e0)

Poprawki błędów

  • Biblioteki Wear Compose zostały zaktualizowane do kompilatora Kotlin 2.0. (I2de79)
  • Z Material3 usunięto obsługę nieokrągłych wartości ScrollIndicatorPageIndicator. Obsługa kwadratowego ekranu nie jest już wymagana na Wear OS. Więcej informacji znajdziesz w przewodniku Pierwsze kroki. (I9a852)
  • Element CurvedTextStyle użyty w elementach ConfirmationDialogDefaultsOpenOnPhoneDialogDefaults został zaktualizowany, aby używać czcionki ArcLarge o rozmiarze 18sp i odstępach między literami 1.8sp. (Ic9ced)
  • Elementy Card, ListHeader, RadioButton, CheckboxButtonSwitchButton nie ograniczają już domyślnie wysokości swoich zawartości. W razie potrzeby użyj opcji Modifier.height(IntrinsicSize.Min), aby przywrócić poprzedni sposób działania. (I80bb8)
  • Zaktualizowaliśmy domyślne kolory TimeTextScrollIndicator, aby zawierały więcej odcieni szarości, ponieważ używanie koloru OnBackground (białego) było zbyt rzucające się w oczy w porównaniu z innymi elementami na ekranie, takimi jak tytuły. (I8b36f)
  • Skróciliśmy limit czasu animacji elementów TimeTextScrollIndicator w składnikach szablonu do 2 sekund. (I52021)
  • Zaktualizowaliśmy animację okna dialogowego, tak aby skala tła okna była zsynchronizowana z przesunięciem w celu zamknięcia. (I925a9)
  • Dodaj demonstrację M3 SwipeToReveal z modyfikatorem edgeSwipeToDismiss. (I02b07)
  • Dodaliśmy nagłówek do DatePickerTimePicker w TalkBack, aby poinformować użytkownika, że musi przewinąć, aby ustawić datę lub godzinę. (Id738d)
  • AnimatedText będzie teraz przestrzegać ustawienia redukcji ruchu. (Ib6578)
  • Zoptymalizowano użycie wartości AppScaffold do wyświetlania treści okna dialogowego, aby umożliwić wyświetlanie wielu okien nakładających się na siebie (I1209c).

Wersja 1.0.0-alpha33

26 lutego 2025 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha33 został zwolniony. Wersja 1.0.0-alpha33 zawiera te komisy.

Zmiany w interfejsie API

  • Usunęliśmy parametr label z funkcji primaryActionsecondaryAction w usłudze SwipeToRevealScope. Deweloper powinien bezpośrednio dodać semantykę niestandardowego działania do treści komponentu SwipeToReveal. (Ia67f3)
  • Usunęliśmy prefiks „Button” z funkcji rozmiarów, stylów tekstu i kolorów w elementach IconToggleButtonDefaultsTextToggleButtonDefaults (I5471d).
  • Usunęliśmy eksperymentalną wersję LocalMinimumInteractiveComponentEnforcement (I4ad8a)
  • Funkcję PickerGroupScope DSL zastąpiliśmy komponentem. W związku z tym usunęliśmy metodę pickerGroupItem z elementu PickerGroupScope, a zamiast niej dodaliśmy metodę @Composable PickerGroupItem, która powinna służyć do dodawania selektora do elementu PickerGroup. Zmieniliśmy też typ parametru PickerGroup „content” na @Composable PickerGroupScope.() -> Unit. (Ic6aec)
  • Dodaliśmy przeciążenie LevelIndicator dla wartości ułamkowych i dodaliśmy prefiks Stepper do tych przeciążeń, które zawierają parametr zakresu (są one odpowiednie do użycia z elementem Stepper). (If4234)
  • Dodaliśmy do interfejsu API TransformingLazyColumn TransformationSpec, co umożliwia definiowanie dokładnych przekształceń elementów podczas ich przewijania w treściach. (I21856)
  • Zaktualizowaliśmy komponenty IconButtonShapes, IconToggleButtonShapes, TextButtonShapesTextToggleButtonShapes, aby były zgodne z klasami compose/material3 (I5a081).
  • Dodaliśmy parametr overscrollEffect do albumów ScalingLazyColumn, TransformingLazyColumnScreenScaffold. (I0cee8)
  • Zmieniliśmy nazwę parametru swipeDirection na revealDirection w pliku rememberRevealState. (I7472f)
  • W przypadku Wear Pager zamiast Compose PagerScope jest teraz używana funkcja PagerScope. (I9195b)
  • Usunęliśmy kompozyt LinearProgressIndicatorContent. Używaj bezpośrednio kompozytu LinearProgressIndicator, aby zmiany wartości były domyślnie animowane. (I2c4ad)
  • Usunęliśmy kompozyt CircularProgressIndicatorStatic i dodaliśmy publiczną funkcję DrawScope drawCircularProgressIndicator o tych samych możliwościach. Używaj bezpośrednio komponentu CircularProgressIndicator, aby zmiany były domyślnie animowane, ale jeśli potrzebujesz niestandardowych animacji, utwórz własny komponent na podstawie komponentu drawCircularProgressIndicator. (Ie762f)
  • Zmieniliśmy kolejność parametrów w pliku DrawScope.drawCircularProgressIndicator, aby przesunąć parametr targetProgress wyżej. (I8ab92)
  • Interfejs API OpenOnPhoneDialog został zaktualizowany, aby był bardziej przejrzysty i spójny z innymi dialogami. Nazwa parametru show została zmieniona na visible, a zamiast wartości domyślnej wywołujący musi teraz podać parametr curvedText. (Idec2d)
  • Zmieniliśmy nazwę openOnPhoneCurvedText na openOnPhoneDialogCurvedText (I65bdd).
  • Dodaliśmy ScrollIndicatorColors do ScrollIndicator, aby umożliwić dodawanie kolorów niestandardowych. (I9eb8c)
  • Zezwalaj na konfigurację koloru używanego do rysowania tła za TimeText. (I9f5d9)
  • Zaktualizowano typografię ArcLarge, ArcMediumArcSmall, aby była zgodna z CurvedTextStyle (Iffc41).
  • Usunęliśmy ScreenScaffoldDefaults.contentPaddingWithEdgeButton. (Ia923e)
  • Dodaliśmy errorDim do ColorScheme w przypadku błędów o wysokim priorytecie lub działań awaryjnych, takich jak alerty bezpieczeństwa, nieudane nakładki dialogowe lub przyciski zatrzymania. (I70998)

Poprawki błędów

  • Zablokowaliśmy wersję wear.compose.material3 1.15.0 aplikacji androidx.core.core (I132e9).
  • Zwiększyliśmy wydajność dialogów, używając AppScaffold do nakładania dialogów na inne treści na ekranie (I1b9a4).
  • Zmniejszono wewnętrzne wypełnienie pionowe EdgeButton. (I1a5bb)
  • Dodaliśmy do przycisków suwaka semantykę przycisków. (I80cc6)

Wersja 1.0.0-alpha32

29 stycznia 2025 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha32 został zwolniony. Wersja 1.0.0-alpha32 zawiera te komisy.

Zmiany w interfejsie API

  • W CurvedTextStyle odstępy między literami zostały podzielone na odstępy w lewo i w prawo. Jest to wymagane, ponieważ litery w kierunku zgodnym z kierunkiem ruchu wskazówek zegara rozchodzą się od linii bazowej, a litery w kierunku przeciwnym do ruchu wskazówek zegara – zbliżają się do niej (potrzebne jest więc większe odstępowanie liter) (I4b848)
  • Zaktualizowaliśmy usługi IconButtonShapes, IconToggleButtonShapes, TextButtonShapesTextToggleButtonShapes, aby zwiększyć spójność w bibliotekach Material3. Ta zmiana wprowadza też buforowanie kształtów w celu zmniejszenia liczby alokacji. (I049fc)
  • Parametr pressedShapeCornerSizeFraction został usunięty z metody variantAnimatedShape w funkcjach IconToggleButtonTextToggleButton (I58a65).
  • Wprowadzamy ulepszenia dotyczące renderowania krzywizn tekstowych (w tym TimeText), które są niezgodne z ekranami nieokrągłymi. Obsługa ekranów innych niż okrągłe nie jest już wymagana w przypadku Wear OS. Więcej informacji znajdziesz w przewodniku Pierwsze kroki. (I1cc1c)
  • Zaktualizowaliśmy ButtonGroupScopeButtonGroup, zastępując ButtonGroupItem oparte na DSL przez Modifier.weight, Modifier.minWidthModifier.enlargeOnPress. (I16c3c)
  • W interfejsie API ButtonGroup wprowadziliśmy nowy modyfikator ButtonGroupScope: enlargeOnPress ma teraz nazwę animateWidth i oczekuje argumentu InteractionSource, a nie MutableInteractionSource, ponieważ nie trzeba go modyfikować. Dodaliśmy też publiczną stałą ButtonGroupDefaults.DefaultMinWidth, która jest domyślną minimalną szerokością przycisków w komponencie ButtonGroup. (Ie27ec)
  • Zmiana właściwości ListHeaderDefaults.contentColor, która teraz zaczyna się małą literą, ponieważ jest to właściwość kompozytowa (I125a5).
  • Dodaliśmy parametr opisu treści do parametrów SliderDefaults.DecreaseIconSliderDefaults.IncreaseIcon z odpowiednimi wartościami domyślnymi (I2e1a7).
  • Zmieniliśmy nazwę parametru spacing w plikach PickerPickerGroup na verticalSpacing (Ib75cc).
  • Usunęliśmy funkcje ConfirmationDialogDefaults.successTextfailureText, ponieważ wywołujący funkcję ConfirmationDialog powinien przekazywać ciągi znaków z większym kontekstem. Zmieniono też nazwę confirmationCurvedText na confirmationDialogCurvedText. Na koniec zmieniliśmy nazwę parametru Dialog show na visible, aby zachować spójność z innymi niedawnymi zmianami w dialogach. (I10074)
  • Użytkownik IconButton zmienił nazwę elementu z disabledImageOpacity na DisabledImageOpacity. (I5f94a)

Poprawki błędów

  • Naprawiliśmy błąd w animacji EdgeButton, aby w każdym ujęciu używany był prawidłowy rozmiar (Id3b58).
  • Rozwiązanie problemu polegającego na tym, że animateContentSize nie działało z Button. (Ib18a0)
  • Zmieniliśmy skalę czcionki Title Large na rozmiar 18dp (Ic9d52).
  • Zaktualizowaliśmy odstępy i rozmiar ikony AlertDialog (Iac28c)
  • Usunięto niespójności w punktach przecięcia dużych ekranów (duże ekrany to ekrany o rozdzielczości 225 dp lub większej) (I36474)
  • Naprawiono drobny błąd związany z pozycjonowaniem przycisków (I952c2).

Wersja 1.0.0-alpha31

15 stycznia 2025 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha31 został zwolniony. Wersja 1.0.0-alpha31 zawiera te komisy.

Zmiany w interfejsie API

  • Zaktualizowaliśmy wszystkie biblioteki Wear Compose do trybu „wyraźnego interfejsu API”. (Iebf9f)
  • Zaktualizowaliśmy interfejsy API ScreenScaffoldEdgeButton, aby ułatwić określanie wypełniania treści na ekranach, które zawierają EdgeButton. W nowym interfejsie API parametr EdgeButton obiektu EdgeButton jest przekazywany tylko do obiektu EdgeButton, a obiekt ScreenScaffold przyjmuje parametr edgeButtonSpacing, który określa odstęp między elementem EdgeButton a zawartością listy.size (I424fd)
  • W pliku DatePicker zmieniliśmy nazwy parametrów minDate na maxDate, a parametrów minValidDate na maxValidDate. W języku DatePickerColors zmieniliśmy nazwę parametru selectedPickerContentColor na activePickerContentColor, a parametr unselectedPickerContentColor na inactivePickerContentColor (Iba17b)
  • Zaktualizowaliśmy domyślne wartości ArcProgressIndicator na strokeWidth=6dp i zalecane diameter = 81.24% wysokości ekranu (I6f248)
  • Zaktualizowaliśmy interfejs Confirmation API, aby odzwierciedlał jego użycie w ramach okna dialogowego. Element składany nosi teraz nazwę ConfirmationDialog, a powiązane z nim nazwy kolorów i klas domyślnych zostały zaktualizowane. Zmieniliśmy też nazwę parametru show na visible, aby zapewnić zgodność z innymi interfejsami API animacji w Compose. Dodatkowo udostępniliśmy funkcje ConfirmationDialogContent, SuccessConfirmationDialogContentFailureConfirmationDialogContent na potrzeby sytuacji, w których deweloperzy muszą dostosować animacje dialogów w intro i outro. (Iaeb33)
  • Zaktualizowaliśmy element CircularProgressIndicatorContent do wersji CircularProgressIndicatorStatic (nieanimowanej wersji elementu CircularProgressIndicator), aby można było go używać do tworzenia elementu CircularProgressIndicator z niestandardowymi animacjami. (I1346f)
  • Naprawiliśmy kolejność parametrów w ArcProgressIndicator, umieszczając na pierwszym miejscu parametr modyfikatora (I4656a).
  • Ulepszony interfejs API SwipeToReveal, aby otrzymywać parametr slotu tekstowego dla etykiet działań (z wyjątkiem działania dodatkowego) oraz usunąć parametry etykiety z działania cofnij (I5b3db).

Poprawki błędów

  • Naprawiliśmy błąd, który powodował, że LongPress wibracje były wyzwalane więcej niż raz w Button, Card, IconButton, TextButton (Ia8b0f)
  • Zmiany w UX AlertDialog – na dużych ekranach przyciski potwierdzenia i zamknięcia są teraz mniejsze. Zwiększyliśmy też odstęp pod przyciskami Potwierdź i Odrzuć. (I4f066)
  • Zmieniliśmy specyfikacje animacji etykiety przycisku polecenia w komponencie SwipeToReveal. (Ib87fb)
  • Zmieniliśmy SwipeToReveal, aby kontener był rozwijany w tym samym czasie, gdy wyświetlany jest tekst. (I44cf8)
  • Ulepszona funkcja SwipeToReveal, która zapewnia sprzężenie zwrotne haptyczne, gdy gest przesunięcia przekroczy próg, po którym następuje działanie główne. (I23efe)
  • Zaktualizowaliśmy SwipeToReveal, aby domyślnie wyświetlać wielokropek w przypadku przepełnienia tekstu w przypadku działań głównych i cofnięcia. (I71f5a)
  • Naprawiliśmy problem z drganiem animacji ButtonGroup. (I63f8f)
  • Dodaliśmy semantykę tekstu do AnimatedText (I6063c)
  • Dialog teraz resetuje skalowanie tła, gdy zostanie usunięty z kompozycji (bez tej poprawki ekran uruchamiania mógł pozostać w zmienionym stanie) (Id24ac)
  • Dodaliśmy animację zmiany kształtu do przycisków w komponencie Stepper (Id6ed3).

Wersja 1.0.0-alpha30

11 grudnia 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha30 został zwolniony. Wersja 1.0.0-alpha30 zawiera te komity.

Zmiany w interfejsie API

  • Modyfikator scrollTransform w przypadku TransformingLazyColumn został przekształcony, co spowodowało zmianę w interfejsie API. (I0c6dc)
  • Zaktualizowaliśmy parametry IconToggleButtonShapesTextToggleButtonShapes, aby zawierały 2 różne parametry kształtu: uncheckedPressedcheckedPressed (I85dbd).
  • Nieprawidłowe opcje miesiąca/dnia są teraz widoczne w sekcji DatePicker, a nowa opcja invalidPickerContentColor jest dostępna w przypadku korzystania z opcji minDate lub maxDate. (If4541)
  • Zaktualizowaliśmy interfejs API Stepper, aby udostępnić sloty increaseIcondecreaseIcon. Treści do tych slotów można tworzyć jak zwykle za pomocą komponentu Ikona. (Id35da)
  • Zaktualizowaliśmy funkcję dynamicColorScheme, usuwając opcjonalny parametr defaultColorScheme i zwracając wartość ColorScheme, która może być pusta. Oznacza to, że wywołujący musi wyraźnie obsłużyć przypadek awaryjny, gdy nie podano dynamicznego schematu kolorów. (I6d62e)
  • Zaktualizowaliśmy rozmiary ikon w ButtonDefaults, aby można było ich używać w CompactButton. W przypadku CompactButton zawierającego tylko ikonę należy użyć atrybutu ButtonDefaults.SmallIconSize = 24.dp, a w przypadku CompactButton zawierającego zarówno ikonę, jak i tekst – atrybutu ButtonDefaults.ExtraSmallIconSize = 20.dp. Zalecamy, aby CompactButton zawijała zawartość (zamiast wypełniać maksymalną szerokość). Zaktualizowaliśmy próbki, aby to pokazać. (I0582c)
  • Dodaliśmy EdgeButtonDefaults z zalecanymi rozmiarami ikon dla 4 różnych EdgeButtonSizes. Zaktualizowaliśmy też układ EdgeButton, aby miał nieco większy odstęp od dołu niż od góry, co poprawia wygląd zarówno ikony, jak i treści tekstowej. (Id772a)
  • Dodaliśmy animację do LinearProgressIndicator i ujawnienia LinearProgressIndicatorContent, które zawierają treści wizualne bez animacji. (Idee99)
  • Dodaliśmy nowy komponent CircularProgressIndicatorContent, który umożliwia wyświetlanie treści wizualnych z poziomu CircularProgressIndicator bez animacji. (Ie33d4)
  • TransformingLazyColumn udostępnia teraz kompozycję lokalną LocalTransformingLazyColumnItemScope, której Cards, Buttons i ListHeaders używają do automatycznego przekształcania się po umieszczeniu w TransformingLazyColumn. Rozmówcy mogą wyłączyć automatyczne przekształcanie za pomocą nowego opakowania TransformExclusion. (I1652f)
  • Zmieńliśmy typ pola ButtonDefaults.shape na RoundedCornerShape (Iccdf2).

Poprawki błędów

  • Naprawiliśmy błąd dotyczący zachowania istniejącej przezroczystości tła w TimeText (I1eb60).
  • W naszej typografii domyślnie ustawiliśmy wartość TextMotion na Animated, aby uniknąć drgań tekstu spowodowanych przyciąganiem glif liter do granic pikseli podczas operacji skalowania. (I626fa)
  • Zaktualizowaliśmy wygląd ScrollIndicator, zwiększając szerokość i odstęp, aby poprawić widoczność. (Ied7cb)
  • Naprawiliśmy błąd w Modifier.scrollTransform dotyczący dodawania, usuwania i przenoszenia elementów. (I6830f)
  • Rozwiązaliśmy problem z animowaniem okrągłego przycisku w przypadku krótkich dotknięć (wcześniej minimalny czas trwania animacji nie był zawsze przestrzegany). (I757a7)
  • Zaktualizowaliśmy kąt skanowania dla LevelIndicator do 20% (czyli 72 stopnie). (Idde5c)
  • Rozwiązaliśmy problem z pozycjonowaniem ScrollIndicator, gdy używana jest funkcja ScalingLazyColumn w ramach AutoCenteringParams. (I387dd)
  • Zaktualizowaliśmy kolory i typografię w przypadku ListHeaderListSubHeader. Dotyczy to również kolorów przełączników CheckboxButtonSwitchButton. (I39817)
  • Rozwiązaliśmy problem z pozycjonowaniem ScrollIndicator w wersjach LazyColumnScalingLazyColumn z użyciem ContentPadding. (I2bc51)
  • Poprawiliśmy błąd występujący w animacji postępu OpenOnPhoneDialog, używając nowego CircularProgressIndicatorContent. (I3e443)
  • Zaktualizowaliśmy HorizontalPagerScaffoldVerticalPagerScaffold, aby wyłączyć animacje, gdy włączona jest opcja Ogranicz animacje (Iaaf68).
  • Wprowadziliśmy osobną animację dla okrągłych wskaźników postępu, gdy postęp osiąga ponad 100%. (I47135)
  • Naprawiliśmy błąd, który powodował, że komponenty strony EdgeButton mogły być rysowane z nieprawidłowym kształtem (I91db9).

Wersja 1.0.0-alpha29

13 listopada 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha29 został zwolniony. Wersja 1.0.0-alpha29 zawiera te komity.

Zmiany w interfejsie API

  • Zaktualizowaliśmy TimeText, aby wyświetlał domyślne treści z godzinami. (Id23b3)
  • Uprościliśmy funkcję ScrollInfoProvider, zmieniając ją w funkcję PagerState, i usunęliśmy parametr orientation, który nie jest już potrzebny. Nowe zachowanie polega na tym, że TimeText pozostaje na swoim miejscu zarówno w przypadku przewijania poziomego, jak i pionowego. (I71767)
  • LocalHapticFeedback udostępnia teraz domyślną implementację HapticFeedback, gdy interfejs API wibratora wskazuje, że haptyka jest obsługiwana. Do HapticFeedbackType dodaliśmy te zmienne: Confirm, ContextClick, GestureEnd, GestureThresholdActivate, Reject, SegmentFrequentTick, SegmentTick, ToggleOn, ToggleOff, VirtualKey. Komponenty Wear Compose, które można kliknąć dłużej, takie jak Button, IconButton, TextButtonCard, wykonują teraz haptyczne LONG_PRESS, gdy zostanie podany moduł obsługi długiego kliknięcia. (I5083d)

Poprawki błędów

  • Zaktualizowaliśmy animację potwierdzenia. (I04bff)
  • W przypadku bibliotek Compose zaktualizowaliśmy minimalną wersję interfejsu API do 1.7.4. (I88b46)
  • Dodano nowy ruch w oknie OpenOnPhone. (I1e10a)
  • Naprawiliśmy błąd w usługach LevelIndicator, dzięki czemu są one teraz wyświetlane prawidłowo, gdy poziom wynosi 0. (Ie95a4)
  • Zaktualizowaliśmy animacje HorizontalPageIndicatorVerticalPageIndicator. (I5c8f3)
  • Dodaliśmy animację kurczenia się do kropki do nieokreślonego ArcProgressIndicator. (I9fd51)

Wersja 1.0.0-alpha28

30 października 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha28 został zwolniony. Wersja 1.0.0-alpha28 zawiera te komity.

Zmiany w interfejsie API

  • Dodaliśmy wariant łuku w nieokreślonym kołowym wskaźniku postępu (I2efc1).
  • Udostępniliśmy komponenty AlertDialogContentDialog, które składają się na interfejs API AlertDialog, aby umożliwić w razie potrzeby dodanie własnych ustawień (np. dostosowanie animacji AlertDialog przy zachowaniu zalecanego układu treści). Dodatkowo do elementów EdgeButton, ConfirmButtonDismissButton grupy AlertDialogDefaults dodaliśmy parametry ModifierColor. (I4eb71)
  • Zaktualizowaliśmy interfejs Placeholder w następujący sposób: zmieniliśmy nazwę parametru PlaceholderState.startPlaceholderAnimation na PlaceholderState.animatePlaceholder, PlaceholderState.isShowContent na PlaceholderState.isHiddenPlaceholderDefaults.shape na PlaceholderDefaults.Shape; zmieniliśmy nazwę parametru painter w interfejsie painterWithPlaceholderOverlayBackgroundBrush na originalPainter; zmieniliśmy widoczność parametru PlaceholderState.placeholderProgression z publicznej na wewnętrzną i zmieniliśmy jego nazwę na placeholderShimmerProgression; dodaliśmy stałe wartości czasu trwania animacji w interfejsie PlaceholderDefaults. (Ie5a59)
  • Zaktualizowaliśmy interfejs API EdgeButton w następujący sposób: zmieniliśmy nazwę parametru ScreenScaffoldbottomButton na edgeButton; parametr EdgeButtonSize został oznaczony jako klasa wartości. (Ieef15)
  • Zmieniliśmy widoczność copy() na publiczną w klasach kolorów wear material3 (I0287f).

Poprawki błędów

  • Dodano minimalny czas animacji dla IconToggleButton i TextToggleButton po kliknięciu (Ieb333).
  • Dodano minimalny czas trwania animacji kształtów IconButton i TextButton (Iebcee).
  • Poprawiono stan opcji powtarzania DatePicker. (I3587c)
  • Dodano animację dla okien alertu i poświadczenia. (I173b1)

Wersja 1.0.0-alpha27

16 października 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha27 został zwolniony. Wersja 1.0.0-alpha27 zawiera te komity.

Zmiany w interfejsie API

  • Zaktualizowaliśmy ScreenScaffoldScrollIndicator po zmianie nazwy pakietu Wear Compose Foundation z LazyColumn na TransformingLazyColumn. (I0608b)
  • Parametr EdgeButton o nazwie preferredHeight został przemianowany na buttonSize, a jego wartość może być wybrana tylko spośród 4 stałych wartości w nowo wprowadzonej klasie wartości EdgeButtonSize. (Icdd70)
  • Zmieniliśmy nazwę parametru ListSubheader na ListSubHeader i dodaliśmy publicznie dostępne wartości domyślne dla parametrów ListHeaderListSubHeader. (I96730)
  • Dodaliśmy nowe komponenty HorizontalPagerScaffoldVerticalPagerScaffold dla Wear, które zapewniają nowe animacje i koordynację między tekstem czasu a elementami wskaźnika strony. (Iff7d0)
  • Dodaliśmy obsługę urządzeń z pokrętłem do HorizontalPagerScaffoldVerticalPagerScaffold, aby umożliwić użytkownikom poruszanie się po menu za pomocą urządzeń z pokrętłem. (I9770d)
  • Wprowadziliśmy zmiany w interfejsie MotionScheme API, aby uprościć jego używanie i ulepszyć spójność. Usunęliśmy wbudowane funkcje zapamiętaj i przemieściliśmy wbudowane schematy animacji do dedykowanego obiektu towarzyszącego MotionScheme. Zmieniono nazwy standardMotionSchemeexpressiveMotionScheme na standardowe i wyraziste. (I5fd45)
  • Dodaliśmy obsługę dynamicznego schematu kolorów opartego na kolorach systemu. (I073e9)
  • Zaktualizowaliśmy sekwencję zgodnie z najnowszymi specyfikacjami UX. (I622bb)

Poprawki błędów

  • Zaktualizowaliśmy typografię i odstępy w komponentach kart. (I3ae48)
  • Zmieńliśmy w AlertDialog odstęp między przyciskami Potwierdź/Anuluj a resztą treści z 8 dp na 12 dp zgodnie ze specyfikacją UX (Ie55f0).
  • Zaktualizowaliśmy przezroczystość kolorów w komponencie Suwak. (Idb383)

Wersja 1.0.0-alpha26

2 października 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha26 został zwolniony. Wersja 1.0.0-alpha26 zawiera te komity.

Zmiany w interfejsie API

  • Zaktualizowaliśmy interfejs API i wygląd usługi HorizontalPageIndicator oraz dodaliśmy funkcję VerticalPageIndicator do użycia z usługą VerticalPager (Ic9309)
  • AlertDialog umożliwia teraz pominięcie domyślnego przycisku dolnego w wariantach grupy przycisków w przypadku niestandardowych układów, w których przycisk EdgeButton nie jest wymagany. (I34fa9)
  • Dodaliśmy komponent SwipeToReveal dla Wear Material 3 (Ic38b2).
  • Dodaliśmy obsługę dwukierunkowego przesuwania w aplikacji SwipeToReveal na wypadek rzadkich sytuacji, w których bieżący ekran nie obsługuje funkcji usuwania przez przesunięcie. Domyślnie przewijanie w celu wyświetlenia jest nadal możliwe tylko przy przesuwaniu od prawej do lewej. Zdecydowanie zalecamy zachowanie domyślnego zachowania, aby uniknąć konfliktu z przesuwaniem w celu zamknięcia. (Ifac04)
  • Zmieniliśmy nazwę parametru buttonHeight w modelu EdgeButton na preferredHeight. (I4fab3)
  • Wersja Kotlin została zaktualizowana do 1.9 (I1a14c).
  • Zmieniliśmy nazwę OpenOnPhoneDialogDefaults.Icon na OpenOnPhoneDialogDefaults.OpenOnPhoneIcon, aby uniknąć konfliktu z poziomem Icon(I0f391).
  • Dodaliśmy obsługę właściwości ScrollIndicator w przypadku właściwości LazyColumn. (Ia546a)
  • Zaktualizowaliśmy wartości domyślne dla TextToggleButton i IconToggleButton. (I7aaa9)
  • Uprościliśmy interfejsy API PickerPickerGroup. (Id0653)
  • Dodaliśmy zmienne CardDefaults.ShapeCardDefaults.Height, które (jako tokeny) były wcześniej prywatne dla deweloperów korzystających z biblioteki. (I1594a, b/347649765)
  • Zmieniliśmy nazwę parametru postępu w przypadku binarnego segmentowanego koła postępu na segmentValue. (Ib72d9)
  • Zaktualizowaliśmy kolory i układ suwaka. (Ic3eec)

Poprawki błędów

  • Zaktualizowaliśmy animację ikony openOnPhone (I66f85).
  • W usługach Slider, TimePickerDatePicker używamy teraz ikon Google Symbols. (I46c7c)
  • Zaktualizowaliśmy wypełnienie w elementach ConfirmationOpenOnPhoneDialog. (Iaa82e)

Wersja 1.0.0-alpha25

18 września 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha25 został zwolniony. Wersja 1.0.0-alpha25 zawiera te komity.

Zmiany w interfejsie API

  • Dodaliśmy okrągły wskaźnik postępu z nieokreślonym czasem trwania. (I427a7)
  • Dodaliśmy obsługę przepełnienia postępu (powyżej 100%), zarówno w przypadku CircularProgressIndicator, jak i SegmentedCircularProgressIndicator. Gdy postęp przekroczy 1,0, zostanie to oznaczone nowym kolorem overflowTrack. (Iaaa3d)
  • Okrągłe przyciski IconToggleButtonTextToggleButton obsługują teraz nową animację kształtu, w której różne kształty oznaczają stany zaznaczone, niezaznaczone i wciśnięte. Wcześniejsza animowana wersja kształtu w stanie „wciśnięte” jest nadal obsługiwana. (I29f03)
  • Usunęliśmy obsługę EdgeButton w komponencie Column, ponieważ w komponencie ScreenScaffold należy wyraźnie określić wysokość EdgeButton. (Ie353d)
  • Dodaliśmy obsługę LazyColumn w komponencie Wear Compose w komponencie ScreenScaffold (i dodaliśmy implementację ScrollInfoProvider w komponencie LazyColumnState). (Ib8d29)
  • Aby zapewnić bardziej elastyczne rozwiązanie, połączyliśmy komponenty LocalTextMaxLines, LocalTextAlignLocalTextOverflow w jedną kompozycję lokalną LocalTextConfiguration. (I5edbc)
  • Dodaliśmy typ arc-large jako dodatkowy typ skali, zarezerwowany dla krótkich ciągów tekstowych nagłówka u samego góry lub u samego dołu ekranu, np. w przypadku nakładek z potwierdzeniem. (I60e3e)
  • Do przycisku dodaliśmy domyślne wartości zalecanych rozmiarów ikon i odstępów treści. (I84675)

Poprawki błędów

  • Zaktualizowaliśmy kolory IconButtonTextButton. (I48324)
  • Zmieniliśmy podstawową wersję przeciążenia przycisku, aby była wyrównana do środka w pionowej, tak aby była spójna z innymi przeciążeniami. Aby przywrócić poprzedni sposób działania, użyj Modifier.align z poziomu RowScope. (I66e57)

Wersja 1.0.0-alpha24

4 września 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha24 został zwolniony. Wersja 1.0.0-alpha24 zawiera te komity.

Zmiany w interfejsie API

  • Do motywu Material 3 dodaliśmy schemat Motion. Będzie ono używane przez komponenty w bibliotece do stosowania specyfikacji animacji, takich jak sprężyny do wyrażania ruchu. (I54ff3)
  • Do biblioteki Material3 dodaliśmy komponenty AppScaffoldScreenScaffold, które obejmują funkcję do koordynowania warstw i przejść TimeTextScrollIndicator. AppScaffold zapewnia najwyższy poziom komponentów szkieletu, które znajdują się na wierzchu wszystkich ekranów. Dodanie TimeText do AppScaffold pozwala mu pozostać na miejscu podczas przesuwania między ekranami. Ekrany mogą same zastąpić lub ukryć tekst czasu. ScreenScaffold udostępnia slot dla ScrollIndicator i automatycznie animuje wskaźnik przewijania podczas przewijania, w tym czas oczekiwania na ukrycie wskaźnika po okresie bezczynności. (I047d6)
  • Dodaliśmy ScrollIndicator z nowym wzornictwem Material 3. Ma on stały rozmiar miniatury na podstawie początkowej zawartości listy, aby uniknąć różnic w rozmiarze podczas wczytywania treści na liście. (Ic228d)
  • Zmieniliśmy interfejs API ScrollAway tak, aby ScreenStage była klasą wartości zamiast klasy wyliczenia. Dzięki temu w przyszłości będzie można dodawać kolejne etapy w miarę potrzeby. (I48c93)
  • Dodaliśmy EdgeButton, czyli charakterystyczny przycisk na Wear, którego kształt odpowiada zakrzywionej dolnej krawędzi ekranu (I16369).
  • Dodaliśmy do ScreenScaffold nowy boks na przycisk dolny (np. EdgeButton), który będzie wyświetlany i zmieniał rozmiar w zależności od treści przewijanych (I032eb)
  • Dodaliśmy elementy Modifier.scrollTransformModifier.targetMorphingHeight, aby dodać efekty ruchu Material 3 do elementów w LazyColumn. (Ie229a)
  • Dodaliśmy SegmentedCircularProgressIndicator jako wariant CircularProgressIndicator. Wersja z segmentacją wyświetla jedną wartość postępu we wszystkich segmentach lub pokazuje każdy segment jako włączony/wyłączony (I6e059).
  • Dodaliśmy LinearProgressIndicator jako alternatywę dla dotychczasowej funkcji CircularProgressIndicator. (I89182)
  • Dodaliśmy AlertDialog, czyli układy do wyświetlania użytkownikowi ważnych promptów. Dostępne są warianty z parą przycisków potwierdzenia/odrzucenia lub pojedynczym przyciskiem u dołu (zwykle przycisk EdgeButton) pod zbiorem opcji. Oba warianty mają sloty na ikonę, tytuł i dodatkowy tekst, w których można podać więcej szczegółów. (Ieb873)
  • Dodaliśmy symbol OpenOnPhoneDialog, który powinien być używany do wskazywania działania, które będzie kontynuowane na telefonie użytkownika. OpenOnPhoneDialog jest odrzucany po upływie określonego czasu. (I978fd)
  • Dodaliśmy komponent dialogu Confirmation, który zawiera 2 miejsca na ikonę i tekst w wersji wygiętej lub liniowej. W przypadku komunikatów o sukcesie lub niepowodzeniu dostępne są różne wersje. Po upływie limitu czasu potwierdzenia są automatycznie odrzucane. (Ib43e8)
  • Dodaliśmy tło do TimeText, aby rozwiązać problemy, które występowały, gdy podstawowe treści i TimeText nakładały się na siebie i zasłaniały czas. (Ia11fd)
  • Dodaliśmy komponent LevelIndicator, który pokazuje wartość ustawienia, np. głośności. Można go używać z dotychczasowym komponentem Stepper do tworzenia ekranu głośności. LevelIndicator jest podobny do ScrollIndicator, ale wyświetla się po przeciwnej stronie ekranu, ma szerszą obwódkę i domyślnie inny kolor wskaźnika. (I8a4ac)
  • Dodaliśmy TimePicker z układami dla czasu 24-godzinnego (z sekundami lub bez nich) oraz 12-godzinnego z opcją wyboru pory dnia. (Ia5124)
  • Dodaliśmy DatePicker z konfiguracją sortowania kolumn (np. dzień-miesiąc-rok, miesiąc-dzień-rok lub rok-miesiąc-dzień) oraz opcjonalne daty minimalne i maksymalne. (Ibf13b)
  • Dodaliśmy parametr wagi do funkcji text w funkcji TimeText. W przypadku, gdy element TimeText składa się z więcej niż jednego elementu tekstowego, umożliwia to kontrolowanie sposobu rozmieszczenia przestrzeni. (I36700)
  • Dodaliśmy elementy RadioButtonSplitRadioButton, które upraszczają poprzedni interfejs API dzięki połączeniu elementów SelectableButton (Split) i elementu podrzędnego radio control (If7ae8).
  • Dodaliśmy elementy CheckboxButtonSplitCheckboxButton, które upraszczają poprzedni interfejs API dzięki połączeniu elementu (Split)ToggleButton i podrzędnego elementu kontrolnego pola wyboru (Ia8f70).
  • Dodaliśmy SwitchButtonSplitSwitchButton – te komponenty upraszczają poprzedni interfejs API, łącząc interfejs (Split)ToggleButton i podrzędny element kontrolny Switch (I0d349).
  • Zaktualizowaliśmy dokumentację AnimatedText, aby wyjaśnić działanie funkcji przeregulowania. (Iff30a)
  • Dodaliśmy ButtonGroup, aby połączyć 2 lub 3 przyciski, tak aby ich naciśnięcia wywoływały zsynchronizowaną animację. (Ie27db)
  • Dodaliśmy opcjonalną animację kształtu dla przycisków IconButtonTextButton. (Iffca5)
  • Dodaliśmy dodatkowy wariant kolorystyczny FilledVariant do Button, IconButton, TextButton, CompactButtonEdgeButton (I65fc3)
  • Do parametru forcedSize dodaliśmy parametr forcedSize, dzięki czemu tła obrazów przycisku zachowują teraz domyślnie rozmiar komponentu.ImageWithScrimPainter Ustawienie forcedSize = null powoduje przyjęcie wartości Painter.instrinsicSize. (Ic57af)
  • Dodano długie kliknięcie do przycisków (Ib613d).
  • Dodaliśmy też obsługę długiego kliknięcia do właściwości IconButtonTextButton. (I38891)
  • Do kart dodano obsługę długiego kliknięcia. (I305d5)
  • Dodaliśmy parametry LocalTextMaxLines, LocalTextAlignLocalTextOverflow jako CompositionLocals i użyliśmy ich jako domyślnych parametrów w funkcji Text. Lokalne wartości kompozycji mogą teraz być używane przez komponenty takie jak CheckboxButton, SwitchButtonRadioButton do implementowania wskazówek dotyczących UX, ale w razie potrzeby deweloperzy mogą je zastąpić. (Iab841)
  • Dodaliśmy Placeholder, aby umożliwić maskowanie zawartości komponentów takich jak przyciski i karty do momentu załadowania danych. (I1a532)
  • Dodaliśmy IconToggleButtonColorsTextToggleButtonColors, aby zastąpić usunięty adres ToggleButtonColors. (Ie0bf1)

Poprawki błędów

  • Zaktualizowaliśmy parametry Button, FilledTonalButton, OutlinedButton, ChildButtonCompactButton, aby używały nowych parametrów CompositionLocals LocalTextMaxLines, LocalTextAlignLocalTextOverflow. Dzięki temu możesz wdrożyć zalecenia dotyczące UX. W razie potrzeby deweloperzy mogą bezpośrednio zastąpić te parametry w Tekście (Ie51f7).
  • Domyślną szerokość kreski LevelIndicator zmieniliśmy na 6dp, aby odróżnić ją od ScrollIndicator, która ma szerokość kreski 4dp. (If6f63)
  • Naprawiliśmy problem w TimeText, aby obsługiwać większe kąty skanowania. (Ie489f)
  • Rozwiązaliśmy problem z rekompozycją EdgeButton. (I4cdca)
  • Poprawione układy podzielonych przycisków przełączników, gdy jest ustawione niestandardowe wypełnienie treści. (Ia33d3)
  • małe wartości postępu są zaokrąglane w górę do szerokości linii wskaźnika postępu; (I3bd84)

Wersja 1.0.0-alpha23

14 maja 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha23 został zwolniony. Wersja 1.0.0-alpha23 zawiera te komity.

Zmiany w interfejsie API

  • Zaktualizowaliśmy interfejsy API ToggleButton i RadioButton, aby umożliwić konfigurowanie wyłączonych kolorów. (If13a7)
  • Dodaliśmy nową CircularProgressIndicator dla Material 3. (Ib3bd7)

Poprawki błędów

  • Naprawiliśmy błąd polegający na tym, że przyciski do wyboru wyświetlały komunikat o kliknięciu dwukrotnym, gdy były już wybrane. (I7ed88)

Wersja 1.0.0-alpha22

1 maja 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha22 został zwolniony. Wersja 1.0.0-alpha22 zawiera te komity.

Zmiany w interfejsie API

  • Zaktualizowaliśmy Material3 ColorScheme. (I7b2b8)
  • Zaktualizowaliśmy przełącznik Material3 – oprócz zmian kolorów znacznik jest teraz zgodny z tym, który jest używany w przypadku pola wyboru. (Icac7b)

Poprawki błędów

  • Zaktualizuj wszystkie demonstracje integracji, aby używać nowego modyfikatora rotaryScrollable. (I25090)

Wersja 1.0.0-alpha21

17 kwietnia 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha21 został zwolniony. Wersja 1.0.0-alpha21 zawiera te komity.

  • Ta wersja została opublikowana z powodu błędu technicznego w poprzedniej wersji, który spowodował brak plików źródłowych jar. W tej wersji nie ma nowych commitów.

Wersja 1.0.0-alpha20

3 kwietnia 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha20 został zwolniony. Wersja 1.0.0-alpha20 zawiera te komity.

Poprawki błędów

  • Dostosowaliśmy przezroczystość stanu naciśnięcia i skupienia przycisku Ripple. (I59f0a)
  • W ramach najnowszych zmian w stylach typograficznych i wysokości linii dodaliśmy odstęp między etykietami głównymi i dodatkowymi w elementach Button, ToggleButtonRadioButton. (I2c0ba)

Wersja 1.0.0-alpha19

6 marca 2024 roku

Element androidx.wear.compose:compose-material3:1.0.0-alpha19 został zwolniony. Wersja 1.0.0-alpha19 zawiera te komisy.

Zmiany w interfejsie API

  • Dodaliśmy TimeText do biblioteki Material3 na Wear. Ten komponent wyświetla u góry ekranu aktualną godzinę (i dodatkowy stan). Nowe, zwięzłe API Material3 pozwala uniknąć powielania treści linearnych i zawijanych. (I4d7c3)
  • Zmieniliśmy nazwy parametrów RadioButtononSelected na onSelect. (I1a971)
  • Tokenizuj RadioButtonSplitRadioButton, a także zrefaktoryzuj istniejące metody, aby zmniejszyć liczbę wyszukiwań CompositionLocal przez dodanie do pamięci podręcznej wystąpień kolorów i ustawienie metod RadioButtonColorsSplitRadioButtonColors jako wewnętrznych. (I02b33)

Wersja 1.0.0-alpha18

21 lutego 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha18 został zwolniony. Wersja 1.0.0-alpha18 zawiera te commity.

Zmiany w interfejsie API

  • Zmieniliśmy wzór domyślnych wartości dla funkcji CardColors, ToggleButtonColorsSplitToggleButtonColors, tworząc wewnętrznie instancje z wykorzystaniem pamięci podręcznej i zmniejszając użycie funkcji CompositionLocal. (If3fec)

Wersja 1.0.0-alpha17

7 lutego 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha17 został zwolniony. Wersja 1.0.0-alpha17 zawiera te commity.

Zmiany w interfejsie API

  • Zaktualizowaliśmy interfejs Button API, aby domyślnie używał interfejsu buttonColors, i usunęliśmy duplikat filledButtonColors. (I4fe3b)
  • Przekształciliśmy domyślne wzorce w przypadku funkcji ButtonColors, IconButtonColorsTextButtonColors, tworząc wewnętrznie instancję z wykorzystaniem pamięci podręcznej i zmniejszając użycie funkcji CompositionLocal. (I5f51c)
  • Usunęliśmy nadmiar rememberUpdatedState w klasach kolorów związanych ze składnikami i oznaczyliśmy metody dostępu w klasach kolorów jako wewnętrzne. (If6571)

Poprawki błędów

  • Zaktualizowaliśmy aplikację Modifier.minimumInteractiveComponentSize, aby korzystać z funkcji Modifier.node. (Iba6b7)

Wersja 1.0.0-alpha16

24 stycznia 2024 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha16 został zwolniony. Wersja 1.0.0-alpha16 zawiera te commity.

Nowe funkcje

  • Dodaliśmy CompactButton, który może używać tych samych kolorów wypełnień, wypełnień tonalnych i konturów co przycisk (I05df0).

Zmiany w interfejsie API

  • Dodaliśmy elementy RadioButton/SplitRadioButton jako kontenery dla elementów sterujących wyborem, takich jak element radiowy. Różnica między RadioButtonToggleButton polega na tym, że RadioButton można wybrać (i działa on w ramach grupy wyboru), podczas gdy ToggleButton można włączać i wyłączać (jest niezależny). (I61275)
  • Usunęliśmy komponent LocalContentAlpha z biblioteki Material3 na Wear, aby zachować spójność z biblioteką Compose Material3. (I49a0a)
  • Komponenty Wear Material i Wear Material3, które w swoim interfejsie API udostępniają wartość MutableInteractionSource, zostały zaktualizowane, aby udostępniać wartość opcjonalną MutableInteractionSource, która domyślnie jest ustawiana na null. Nie ma tu żadnych zmian semantycznych: przekazanie wartości null oznacza, że nie chcesz podnosić MutableInteractionSource, i w razie potrzeby zostanie on utworzony wewnątrz komponentu. Ustawienie wartości null pozwala niektórym komponentom nigdy nie przydzielać MutableInteractionSource, a innym pozwala tworzyć instancję tylko wtedy, gdy jest to konieczne, co zwiększa wydajność tych komponentów. Jeśli nie używasz wartości MutableInteractionSource przekazywanej do tych komponentów, zalecamy przekazanie zamiast niej wartości null. Zalecamy też wprowadzenie podobnych zmian w własnych komponentach. (Ib90fc, b/298048146)
  • Dodaje nowy interfejs API ripple do bibliotek wear:compose-materialwear:compose-material3, który zastępuje wycofany interfejs rememberRipple. Dodaje też tymczasowy CompositionLocal, LocalUseFallbackRippleImplementation, aby przywrócić komponentom Material Design korzystanie z wycofanych interfejsów API rememberRipple/RippleTheme. Zostanie on usunięty w kolejnych stabilnych wersjach. Jest to tylko tymczasowe ułatwienie migracji w przypadku, gdy używasz niestandardowego RippleTheme. Więcej informacji o migracji i tłumaczenie tej zmiany znajdziesz na stronie developer.android.com. (af92b21)
  • Wprowadziliśmy drobne ulepszenia w interfejsie API HorizontalPageIndicator i jego dokumentacji. (I60efc)
  • Zmieniliśmy właściwości ColorScheme, aby były niezmienne, co zmniejsza efektywność zmian poszczególnych kolorów, ale zwiększa efektywność częstszego ich używania. Powodem tej zmiany jest fakt, że większość aplikacji nie ma potrzeby aktualizowania poszczególnych kolorów. Nadal jest to możliwe, ale będzie wymagać większej liczby ponownych kompilacji niż wcześniej. W związku z tym znacznie zmniejszyliśmy liczbę subskrypcji stanu w całym kodzie materiału, a także koszt inicjalizacji i czasu wykonywania w przypadku standardowych zastosowań. (Ibc2d6)
  • Zaktualizowano interfejsy API ToggleButton i SplitToggleButton, aby umożliwić dostosowywanie wyłączonych kolorów. Dodatkowo tokeny Material Design są teraz używane do wartości kolorów i typografii. (If087c)
  • Zaktualizowano kolory tła obrazu przycisku, aby używać tokenów Material Design. (Iba215)
  • Składniki Checkbox, SwitchRadioButton są teraz tylko do wyświetlania, ponieważ usunęliśmy obsługę kliknięć. Te komponenty są przeznaczone do użycia w komponencie (Split)ToggleButton, który obsługuje kliknięcie, dlatego są teraz wyraźniej oznaczone jako komponenty tylko do wyświetlania (nie są przeznaczone do samodzielnego używania na Wear). (I2322e)

Poprawki błędów

  • Dodaliśmy tokeny dla wartości animacji czasu trwania i wygładzania w komponowaniu interfejsu na Wear OS 3. (I437cd)
  • Naprawiliśmy błąd w elementach ToggleButton, SplitToggleButton, Checkbox, SwitchRadioButton, aby zapobiec powtarzaniu się komunikatów ułatwień dostępu (wcześniej role semantyczne były powielane). (Ica281)
  • Aby zwiększyć wydajność, usunęliśmy warstwę materialcore w przypadku CompactButton. (7902858)

Wersja 1.0.0-alpha15

15 listopada 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha15 został zwolniony. Wersja 1.0.0-alpha15 zawiera te commity.

Zmiany w interfejsie API

  • Zmieniliśmy nazwę poziomu Podstawy SwipeToDismissBox na BasicSwipeToDismissBox. Dzięki temu wyraźniej widać różnicę między komponentem na poziomie Foundation a poziomem Material3 SwipeToDismissBox. Drugi z nich pobiera kolory z poziomu MaterialTheme, aby wykorzystać je w przesłonach, a pozostałe elementy implementuje w poziomie BasicSwipeToDismissBox. (Ibecfc)

Poprawki błędów

  • Aby zwiększyć wydajność, usunęliśmy warstwę material-core w przypadku przycisku Material3. (I55555)

Wersja 1.0.0-alpha14

18 października 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha14 został zwolniony. Wersja 1.0.0-alpha14 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Usunęliśmy parametr indicatorStyle z Material3 HorizontalPageIndicator – zamiast tego będzie on dostosowywany do kształtu ekranu urządzenia (prostokątny lub okrągły). (I83728)
  • Oddzieliliśmy kolory SplitToggleButton od kolorów ToggleButton, dodając nową klasę SplitToggleButtonColors. (I78bee)

Wersja 1.0.0-alpha13

4 października 2023 roku

Element androidx.wear.compose:compose-material3:1.0.0-alpha13 został zwolniony. Wersja 1.0.0-alpha13 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodaliśmy opcjonalne pole z napisami do TitleCard. (Ifc45a)
  • Dodaliśmy tokeny kolorów Material Design dla TextButton. (I769dc)

Wersja 1.0.0-alpha12

20 września 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha12 został zwolniony. Wersja 1.0.0-alpha12 zawiera te commity.

Zmiany w interfejsie API

  • Zaktualizowaliśmy aplikację IconButton, aby używała tokenów Material Design. (I3f137)
  • Zaktualizowaliśmy aplikację IconToggleButton, aby używała tokenów Material Design. (I7d263)
  • Udostępniliśmy konstruktory CheckboxColors, RadioButtonColorsSwitchColors. (I82b73)

Wersja 1.0.0-alpha11

6 września 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha11 został zwolniony. Wersja 1.0.0-alpha11 zawiera te commity.

Poprawki błędów

  • Zaktualizowaliśmy typografię na kartach Material3 do wersji TitleMedium. (I597bd)
  • Zaktualizowaliśmy typografię i wyrównanie w przypadku naszych komponentów Material 3 ListHeaderListSubheader. (Ib5ceb)

Wersja 1.0.0-alpha10

23 sierpnia 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha10 został zwolniony. Wersja 1.0.0-alpha10 zawiera te commity.

Nowe funkcje

  • Dodaj HorizontalPageIndicator do biblioteki Material3 na Wear. (Ifee99)

Zmiany w interfejsie API

  • Zaktualizuj kod przycisków, aby używać tokenów projektowych Material3. (I92fe4)
  • Oznaczenie interfejsów API dla Wear Material 3 Stepper i Slider jako eksperymentalne, ponieważ szczegóły interfejsu są jeszcze w trakcie opracowywania. (I84d54)
  • Usunęliśmy rozmiary ExtraSmall z okrągłych TextButtonTextToggleButton, ponieważ rozmiar ten dotyczy tylko IconButton. (Ibc7d5)

Poprawki błędów

  • Zaktualizowaliśmy wskazówki dotyczące typografii w przypadku przycisku tekstowego, aby używać etykiety dużej dla rozmiaru przycisku dużego (Ib10fa).
  • Zaktualizowaliśmy wskazówki dotyczące typografii w przypadku elementu TextButton, aby używać etykiety Large w przypadku rozmiaru LargeButton (I8f3a7).
  • Ze względu na ułatwienia dostępności minimalny rozmiar docelowego elementu dotykowego karty został ustawiony na 48 dp. (Ieb9b1)
  • Dodawanie karty aplikacji z demonstracją obrazu i usuwanie karty aplikacji z demonstracją tła (Id735f)
  • Naprawiliśmy błąd w przyciskach okrągłych, w których modyfikatory nie były prawidłowo połączone. (I5e162)

Wersja 1.0.0-alpha09

9 sierpnia 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha09 został zwolniony. Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy ToggleButton dla material3 (I6bed6).

Zmiany w interfejsie API

  • Włączyliśmy adnotację FloatRange jako ograniczenia interfejsu API , które zostały wcześniej podane w komentarzach. (Icb401)
  • Zaktualizowaliśmy typografię na Wear w ramach Material 3, aby była zgodna z najnowszymi wytycznymi Material 3. (I1bad6)

Poprawki błędów

  • Zaktualizowaliśmy kolory elementów Button, IconButton i TextButton zgodnie z Material Design 3. (Ib2495)
  • Rozwiązaliśmy problem z widokością pola wyboru w wyłączonych stanach. (Ib25bf)

Wersja 1.0.0-alpha08

26 lipca 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha08 został zwolniony. Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy te elementy sterujące wyborem dla Material3: Switch, Checkbox, RadioButton. (Ib918c)
  • Do Material 3 dodaliśmy IconToggleButtonTextToggleButton, czyli okrągły przełącznik z jednym gniazdem na ikonę i tekst. W przypadku różnych rozmiarów ToggleButton zalecamy użycie Modifier.touchTargetAwareSize z rozmiarami podanymi w odpowiednich przyciskach przełączania. (I9f015)
  • Dodaliśmy do komponentów Material 3 elementy ListHeaderListSubheader. (Ibaefe)
  • Dodaliśmy bibliotekę Material3 SwipeToDismissBox, która wywołuje nową bibliotekę Foundation SwipeToDismissBox i podaje domyślne wartości kolorów z jej motywu. (I275fb)
  • Dodaliśmy do aplikacji Compose na Wear interfejs Material3 InlineSlider. Umożliwia użytkownikom wybranie jednej z kilku wartości. Zakres opcji jest wyświetlany jako pasek między minimalną a maksymalną wartością zakresu, z którego użytkownicy mogą wybrać jedną wartość. InlineSlider idealnie nadaje się do regulacji ustawień takich jak głośność czy jasność. (I7085f)

Zmiany w interfejsie API

  • Zaktualizowaliśmy motyw Kształty w Material 3 na Wear, aby używał RoundedCornerShape zamiast Kształtu. (Idb133)
  • Stałe wysokości przycisku są teraz publicznie dostępne (Idbfde).
  • Zaktualizowano pliki interfejsu API, aby dodać adnotacje do pominięcia zgodności (I8e87a, b/287516207).
  • Zaktualizowaliśmy InlineSliderColors w komponowaniu na Wear Material 3, aby zawierał publiczny konstruktor i publiczne właściwości. (I6b632)
  • Zaktualizowaliśmy wszystkie klasy kolorów w komponencie Wear Compose Material 3, aby zawierały publiczne konstruktory i publiczne właściwości. (I17702)
  • Udostępniliśmy publicznie poziome i pionowy margines przycisku. (Ieeaf7)

Poprawki błędów

  • Przycisk będzie teraz dostosowywać swoją wysokość do treści, które zostały powiększone ze względu na duże czcionki, aby zapewnić ułatwienia dostępu (Iaf302)
  • Zaktualizowaliśmy kilka demonstracji przycisku, aby rozwiązać problemy z dostępnością. (I61ce9)
  • StepperInlineSlider obsługują teraz powtarzane kliknięcia przy długim naciśnięciu, dzięki czemu możesz szybko zwiększać lub zmniejszać wartość StepperInlineSlider, przytrzymując przyciski + lub - (I27359)

Wersja 1.0.0-alpha07

21 czerwca 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha07 został zwolniony. Wersja 1.0.0-alpha07 zawiera te commity.

Nowe funkcje

  • Dodaliśmy komponent Stepper do biblioteki Compose dla Wear OS Material 3. Jest to funkcja podobna do poprzedniej wersji Material, ale zgodnie z opiniami deweloperów domyślnie pomija semantykę zakresu. Modifier.rangeSemantics w przypadkach, gdy wymagana jest semantyka zakresu. (Ic39fd)
  • Dodaliśmy curvedText do biblioteki Compose dla Wear OS Material 3. (Ia8ae3)

Poprawki błędów

  • Zaktualizowaliśmy usługę wear.compose.foundation, aby była zależna od interfejsu API usługi wear.compose.material3 (I72004, b/285404743).

Wersja 1.0.0-alpha06

7 czerwca 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha06 został zwolniony. Wersja 1.0.0-alpha06 zawiera te commity.

Poprawki błędów

  • Zaktualizowaliśmy funkcję TextButton, aby używała funkcji rozszerzenia toDisabledColor do prawidłowego wyłączania wartości alfa. (I814c8)

Wersja 1.0.0-alpha05

24 maja 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha05 został zwolniony. Wersja 1.0.0-alpha05 zawiera te commity.

Nowe funkcje

  • Do Material3 dodaliśmy element TextButton, czyli okrągły przycisk z 1 miejscem na tekst. W przypadku różnych rozmiarów TextButton zalecamy użycie Modifier.touchTargetAwareSize i ExtraSmallButtonSize, SmallButtonSize, DefaultButtonSize i LargeButtonSizeIcon podanych w TextButtonDefaults. Domyślna ikona TextButton nie ma obramowania i przezroczystego tła w przypadku działań o niskim stopniu podkreślenia. W przypadku działań wymagających mocnego podkreślenia użyj filledTextButtonColors. Aby uzyskać średni stopień podkreślenia, użyj obrysu TextButton i ustaw obramowanie na ButtonDefaults.outlinedButtonBorder. Aby uzyskać średni stopień podkreślenia, użyj obrysu TextButton i ustaw obramowanie na ButtonDefaults.outlinedButtonBorder. Aby uzyskać średni stopień podkreślenia, użyj obrysu filledTonalTextButtonColors. (I667e4)
  • Dodaliśmy do biblioteki Material3 na Wear Compose komponenty Card, OutlinedCard, AppCardTitleCard. Obiekty AppCardTitleCard mogą też mieć obrys, jeśli użyjesz atrybutów CardDefaults.outlinedCardColorsCardDefaults.outlinedCardBorder(I80e72).

Zmiany w interfejsie API

  • Parametr label w przycisku został przeniesiony na koniec, aby umożliwić obsługę nawiasów klamrowych w składni lambda. Usunęliśmy też parametr role (można go zastąpić za pomocą Modifier.semantics). Konstruktory ButtonColors są teraz publiczne. (Ie1b6d)

Wersja 1.0.0-alpha04

10 maja 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha04 został zwolniony. Wersja 1.0.0-alpha04 zawiera te commity.

Nowe funkcje

  • Do Material3 dodaliśmy okrągły przycisk IconButton z 1 miejscem na ikonę lub obraz. Dostępne są 4 warianty: IconButton, FilledIconButton, FilledTonalIconButtonOutlinedIconButton. W przypadku różnych rozmiarów IconButton zalecamy użycie Modifier.touchTargetAwareSize i ExtraSmallButtonSize, SmallButtonSize, DefaultButtonSize i LargeButtonSizeIcon podanych w IconButtonDefaults. Udostępniamy też IconButtonDefaults.iconSizeFor, aby określić zalecany rozmiar ikony dla danego rozmiaru przycisku. (I721d4)

Wersja 1.0.0-alpha03

19 kwietnia 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha03 został zwolniony. Wersja 1.0.0-alpha03 zawiera te commity.

Zmiany w interfejsie API

  • Dodaliśmy komponent przycisku Material 3. Jest to przycisk w kształcie stadionu, który wcześniej w bibliotece Material na Wear w Compose nosił nazwę Chip (został przemianowany na Button, aby zachować spójność z biblioteką Material 3 w Compose). Domyślny przycisk ma wypełnione tło. Dostępne są też jego warianty: FilledTonal (przyciemnione tło), Outlined (przezroczysty z cienką ramką) i Child (przezroczysty bez ramki, używany do działań dodatkowych o najmniejszej widoczności). Okrągłe przyciski z prostą ikoną i tekstem pojawią się w przyszłej wersji (Ia6942).

Wersja 1.0.0-alpha02

5 kwietnia 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha02 został zwolniony. Wersja 1.0.0-alpha02 zawiera te commity.

Poprawki błędów

  • Do Wear Compose Material 3 dodaliśmy opcję DefaultTextStyle, która ustawia domyślnie wartość PlatformTextStyle.includeFontPadding na „prawda” (obecne ustawienie). Pozwoli nam to w przyszłości zsynchronizować domyślne wyłączanie wyrównywania czcionki z bibliotekami w sekcji „Utwórz” (patrz Poprawka wyrównywania czcionki w sekcji „Utwórz” na potrzeby tła). (I7e461)

Wersja 1.0.0-alpha01

22 marca 2023 r.

Element androidx.wear.compose:compose-material3:1.0.0-alpha01 został zwolniony. Wersja 1.0.0-alpha01 zawiera te commity.

Nowe funkcje

  • Material 3 to kolejna wersja Material Design, która zawiera zaktualizowane motywy i przeprojektowane komponenty. Materiał 3 na Wear Compose jest zgodny z biblioteką Compose w wersji Material 3 na Androida. Ta pierwsza wersja alfa zawiera wczesne, funkcjonalne implementacje tych funkcji:

    • Motyw Material Design – umożliwia spójne konfigurowanie schematu kolorów, typografii i kształtów w komponentach w bibliotece. Motyw Material3 ma poprawione kolory, które zapewniają kontrast ułatwiający dostępność. (I84005)
    • Tekst/ikona – elementy składowe aplikacji na Wear Compose (I8e06a)
  • Będziemy równolegle rozwijać interfejs Wear Material (androidx.wear.compose:compose-material) i Wear Material 3 (androidx.wear.compose:compose-material3). Przyszłe wersje material3 rozszerzą zestaw widżetów o inne znane komponenty z Compose na Wear OS, takie jak przyciski, selektory i suwaki.

  • Biblioteki Wear Material i Wear Material 3 są wzajemnie wykluczające się i nie należy ich stosować w tej samej aplikacji, głównie dlatego, że odwołują się do różnych motywów, co może prowadzić do nieoczekiwanych niespójności.