Wear Compose

  
Twórz aplikacje Jetpack Compose na urządzenia z Wear OS, udostępniając funkcje obsługujące różne rozmiary urządzeń i gesty nawigacyjne.
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja beta Wersja alfa
23 września 2026 r. 1.7.0 - - -

Deklarowanie zależności

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

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

Groovy

dependencies {
    implementation "androidx.wear.compose:compose-foundation:1.7.0"

    // For Wear Material Design UX guidelines and specifications
    implementation "androidx.wear.compose:compose-material:1.7.0"

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

    // For Wear preview annotations
    implementation("androidx.wear.compose:compose-ui-tooling:1.7.0")
    
    // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material.
    // androidx.wear.compose:compose-material is designed as a replacement
    // not an addition to androidx.compose.material:material.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material please raise a bug to let us know.
}

Kotlin

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

    // For Wear Material Design UX guidelines and specifications
    implementation("androidx.wear.compose:compose-material:1.7.0")

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

    // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material.
    // androidx.wear.compose:compose-material is designed as a replacement
    // not an addition to androidx.compose.material:material.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material please raise a bug to let us know.
}

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

Prześlij opinię

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

Tworzenie nowego problemu

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

Wersja 1.7

Wersja 1.7.0

23 września 2026 r.

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

Ważne zmiany od wersji 1.6.0:

  • Wprowadziliśmy nowy interfejs API do obsługi gestów wykonywanych jedną ręką, który obejmuje obsługę gestów dla działania podstawowego (podwójne uszczypnięcie) i dla działania zamykającego (obrót nadgarstka), a także animowane wskaźniki klikania, przewijania i przechodzenia między stronami, które pokazują, kiedy gesty są dostępne.
  • Dodaliśmy obsługę PinnableContainer w TransformingLazyColumn, aby przechowywać element w pamięci zamiast go usuwać, gdy zostanie przewinięty poza obszar widoczny.
  • TransformingLazyColumn obsługuje teraz animowanie elementów, gdy opuszczają widoczny obszar, dzięki czemu mogą płynnie zsuwać się z ekranu zamiast zanikać.
  • Dodaliśmy firstLayoutItemProvider do TransformingLazyColumn jako opcjonalną możliwość dostosowania pierwszego elementu układu. Jeśli zostanie określony, dostawca definiuje element i jego krawędź używane jako początkowe odniesienie do umieszczenia. Jest to przydatne do kontrolowania kierunku przesuwania treści, gdy elementy są dynamicznie aktualizowane.
  • Ulepszenia SwipeToReveal, które obejmują obsługę zagnieżdżonego przewijania, szybkich przesunięć, drugiego sygnału haptycznego w stanie częściowego ujawnienia i actionContentSpacing w przypadku odległości między główną treścią a przyciskami działania.
  • Wprowadziliśmy adnotacje @FrequentlyChangingValue i @RememberInComposition, które wyświetlają ostrzeżenia narzędzia lint, aby zapobiegać problemom z wydajnością spowodowanym przez odczytywanie aktualizacji stanu o wysokiej częstotliwości lub zapominanie obiektów podczas tworzenia.

Poprawki błędów

  • Zależność androidx.lifecycle:lifecycle-runtime została zaktualizowana do wersji 2.10.0. Ta wersja jest wymagana, aby można było uruchamiać kontrole lint w pakiecie czasu działania cyklu życia w przypadku wtyczki Androida do obsługi Gradle w wersji 9.5.0-alpha04 lub nowszej. (If8e16)

Wersja 1.7.0-rc01

9 września 2026 r.

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

  • Ta wersja aktualizuje wersję 1.7.0 biblioteki Compose na Wear OS do wersji kandydującej do publikacji, ale nie wprowadza żadnych znaczących zmian w porównaniu z wersją 1.7.0-beta02.

Wersja 1.7.0-beta02

26 sierpnia 2026 r.

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

Poprawki błędów

  • Zaktualizowane profile bazowe bibliotek Wear Compose Foundation, Material3 i Navigation3. (I9b0a3)
  • Naprawiono migotanie animacji podpowiedzi gestów w OneHandedGestureScrollIndicator. (6e0c1cb)

Wersja 1.7.0-beta01

12 sierpnia 2026 r.

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

Wersja 1.7.0-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany. Wear Compose w wersji 1.7.0-beta01 zawiera te nowe funkcje:

  • Obsługa gestów wykonywanych jedną ręką, obejmująca obsługę gestów dla działania podstawowego (np. dwukrotne uszczypnięcie) i odrzucania (np. obrót nadgarstka) oraz animowane wskaźniki, które pokazują, kiedy gesty są dostępne w przypadku elementów interfejsu użytkownika, które można kliknąć (takich jak przyciski i karty), list z możliwością przewijania i pagerów.
  • Dodaliśmy obsługę PinnableContainer w TransformingLazyColumn, aby przechowywać element w pamięci zamiast go usuwać, gdy zostanie przewinięty poza obszar widoczny.
  • TransformingLazyColumn obsługuje teraz animowanie elementów, gdy opuszczają widoczny obszar, dzięki czemu mogą płynnie zsuwać się z ekranu zamiast zanikać.
  • Dodaliśmy firstLayoutItemProvider do TransformingLazyColumn jako opcjonalną możliwość dostosowania pierwszego elementu układu. Jeśli zostanie określony, dostawca definiuje element i jego krawędź używane jako początkowe odniesienie do umieszczenia. Jest to przydatne do kontrolowania kierunku przesuwania treści, gdy elementy są dynamicznie aktualizowane.
  • Ulepszenia SwipeToReveal, które obejmują obsługę zagnieżdżonego przewijania, szybkich przesunięć, drugiego sygnału haptycznego w stanie częściowego ujawnienia i actionContentSpacing w przypadku odległości między główną treścią a przyciskami działania.
  • Wprowadziliśmy adnotacje @FrequentlyChangingValue i @RememberInComposition, które wyświetlają ostrzeżenia narzędzia lint, aby zapobiegać problemom z wydajnością spowodowanym przez odczytywanie częstych aktualizacji stanu lub zapominanie obiektów podczas tworzenia.

Zmiany w interfejsie API

  • Zmiana nazwy GestureAction na OneHandedGestureAction, GesturePriority na OneHandedGesturePriority i GestureIndicatorSize na OneHandedGestureIndicatorSize (Ifc7f4, b/522761843)

Poprawki błędów

  • Rozwiązaliśmy problem w ScrollInfoProvider, który powodował, że TimeText migał lub znikał, gdy elementy listy zmieniały się lub były zmieniane. (Ief762, b/537433564)

Wersja 1.7.0-alpha07

29 lipca 2026 r.

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

Zmiany w interfejsie API

  • Przebudowano interfejsy API OneHandedGesture, zastępując stan wskaźnika logicznego (który wymagał zresetowania po wyświetleniu wskaźnika) funkcją zawieszania, aby uruchamiać animację. Każdy typ wskaźnika ma teraz własną klasę stanu wskaźnika, która zawiera logikę animacji tego wskaźnika. Zmieniono nazwę z key na gestureId w GestureConfiguration. (I7974f, b/522761843)
  • Dodaj CompactButton przepełnienie treści w jednym slocie (Idaffc, b/527889640)
  • Dodanie obsługi PinnableContainer do TransformingLazyColumn (Id3dc9, b/492418172)

Poprawki błędów

  • Dodaliśmy i zaktualizowaliśmy dokumentację na poziomie modułu dotyczącą bibliotek Wear Compose Foundation, Material 3 i Navigation 3. (I111d7, b/498153783)
  • Rozwiązaliśmy problem w ScreenScaffold, który powodował, że ponowne komponowanie mogło resetować stan śledzenia przewijania w przypadku niezapamiętanych ScrollInfoProvider. (I8be02, b/524620765)
  • Błąd adresu IllegalArgumentException: maxWidth must be >= than minWidth spowodowany dużymi marginesami poziomymi (I014e8, b/531192734)
  • Naprawiono animację EdgeButton podczas szybkiego przesunięcia. (I9657f, b/512700520)

Wersja 1.7.0-alpha06

15 lipca 2026 r.

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

Zmiany w interfejsie API

  • Przeniesienie funkcji kompozycyjnych ButtonContent, AppCardContent i TitleCardContent z Material3 do obiektów ButtonDefaults i CardDefaults. (I8d589, b/527889640)
  • Usuwanie wartości domyślnej z parametru Modifier.oneHandedGesture gestureLabel (Ica100, b/527068051)
  • Zmiana nazwy parametru gestureLabel na onGestureLabel w Modifier.oneHandedGesture i ustawienie go jako dopuszczającego wartość null, aby zachować spójność z innymi parametrami contentDescription (I952a8, b/527068051)
  • Wprowadź OneHandedGestureIndicatorState, aby skoordynować widoczność i animację między Modifier.oneHandedGesture() a wskaźnikami gestów. Zastąp InteractionSource tym podejściem opartym na stanie, aby uzyskać lepszą kontrolę nad cyklem życia. Dodaj parametr wrapAround do OneHandedGestureDefaults.scrollToNextPage, aby zachować spójność z innymi domyślnymi funkcjami przewijania za pomocą gestów. (I9e1e3, b/522761843)

Poprawki błędów

  • Wyjaśnienie dokumentacji interactionSource dotyczącej Modifier.oneHandedGesture, aby określić, które interakcje są emitowane (I2dc8d)
  • Obsługa gestów wykonywanych jedną ręką w AlertDialog została tymczasowo usunięta z powodu problemów z zależnością od pakietu Wear SDK w przypadku konsumentów, którzy w innych sytuacjach nie korzystają z tego pakietu ani z gestów wykonywanych jedną ręką. (Ib19e0, b/503841738)
  • Ulepszona funkcja TransformingLazyColumn, która obsługuje animacje umieszczania elementów wychodzących poza widoczny obszar, dzięki czemu mogą one zsuwać się z ekranu zamiast zanikać. Rozwiązaliśmy też problem z przyciąganiem wizualnym, który powodował, że elementy skalowane dynamicznie natychmiast przyciągały się do docelowej wysokości podczas animacji umieszczania (I89d84, b/525071281).
  • Używaj indeksowanych ItemInfo w usłudze firstVisibleItemLayoutItemInfo. (I256e3, b/527881678)
  • Poprawiono działanie animacji TimePicker, gdy włączona jest opcja Mniej animacji. (Ic9150, b/467288916)

Wersja 1.7.0-alpha05

1 lipca 2026 r.

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

Zmiany w interfejsie API

  • Dodano interfejs TransformingLazyColumnFirstLayoutItemProvider w Foundation, aby umożliwić dostosowywanie treści, które zmieniają kierunek podczas aktualizacji, wraz z gotowymi implementacjami rememberTransformingLazyColumnFirstLayoutItemProvider i rememberTransformingLazyColumnFirstVisibleItemProvider w Material3. (I54814, b/503353428)

  • Zmieniono nazwę parametru rezerwowego z current na centerItem w TransformingLazyColumnFirstLayoutItemProvider. Dodano TransformingLazyColumnState extensions firstVisibleItemLayoutItemInfo i layoutItemInfoOf oraz zaktualizowano rememberTransformingLazyColumnFirstLayoutItemProvider, aby używać czystej lambdy opartej na parametrach. (I9a8d9, b/503353428)

  • Dodaj przeciążenia dla przycisku Material3 i zawartości karty z wieloma slotami, aby można było ich używać za pomocą gestów wykonywanych jedną ręką. (I74ccb, b/515718015, b/490343658)

  • Dodaj obsługę ułatwień dostępu do gestów wykonywanych jedną ręką. (I0054d, b/519085906)

  • Zmiana nazwy OneHandedGestureDefaults.scrollToNextItem() na OneHandedGestureDefaults.scrollDownToNextItem i dodanie parametru wrapAround do funkcji przewijania OneHandedGestureDefaults (I940ce, b/509639667)

  • Dodaj atrybut non-composable Modifier.oneHandedGesture(), jeśli deweloper chce podać klucz ręcznie. (I191e1, b/504712626)

  • Zmień nazwę interfejsu API offsetOf w RevealState na positionOf. (I2675f, b/522387997)

  • Wprowadziliśmy parametr actionContentSpacing w SwipeToReveal, który umożliwia deweloperom dostosowywanie odległości między miejscami na działania a treściami. (I2abaf, b/507073912)

Poprawki błędów

  • Rozwiązaliśmy problem w ScreenScaffold, który powodował, że ponowne komponowanie mogło resetować stan śledzenia przewijania niezapamiętanych elementów ScrollInfoProvider. (I98f6d, b/524620765)
  • TransformingLazyColumn kolor paska przewijania jest zgodny z kolorem tła wskaźnika gestów podczas animacji wskaźnika (I353fb, b/524915104)
  • Zmieniono domyślny gestureIndicatorTint typ OneHandedGestureIndicator na LocalContentColor (I1abd3, b/524228063)
  • Spraw, aby opisy treści w selektorach dnia i roku w DatePicker były parametrami, które można dostosować do różnych języków. (I5dcd9, b/430563857)
  • Wprowadzenie adaptacyjnych częstotliwości wyświetlania w GestureIndicators w zależności od tego, czy wskaźnik jest renderowany wewnątrz, czy na zewnątrz komponentu interfejsu hosta. (Ic618f, b/515071642)
  • Rozwiązaliśmy problem z jednoczesnym wykonywaniem gestów jedną ręką (I7b95f, b/512086558).

Wersja 1.7.0-alpha04

3 czerwca 2026 r.

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

Zmiany w interfejsie API

  • Dodano funkcje RevealState.drag(), SwipeToRevealDragScope i udostępniono niestandardową funkcję flingBehavior w SwipeToReveal, aby umożliwić programowe sterowanie gestami przesuwania, przesunięciami i animacjami zatrzymania. (Ibfe56, [b/484185090]
  • Rozszerzono OneHandedGestureIndicator, aby obsługiwać zarówno działania główne, jak i odrzucanie. Przeniesiono architekturę powiązań do InteractionSource w celu automatycznego zarządzania cyklem życia. (I7e893, [b/512836472]
  • Dodano nowe przewijanie oparte na gestach w przypadku komponentów opartych na ScalingLazyColumn i okien alertów. Ta aktualizacja wprowadza domyślne przewijanie ekranu o 50% dla lepszej przewidywalności i opcjonalny tryb przyciągania do elementu, który umożliwia precyzyjną nawigację. (Ie9cfb, [b/509639667]
  • Zastąp flagę isOneHandedGesturesInAlertDialogEnabled w bibliotece Wear Compose Material3 flagą LocalOneHandedGestureEnabled CompositionLocal, której można używać do wyłączania gestów wykonywanych jedną ręką w hierarchiach komponentów. (Ib9240, [b/516777416]
  • Wycofano ButtonDefaults.ExtraSmallIconSize i ButtonDefaultsSmallIconSize. Te domyślne wartości były specyficzne dla CompactButton i zostały przeniesione do CompactButtonDefaults.ExtraSmallIconSize i CompactButtonDefaults.SmallIconSize. (Id747c, [b/513588028]

Poprawki błędów

  • Naprawiono animację EdgeButton podczas szybkiego przesunięcia. (I88215, [b/512700520]
  • Naprawiono problem z nieaktualizowaniem się AppScaffold TimeText podczas rekompozycji. (Iecea5, [b/512439755]
  • ScreenScaffold musi wyraźnie używać PaddingValues dostarczonego przez funkcję lambda treści wewnętrznych. (I20d71, [b/512355364]
  • Wprowadziliśmy adnotacje @FrequentlyChangingValue i @RememberInComposition, aby wyświetlać ostrzeżenia narzędzia lint i zapobiegać problemom z wydajnością spowodowanym przez odczytywanie częstych aktualizacji stanu lub niezapamiętywanie obiektów podczas tworzenia. (I955f4, [b/409488336]
  • Upewnij się, że efekt rozchodzenia się fali rozpoczyna się od środka przycisku, gdy w przypadku komponentów Button zostanie wywołany gest jedną ręką. (Ie61ec, [b/514600304]
  • Rozwiązaliśmy problem z kolizją kluczy w Modifier.oneHandedGesture, uwzględniając w automatycznie generowanym kluczu działanie gestu i priorytet. (I49760, [b/517045657]

Wersja 1.7.0-alpha03

19 maja 2026 r.

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

Zmiany w interfejsie API

  • Dodaj element niekomponowalny Modifier.oneHandedGesture(), jeśli deweloper chce podać klucz ręcznie. (I191e1, b/504712626)
  • Usunięcie wskaźników gestów z OneHandedGestureDefaults i dodanie obsługi kolorów do gestów wykonywanych jedną ręką (I7934f, b/505009712, b/504712626)
  • Dodaliśmy wyraźną obsługę gestów zamykania jedną ręką w AlertDialog. (Id71e8, b/509675781)
  • DeferredTargetAnimation nie jest już eksperymentalną funkcją. Zrezygnuj z niej. (I1e4ae, b/500030165)

Poprawki błędów

  • Rozwiązaliśmy problem z jednoczesnym wykonywaniem gestów jedną ręką (I7b95f, b/512086558).
  • Naprawiono problem z tym, że wskaźniki gestów wykonywanych jedną ręką były odzwierciedlane na podstawie orientacji nadgarstka, a nie LayoutDirection. (I6db5d, b/512003346)
  • Poprawiono rysowanie obramowania elementów TLC (I0c3c1, b/510772213)
  • Dodano podglądy obrazów w tekście dla przykładów w Kdoc w przypadku plików SurfaceTransformation.kt, SwitchButton.kt i TextButton.kt. Obrazy te będą teraz renderowane w dokumentacji stron DAC Wear Compose Material 3, dzięki czemu deweloperzy będą mogli od razu zobaczyć kontekst wizualny każdej wersji przycisku i każdego przykładu. (Ib53ae, b/484905061)
  • Dodano podgląd obrazów wbudowanych dla wszystkich przykładów w Kdoc w pliku Button.kt. Obrazy te będą teraz renderowane bezpośrednio w dokumentacji na stronach DAC Wear Compose Material 3, co zapewni deweloperom natychmiastowy kontekst wizualny dla każdego wariantu przycisku i przykładu. (Ie2fb5, b/484905061)
  • Dodano podglądy wbudowanych obrazów do przykładów w KDoc w Card.kt, IconButton.kt, LevelIndicator.kt i ListHeader.kt. Te obrazy będą teraz renderowane w dokumentacji na stronach DAC Wear Compose Material 3. (I371bc, b/484905061)
  • Dodaliśmy podglądy obrazów w tekście w przypadku przykładów w KDoc dla języków Picker, SegmentedCircularProgressIndicator, Slider i Stepper. Obrazy te będą teraz renderowane w dokumentacji stron DAC biblioteki Wear Compose Material 3, dzięki czemu deweloperzy będą mogli od razu zobaczyć kontekst wizualny tych komponentów i przykładów. (I6c6ef, b/484905061)
  • Dodano podglądy obrazów wbudowanych w przykładach w KDoc dla CheckboxButton, SplitCheckboxButton, CircularProgressIndicator, ConfirmationDialog, SuccessConfirmationDialog, FailureConfirmationDialog i curvedText. Obrazy te będą teraz renderowane w dokumentacji stron DAC biblioteki Wear Compose Material 3, dzięki czemu deweloperzy będą mogli od razu zobaczyć kontekst wizualny tych komponentów i przykładów. (Ie4662, b/484905061)
  • Fix AlertDialogScreenshotTest test (I9be58, b/508678506)
  • Dodaliśmy podglądy obrazów w treści w przypadku przykładów w KDoc dla NonClickableCard, OpenOnPhoneDialog, VerticalPageIndicator, VerticalPagerScaffold i RadioButton. Obrazy te będą teraz renderowane w dokumentacji stron DAC biblioteki Wear Compose Material 3, dzięki czemu deweloperzy będą mogli od razu zobaczyć kontekst wizualny tych komponentów i przykładów. (I2aa2d, b/484905061)

Wersja 1.7.0-alpha02

6 maja 2026 r.

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

Poprawki błędów

  • Stały rozmiar GestureIndicator w AlertDialogs (I0c16e, b/504912009)
  • Dostosowano LeftRevealed/RightRevealed kotwice elementu SwipeToReveal w celu ujawnienia pozycji poza zakresem. (Id84ff, b/498681589)
  • Dodanie opisu stanu do Checkbox i Switch (Iba12e, b/485098874)
  • Naprawiliśmy błąd wizualny w FadingExpandingLabel, który powodował, że stary tekst migał, gdy zmniejszała się liczba wierszy. (Ia40c9, b/503709020)
  • Dodanie domyślnej obsługi gestów jedną ręką do Material3 AlertDialog (I5848e, b/479098589)
  • Usunięto wbudowaną logikę widoczności w przypadku obsługi jedną ręką (I8c602, b/502903320)

Wersja 1.7.0-alpha01

8 kwietnia 2026 r.

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

Zmiany w interfejsie API

  • Wprowadziliśmy nowy interfejs API do obsługi gestów wykonywanych jedną ręką, w którym można rejestrować wywołania zwrotne o wyższym priorytecie w przypadku działań podstawowych i zamykających. System automatycznie identyfikuje najbardziej odpowiedni element na ekranie, aby mieć pewność, że gesty i ich wskaźniki są uruchamiane tylko w przypadku elementów, które użytkownik może obecnie zobaczyć i z którymi może wejść w interakcję. Dodaj Modifier.oneHandedGesture do elementu kompozycyjnego powiązanego z gestem (np. przycisku) i użyj OneHandedGestureDefaults.GestureIndicator, aby wskazać użytkownikowi, kiedy działanie gestu jest dostępne. Przewijanie i stronicowanie można też wywoływać za pomocą gestu podstawowego. W wywołaniach zwrotnych zaleca się używanie wartości OneHandedGestureDefaults.scrollDown i OneHandedGestureDefaults.scrollToNextPage. OneHandedGestureDefaults.ScrollGestureIndicator i OneHandedGestureDefaults.VerticalPageGestureIndicator są alternatywami dla ScrollIndicator i PageIndicator, które służą do tymczasowego wyświetlania wskaźnika gestu użytkownikowi. (Ic6324, b/479098447, b/485488443)
  • Dodaliśmy requestAnchorItem do TransformingLazyColumnState i wprowadziliśmy TransformingLazyColumnAnchorType, aby zapewnić deweloperom precyzyjną kontrolę nad kierunkiem rozwijania elementu i zakotwiczeniem układu. (I0c1e6, b/494301025)
  • Dodano flagę isSwipeToRevealDualFlingThresholdEnabled, która jest domyślnie włączona, ale można ją wyłączyć, jeśli poprawki błędów w gestach przesuwania w SwipeToReveal w tej wersji spowodują regresję (w takim przypadku jak najszybciej zgłoś błąd) (Ie6db6, b/497743775).

Poprawki błędów

  • Ulepszona funkcja SwipeToReveal, która obsługuje szybkie przesunięcia, dzięki czemu użytkownicy mogą w pełni wyświetlać działania niezależnie od odległości przesunięcia (tę zmianę można wyłączyć, wyłączając flagę isSwipeToRevealDualFlingThresholdEnabled). (I833fd, b/490728860)
  • Naprawiono SwipeToReveal, aby wywoływać pełne przesunięcie po przesunięciu palcem na ponad 75% szerokości ekranu (tę zmianę można wyłączyć, wyłączając flagę isSwipeToRevealDualFlingThresholdEnabled). (Id5604, b/490728860)
  • Dodano drugie wibracje dla SwipeToReveal, gdy przesunięcie osiągnie stan częściowego odsłonięcia (tę zmianę można wyłączyć, wyłączając flagę isSwipeToRevealDualFlingThresholdEnabled). (Ic27e3, b/492273799)
  • Rozwiązaliśmy problem w TransformingLazyColumn, który powodował, że animacje elementów (Modifier.animateItem) przestały działać. (I904ec, b/493167084)
  • Naprawiono błąd w PickerGroup (a tym samym w DatePicker), aby zapobiec powodowaniu przez wielokrotne dotknięcia zamierzonego przewijania w niezaznaczonych kolumnach selektora (Id76c5, b/378646798).

Wear Compose w wersji 1.6

Wersja 1.6.2

19 maja 2026 r.

Publikacja androidx.wear.compose:compose-*:1.6.2 Wersja 1.6.2 zawiera te zmiany.

Poprawki błędów

  • Naprawiono rysowanie obramowania elementów TransformingLazyColumn (I0c3c1, b/510772213)

  • Napraw przypisanie itemSpacing w strategii pomiaru dopełnienia treści TransformingLazyColumn (I12d2f, b/498137919)

Wersja 1.6.1

8 kwietnia 2026 r.

Publikacja androidx.wear.compose:compose-*:1.6.1 Wersja 1.6.1 zawiera te zmiany.

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że animacje elementów (za pomocą Modifier.animateItem) przestały działać w TransformingLazyColumn. (I904ec, b/493167084)

Wersja 1.6.0

25 marca 2026 r.

Publikacja androidx.wear.compose:compose-*:1.6.0 Wersja 1.6.0 zawiera te zmiany.

Ważne zmiany od wersji 1.5.0:

  • Wprowadziliśmy bibliotekę Wear Compose Navigation3, która integruje się z komponentami NavDisplay i SceneStrategy biblioteki Navigation 3, dodając logikę odrzucania przez przesunięcie na urządzeniach z Wear OS za pomocą nowego komponentu SwipeDismissableSceneStrategy.
  • Dodano obsługę TransformingLazyColumn dla reverseLayout, przyciąganie za pomocą TransformingLazyColumnDefaults.snapFlingBehavior i Modifier.minimumVerticalContentPadding, co umożliwia zdefiniowanie preferowanego dopełnienia treści dla elementów na liście, gdy znajdują się one na górnej lub dolnej krawędzi.
  • Dodaliśmy nowe przeciążenia funkcji AlertDialog, które używają parametru TransformingLazyColumn, aby zachować spójność z przewijaniem na innych ekranach Material 3.
  • Ulepszone renderowanie zakrzywionego tekstu, zwłaszcza w przypadku czcionek pisanych, dzięki wprowadzeniu zniekształcania tekstu za pomocą nowego parametru CurvedTextStyle warpOffset, który jest domyślnie włączony w przypadku interfejsu API w wersji 34 i nowszych.
  • Dodano LocalAmbientModeManager, nowy CompositionLocal, który umożliwia definiowanie różnych interfejsów i zachowań w trybach interaktywnym i otoczenia.
  • Pełniejszą listę funkcji wprowadzonych w wersji 1.6.0 znajdziesz w informacjach o wersji beta01.

Wersja 1.6.0-rc01

11 marca 2026 r.

Publikacja androidx.wear.compose:compose-*:1.6.0-rc01 Wersja 1.6.0-rc01 zawiera te zmiany.

  • Ta wersja aktualizuje Compose na Wear OS 1.6.0 do wersji kandydującej do publikacji, ale nie wprowadza żadnych znaczących zmian w porównaniu z wersją 1.6.0-beta01.

Wersja 1.6.0-beta01

25 lutego 2026 r.

Publikacja androidx.wear.compose:compose-*:1.6.0-beta01 Wersja 1.6.0-beta01 zawiera te zmiany.

Wersja 1.6.0-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany (z wyjątkiem funkcji oznaczonych jako eksperymentalne). Wear Compose w wersji 1.6.0-beta01 zawiera te nowe funkcje:

  • Biblioteka Wear Compose Navigation3, która integruje się z komponentami NavDisplay i SceneStrategy biblioteki Navigation 3, dodając logikę odrzucania przez przesunięcie, która jest specyficzna dla Wear i korzysta z naszego nowego komponentu SwipeDismissableSceneStrategy.
  • Dodano obsługę TransformingLazyColumn w przypadku reverseLayout, przyciąganie za pomocą TransformingLazyColumnDefaults.snapFlingBehavior i Modifier.minimumVerticalContentPadding, co umożliwia zdefiniowanie preferowanego dopełnienia treści w przypadku elementów na liście, gdy znajdują się one na górnej lub dolnej krawędzi.
  • Dodaliśmy nowe przeciążenia funkcji AlertDialog, które używają parametru TransformingLazyColumn, aby zachować spójność z przewijaniem na innych ekranach Material 3.
  • Ulepszone renderowanie zakrzywionego tekstu, zwłaszcza w przypadku czcionek pisanych, dzięki wprowadzeniu zniekształcania tekstu za pomocą nowego parametru CurvedTextStyle warpOffset, który jest domyślnie włączony w przypadku interfejsu API w wersji 34 i nowszych.
  • Dodano LocalAmbientModeManager, nowy CompositionLocal, który umożliwia definiowanie różnych interfejsów i zachowań w trybach interaktywnym i otoczenia.
  • Zaktualizowaliśmy TimePicker, aby obsługiwać nowy typ MinutesSeconds i uwzględnić nowy parametr initialSelection do określania początkowo wybranego komponentu czasu.
  • Nowe przeciążenia na kartach, które zapewniają warianty nieklikane, w których karty mają charakter prezentacyjny i nie są przeznaczone do reagowania na kliknięcia użytkownika.
  • Dodano LocalRippleConfiguration, aby zapewnić kontrolę nad wyglądem efektu falowania.
  • Wprowadziliśmy parametr snapSensitivity dla RotaryScrollableDefaults.snapBehavior, a PagerScaffoldDefaults zawiera teraz rekomendowane wartości domyślne dla SnapPositionalThreshold i HighSnapPositionalThreshold do użycia z PagerDefaults.snapFlingBehavior.

Zmiany w interfejsie API

  • Zmieniliśmy nazwy zalecanych wartości domyślnych dla Modifier.minimumVerticalContentPadding z minimumListVerticalContentPadding na minimumVerticalListContentPadding, aby podkreślić, że to dopełnienie treści odnosi się do listy. Zaktualizowaliśmy też powiązaną dokumentację. (I496ca, b/426154225)
  • Zakrzywiony tekst jest teraz domyślnie zniekształcany, co poprawia jego renderowanie, zwłaszcza w przypadku czcionek pisanych. (I6979d, b/450526792, b/481617443)

Poprawki błędów

  • Naprawiono interakcję między TLC animateItem i minimumVerticalContentPadding. (Ia865c, b/483663045)
  • Zniekształcone przesunięcie w przypadku zakrzywionego tekstu jest teraz domyślnie włączone tylko w przypadku interfejsu API w wersji 34 i nowszych ze względu na zależność od PathIterator z biblioteki androidx.graphics.path, która jest niedostępna do testowania przez deweloperów w Robolectric przed interfejsem API w wersji 34 (co powoduje przerwanie istniejących testów deweloperskich). (Ie5bae, b/484319336)
  • Ulepszanie zniekształconego, zakrzywionego tekstu. (If2b34, b/483390353)
  • Zaktualizowano ConfirmationDialogDefaults.SuccessIcon, aby ignorować kierunek układu od prawej do lewej, dzięki czemu znacznik wyboru nie jest odwrócony. (Ic6add, b/481966029)

Wersja 1.6.0-alpha10

11 lutego 2026 r.

Publikacja androidx.wear.compose:compose-*:1.6.0-alpha10 Wersja 1.6.0-alpha10 zawiera te zmiany.

Zmiany w interfejsie API

  • Zmieniliśmy nazwę Modifier.responsiveVerticalPadding na Modifier.minimumVerticalContentPadding, a parametry dopełnienia to Dp, zamiast interfejsu ResponsiveVerticalPadding. Przeniesiono zalecane wartości domyślne z ResponsiveVerticalPaddingDefaults do obiektów domyślnych specyficznych dla komponentów, takich jak ButtonDefaults, CardDefaults itp. (Icaab2, b/426154225)
  • Dodano WearComposeFoundationFlags.isTransformingLazyColumnClickableThresholdEnabled, aby kontrolować nową funkcję wprowadzoną w przypadku TransformingLazyColumn, która teraz ignoruje kliknięcia poza progiem 20 dp u góry i u dołu układu, aby zapobiegać przypadkowym kliknięciom, gdy element jest widoczny tylko częściowo. Zaktualizowano też zmianę, aby przechwytywać tylko kliknięcia elementów na krawędzi w przypadku zdarzeń, które mieszczą się w zakresie tolerancji dotyku, aby uniknąć ignorowania gestów przeciągania. (I1ba28, b/480910891)
  • rememberAmbientModeManager w swojej implementacji używa teraz LocalActivity do uzyskiwania bieżącej aktywności, zamiast przyjmować ją jako parametr (Idf114, b/473603258).
  • Zmieniono AmbientMode, aby była niewyczerpująca, co zwiększa możliwości rozszerzalności (I92cc3, b/473603258)
  • Zaktualizowano rememberSwipeDismissableSceneStrategyState, aby usunąć parametr swipeToDismissBoxState, ponieważ jest to szczegół implementacji tylko w przypadku interfejsu API w wersji 35 (I5907c, b/476105162).
  • [TLC] Dodano Modifier.responsiveVerticalPadding do TransformingLazyColumn, co umożliwia automatyczne dostosowywanie dopełnienia treści w celu dopasowania do wytycznych dotyczących interfejsu Material 3 w Wear OS. (Ia7e73, b/426154225)

Poprawki błędów

  • Zaktualizowano warunek TransformingLazyColumn wstępnego pobierania, aby pilność była obliczana na podstawie krawędzi obszaru widocznego bez dopełnienia (I48d85, b/476420552).
  • Picker obsługuje teraz płynną przezroczystość w przypadku niestandardowych teł, takich jak gradienty lub obrazy, przekazując Color.Unspecified jako gradientColor selektora. W przypadku systemów TimePicker i DatePicker ten efekt można osiągnąć, lokalnie zastępując wartość MaterialTheme.colorScheme.background wartością Color.Unspecified. (Icc476, b/458429791, b/458429791)
  • Wprowadziliśmy próg klikalności 20 dp dla elementów TransformingLazyColumn u góry i u dołu ekranu, aby zapobiegać przypadkowym kliknięciom, gdy elementy są w dużej mierze ukryte. (I2c9cb, b/443285887)
  • Ulepszona obsługa ograniczenia animacji w OpenOnPhoneDialog. (Ib1d12, b/48558283)

Wersja 1.6.0-alpha09

28 stycznia 2026 r.

Publikacja androidx.wear.compose:compose-*:1.6.0-alpha09 Wersja 1.6.0-alpha09 zawiera te zmiany.

Zmiany w interfejsie API

  • Zmień nazwę PagerScaffoldDefaults.SnapPositionalThreshold na LowSnapPositionalThreshold i RotaryScrollableDefaults.SnapSensitivity na LowSnapSensitivity (I157ee, b/449949891)
  • Usunięto modyfikator z elementu SwipeDismissableSceneStrategy. (Iff30f, b/449949891)

Poprawki błędów

  • Naprawiono opóźnienie animacji przewijania obrotowego w przypadku zachowania przyciągania (I7db89, b/474016470)
  • Naprawiono blokowanie SwipeDismissableSceneStrategy przez system na API w wersji 36 lub nowszej (Icf20b, b/476105162)
  • Poprawiono animację SwitchButton, aby była skalowana lub zanikała jako pełny kształt (I7a7eb, b/378644361)
  • Ulepszenie animacji rotacji ikony wyboru CheckboxButton (I89944, b/378646769)

Wersja 1.6.0-alpha08

14 stycznia 2026 r.

Publikacja androidx.wear.compose:compose-*:1.6.0-alpha08 Wersja 1.6.0-alpha08 zawiera te zmiany.

Zmiany w interfejsie API

  • Funkcja RotaryScrollableDefaults.snapBehavior została zaktualizowana, aby przyjmować parametr zmiennoprzecinkowy snapSensitivity, a funkcja PagerScaffoldDefaults udostępnia teraz zalecane wartości domyślne SnapPositionalThreshold i HighSnapPositionalThreshold do użycia z funkcją PagerDefaults.snapFlingBehavior. (I7e11c, b/449949891)
  • Dodaliśmy obsługę przyciągania do elementu TransformingLazyColumn w przypadku sterowania dotykowego i obrotowego. Podczas konfigurowania przyciągania zalecamy podanie zarówno flingBehavior za pomocą TransformingLazyColumnDefaults.snapFlingBehavior, jak i rotaryScrollableBehavior za pomocą RotaryScrollableDefaults.snapBehavior, aby zapewnić spójne działanie. (I5326f, b/422455104)
  • Wprowadzono LocalAmbientModeManager, nowy komponent, który umożliwia łatwe definiowanie różnych interfejsów i zachowań w trybach interaktywnym i otoczenia. (I00161, b/427724331)

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że listy z funkcją przyciągania obrotowego nie wracały po przewinięciu poza zakres. (I05216, b/470317969)
  • Rozwiązaliśmy problem z efektem fali przycisków zwiększania i zmniejszania w suwaku Material3. Efekt rozchodzenia się fali obejmuje teraz całą szerokość komponentu suwaka. (I8c0c4, b/378658409)

Wersja 1.6.0-alpha07

17 grudnia 2025 r.

Publikacja androidx.wear.compose:compose-*:1.6.0-alpha07 Wersja 1.6.0-alpha07 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodano artefakt biblioteki wear-compose:compose-navigation3 (I01b5c, b/427463127)
  • Dodaliśmy SwipeDismissableSceneStrategy do integracji Wear z Navigation3. Można go używać z NavDisplay do wyświetlania treści Wear Compose. (I7aa08, b/427463127)
  • Wprowadzamy ResponsiveTransformingLazyColumn, nowy komponent Material3, który bazuje na TransformingLazyColumn z biblioteki Wear Compose Foundation i automatycznie oblicza oraz stosuje responsywny pionowy odstęp na podstawie typu treści na liście. (I102f4, b/426154225)

Poprawki błędów

  • Rozwiązaliśmy problem polegający na tym, że element PageIndicator nie był prawidłowo odświeżany, gdy zmieniał się bieżący indeks strony w elemencie PagerState (np. przez wywołanie funkcji scrollToPage() lub użycie funkcji animateScrollToPage() z ograniczonym ruchem). (I97150, b/465669950)
  • Poprawianie semantyki TransformingLazyColumn obliczeń scrollOffset (Idec30, b/417941554)
  • Poprawiono dopełnienie działania cofania SwipeToReveal (I770f8, b/382259843)
  • Wdrożono PredictiveBackScene do obsługi Navigation3 w przypadku interfejsu API w wersji 36 lub nowszej. (Idedf6, b/427463127)

Wersja 1.6.0-alpha06

3 grudnia 2025 r.

Publikacja androidx.wear.compose:compose-*:1.6.0-alpha06 Wersja 1.6.0-alpha06 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodano LocalRippleConfiguration, aby umożliwić kontrolowanie wyglądu efektu fali (I9e0fa, b/382336566)
  • Dodaliśmy nowe przeciążenia dla funkcji AlertDialog, które używają funkcji TransformingLazyColumn, aby zapewnić zaawansowaną kontrolę nad animacjami przewijania elementów. Dodano ulepszenia układu na większych ekranach. (I862ff, b/438468382)
  • Dodano parametr przekształcenia do ButtonGroup, do użycia z dynamicznie zmieniającymi się kontenerami, takimi jak TransformingLazyColumn. (I8743b, b/453710565)

Poprawki błędów

  • Rozwiązanie problemu z tytułem AlertDialog oraz przyciskami potwierdzenia i odrzucenia, które pojawiają się wielokrotnie w kompozycji (I8e1b0, b/463955367)
  • Zwiększ niezawodność kodu TimeText podczas nasłuchiwania zmian TimeZone. (I1c276, b/457909952)
  • Zwiększyliśmy wydajność funkcji SplitRadioButton i SplitCheckboxButton, zmniejszając liczbę ponownych kompozycji. (I3ddc9, b/455845192)

Wersja 1.6.0-alpha05

19 listopada 2025 r.

Publikacja androidx.wear.compose:compose-*:1.6.0-alpha05 Wersja 1.6.0-alpha05 zawiera te zmiany.

Zmiany w interfejsie API

  • Wprowadzamy RotarySnapSensitivity dla zachowania przyciągania obrotowego i PagerSensitivity dla zachowania przewijania strony, aby umożliwić aplikacjom dostosowywanie poziomu czułości zachowania obrotowego i przewijania, zwłaszcza w przypadku stron. (Ic3a83, b/449949891)
  • Uproszczone zmiany w funkcji rememberTransformingLazyColumnState, które zostały wprowadzone wraz z odwróconym układem dla funkcji TransformingLazyColumn, polegające na połączeniu w jedną funkcję i użyciu wartości wartowniczej do używania domyślnego indeksu punktu zakotwiczenia. (I09302, b/453731755)
  • Dodaliśmy nowy domyślny element GenericFailureIcon, który będzie używany w FailureConfirmationDialog. Wyświetla on ogólną ikonę błędu. Zmieniono nazwę istniejącego elementu FailureIcon na ConnectionFailureIcon. (I8e965, b/453730430)

Poprawki błędów

  • Zwiększyliśmy TimePicker odporność na błędy podczas analizowania złożonych wzorców ustawień regionalnych. (I7b169, b/456538838)
  • Naprawiono początkowy układ TransformingLazyColumn, gdy verticalArrangement ma wartość Arrangement.Center. (Id18ef, b/451481233)
  • Dostosowano konstruktor TransformingLazyColumnState do funkcji rememberTransformingLazyColumnState (I36d6a, b/453731755)
  • Zaktualizowaliśmy ikonę zaznaczenia w przypadku CheckboxButton, aby była zaokrąglona. (Ie645e, b/378645751)
  • Zaktualizowano ikonę zaznaczenia w przypadku SwitchButton, aby była zaokrąglona. (I31fbf, b/378642590)
  • Poprawiono przesunięcie scrollToItem w TransformingLazyColumn, które odwracało kierunek przewijania. (Ib2c93, b/451481233)
  • Poprawiona wydajność SwitchButton i SplitSwitchButton. (I708de, b/448781327)

Wersja 1.6.0-alpha04

22 października 2025 r.

Publikacja androidx.wear.compose:compose-*:1.6.0-alpha04 Wersja 1.6.0-alpha04 zawiera te zmiany.

Zmiany w interfejsie API

  • Wdrażanie reverseLayout w przypadku TransformingLazyColumn (I19f9e, b/352513793)
  • Dodano ConfirmationDialogDefaults.VariantFailureIcon do użycia w FailureConfirmationDialog. Ta nowa ikona błędu ogólnego może być w niektórych przypadkach lepsza od ikony ConfirmationDialogDefaults.FailureIcon, która wskazuje na zerwane połączenie z telefonem. (Ifc851, b/443115305)

Poprawki błędów

  • Poprawiliśmy wydajność selektora, refaktoryzując użycie LaunchedEffect. (I94519, b/418192973)
  • Usunęliśmy błąd w SwipeDismissableNavHost na API36+, który powodował, że naciśnięcie przycisku Wstecz podczas animacji przewidywanego przejścia wstecz przerywało i ponownie uruchamiało animację. Implementacja korzysta teraz z SeakableTransitionState.animateTo zamiast Animatable, co zapewnia niewielki wzrost wydajności. (I2241f, b/428156670)
  • Naprawiliśmy błąd związany z kolejnością komunikatów ułatwień dostępu w AlertDialog, w którym przycisk potwierdzenia był odczytywany jako „Przycisk”. Potwierdź” zamiast standardowego „Potwierdź”. Przycisk”. (Ic2381, b/429378202)
  • Popraw widoczność liczby TimePicker na małych ekranach. (I68386, b/447625365)
  • Usunięto rozwidlenie Lazy Layout z Wear Compose Foundation – oznacza to, że TransformingLazyColumn korzysta teraz z implementacji Lazy Layout w Compose Foundation, w tym z wstępnego pobierania, i w większości przypadków zyskuje poprawę wydajności w zakresie czasu trwania klatek. (Idd743, b/445911630)

Wersja 1.6.0-alpha03

8 października 2025 r.

Publikacja androidx.wear.compose:compose-*:1.6.0-alpha03 Wersja 1.6.0-alpha03 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodano parametr do TimePicker, aby określić początkowo zaznaczony komponent czasu. Domyślnie wybierany jest pierwszy dostępny komponent na podstawie ustawień regionalnych i TimePickerType. (Ie5dfe, b/437015874)
  • Usunęliśmy nieużywany parametr targetProgress w metodzie CircularProgressIndicator drawCircularProgressIndicator. (Ieeb3c, b/430544552)

Poprawki błędów

  • Wprowadziliśmy brakującą obsługę TransformingLazyColumn verticalAlignment – teraz obsługuje standardowe układy u góry, u dołu lub na środku. (I2e630, b/444143326)
  • Ulepszono obliczanie szerokości zakrzywionego tekstu, aby uwzględniać spacje przed i po tekście (może to spowodować nieprawidłowe działanie zrzutów ekranu zawierających zakrzywiony tekst, zwłaszcza gdy ma on tło, np. TimeText). (I924a4, b/446601899)
  • Zaktualizowano WarpedCurvedTextRenderer w Compose Foundation, aby wybrać EmojiCompatInitializer zamiast androidx.emoji2 i naprawić błąd klasy środowiska wykonawczego. (I589b4, b/444422736)
  • Zaktualizowano instancję ScalingLazyColumn, aby skupiała się na węźle z możliwością przewijania z wartością CollectionInfo, dzięki czemu działa z elementem obrotowym w większej liczbie kontekstów, np. na urządzeniu Material3 AlertDialog. (I6be3c, b/445332360)

Wersja 1.6.0-alpha02

24 września 2025 r.

Publikacja androidx.wear.compose:compose-*:1.6.0-alpha02 Wersja 1.6.0-alpha02 zawiera te zmiany.

Zmiany w interfejsie API

  • Ulepszone renderowanie zakrzywionego tekstu, zwłaszcza w przypadku czcionek pisanych, dzięki wprowadzeniu zniekształcania tekstu za pomocą nowego parametru CurvedTextStyle warpOffset. (If5dcb)

Poprawki błędów

  • Optymalizacja buforowania animacji elementów podczas przewijania w TransformingLazyColumn. (I62ae8)
  • Warianty OpenOnPhoneDialog i ConfirmationDialog zostały zaktualizowane, aby ustawić FLAG_KEEP_SCREEN_ON, dzięki czemu animacje będą się odtwarzać do końca, a okna dialogowe będą się zamykać zgodnie z zamierzeniem. (Iad7d4)
  • Rozwiązaliśmy problem, który powodował awarię Modifier.edgeSwipeToDismiss, gdy był używany z SwipeDismissableNavHost w przypadku interfejsu API w wersji 36 lub nowszej. (Ifc13d)
  • Zaktualizowaliśmy dokumentację i komentarze powiązane z nowym parametrem CurvedTextStyle warpOffset, aby prawidłowo odnosiły się do przypadku „Nieokreślono”. (I41aa5)

Wersja 1.6.0-alpha01

10 września 2025 r.

Publikacja androidx.wear.compose:compose-*:1.6.0-alpha01 Wersja 1.6.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodano warianty, w które nie można kliknąć, dla Card, TitleCard, OutlinedCard i AppCard (I509bb, b/406690146)
  • Usunęliśmy parametr interactionSource z nowych interfejsów API kart, w które nie można kliknąć. (If0c7a, b/440323280)
  • Dodano nowy typ MinutesSeconds do komponentu TimePicker, który wyświetla tylko kolumny minut i sekund, pomijając kolumnę godzin (Ia9e94, b/438004664).

Poprawki błędów

  • Poprawić użycie parametru modyfikatora HorizontalPagerScaffold, aby HorizontalPager nie tracił wskaźnika strony, jeśli dodany zostanie parametr Modifier.fillMaxSize() (I07ae1, b/441682601)
  • Domyślnie dopasuj kierunek ScrollIndicator do kierunku układu treści. (I0da0f, b/441489028)
  • Rozwiązaliśmy problem z ScrollAway podczas korzystania z TransformingLazyColumn. TimeText nie przewijał się prawidłowo po przejściu na inny ekran i powrocie. (Ic0ef1, b/433549148)
  • Poprawione raportowanie TransformingLazyColumn semantyki SCROLL_BACKWARDS i SCROLL_FORWARDS w przypadku skrajnych sytuacji u góry lub u dołu ekranu. (I5c28d, b/405205994)
  • Rozwiązanie problemu w SwipeDismissableNavHost, który powodował, że w przypadku API 36 trwające przejścia nie były oznaczane jako ukończone po przesunięciu palcem do tyłu. (Ife72e, b/441089689)
  • Zmień domyślny kąt OpenOnPhoneMaxSweepAngle na 200 stopni, aby zapobiec obcinaniu niektórych tłumaczeń frazy „Sprawdź telefon”. (Ib2e4c, b/428243902)

Wear Compose w wersji 1.5

Wersja 1.5.6

3 grudnia 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.6 Wersja 1.5.6 zawiera te zmiany.

Poprawki błędów

  • Optymalizacja buforowania animacji elementów podczas przewijania w TransformingLazyColumn. (I62ae8, b/441701460)
  • Warianty OpenOnPhoneDialog i ConfirmationDialog zostały zaktualizowane, aby ustawić FLAG_KEEP_SCREEN_ON, dzięki czemu animacje będą się odtwarzać do końca, a okna dialogowe będą się zamykać zgodnie z zamierzeniem. (Iad7d4, b/437986990)
  • Naprawiono błąd, w którym Modifier.edgeSwipeToDismiss ulegał awarii, gdy był używany z SwipeDismissableNavHost w interfejsie API w wersji 36 lub nowszej. (Ifc13d, b/441901722)

Wersja 1.5.5

5 listopada 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.5 Wersja 1.5.5 zawiera te zmiany.

Poprawki błędów

  • Popraw widoczność numeru TimePicker na małych ekranach (I70fbe)

Wersja 1.5.4

22 października 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.4 Wersja 1.5.4 zawiera te zmiany.

Poprawki błędów

  • Poprawiliśmy wydajność selektora, refaktoryzując użycie LaunchedEffect. (I94519, b/418192973)
  • Usunęliśmy błąd w SwipeDismissableNavHost na API36+, który powodował, że naciśnięcie przycisku Wstecz podczas animacji przewidywanego przejścia wstecz przerywało i ponownie uruchamiało animację. Implementacja korzysta teraz z SeakableTransitionState.animateTo zamiast Animatable, co zapewnia niewielki wzrost wydajności. (I2241f, b/428156670)
  • Naprawiliśmy błąd związany z kolejnością komunikatów ułatwień dostępu w AlertDialog, w którym przycisk potwierdzenia był odczytywany jako „Przycisk”. Potwierdź” zamiast standardowego „Potwierdź”. Przycisk”. (Ic2381, b/429378202)

Wersja 1.5.3

8 października 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.3 Wersja 1.5.3 zawiera te zmiany.

Poprawki błędów

  • Wprowadziliśmy brakującą obsługę TransformingLazyColumn verticalAlignment – teraz obsługuje standardowe układy u góry, u dołu lub na środku. (I2e630, b/444143326)

Wersja 1.5.2

24 września 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.2 Wersja 1.5.2 zawiera te zmiany.

Poprawki błędów

  • Optymalizacja buforowania animacji elementów podczas przewijania w TransformingLazyColumn. (I62ae8)
  • Warianty OpenOnPhoneDialog i ConfirmationDialog zostały zaktualizowane, aby ustawić FLAG_KEEP_SCREEN_ON. Dzięki temu animacje będą działać do końca, a okna dialogowe będą się zamykać zgodnie z zamierzeniem. (Iad7d4)
  • Rozwiązaliśmy problem, który powodował awarię Modifier.edgeSwipeToDismiss, gdy był używany z SwipeDismissableNavHost w przypadku interfejsu API w wersji 36 lub nowszej. (Ifc13d)
  • Zaktualizowaliśmy dokumentację i komentarze powiązane z nowym parametrem CurvedTextStyle warpOffset, aby prawidłowo odnosiły się do przypadku „Nieokreślono”. (I41aa5)

Wersja 1.5.1

10 września 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.1 Wersja 1.5.1 zawiera te zmiany.

Poprawki błędów

  • Poprawiono użycie parametru modyfikatora HorizontalPagerScaffold, aby element HorizontalPager nie tracił wskaźnika strony po dodaniu elementu Modifier.fillMaxSize() (I07ae1, b/441682601).
  • Domyślnie dopasuj kierunek ScrollIndicator do kierunku układu treści. (I0da0f, b/441489028)
  • Rozwiązaliśmy problem z ScrollAway podczas korzystania z TransformingLazyColumn. TimeText nie przewijał się prawidłowo po przejściu na inny ekran i powrocie. (Ic0ef1, b/433549148)
  • Poprawione raportowanie TransformingLazyColumn semantyki SCROLL_BACKWARDS i SCROLL_FORWARDS w przypadku skrajnych sytuacji u góry lub u dołu ekranu. (I5c28d, b/405205994)
  • Rozwiązanie problemu w SwipeDismissableNavHost, który powodował, że w przypadku API 36 trwające przejścia nie były oznaczane jako ukończone po przesunięciu palcem do tyłu. (Ife72e, b/441089689)
  • Zmień domyślny kąt OpenOnPhoneMaxSweepAngle na 200 stopni, aby zapobiec obcinaniu niektórych tłumaczeń frazy „Sprawdź telefon”. (Ib2e4c, b/428243902)

Wersja 1.5.0

27 sierpnia 2025 roku

Publikacja androidx.wear.compose:compose-*:1.5.0 Wersja 1.5.0 zawiera te zmiany.

Ważne zmiany od wersji 1.4.0

Pierwsza wersja biblioteki Wear Compose Material 3, która obsługuje nowy system projektowania Material 3 Expressive. Ta wersja zawiera:

  • Zaktualizowano MaterialTheme i dynamiczne motywy kolorystyczne.
  • Nowe komponenty AppScaffold, ScreenScaffold, HorizontalPagerScaffold i VerticalPagerScaffold do określania struktury ekranu i koordynowania animacji ScrollIndicator, TimeText, HorizontalPageIndicator i VerticalPageIndicator.
  • Zmieniające się kształty IconButton, TextButton, IconToggleButton i TextToggleButton z wariantami, które animują się po naciśnięciu lub zaznaczeniu.
  • EdgeButton, który ma specjalny kształt dopasowany do dolnej części ekranu.
  • ButtonGroup ma ekspresyjną grupę przycisków w rzędzie, które zmieniają kształt po dotknięciu.
  • AlertDialog i ConfirmationDialog z wariantami dla dodatkowej zawartości okna.
  • TimePicker i DatePicker.
  • Wskaźniki postępu to m.in. CircularProgressIndicator (z wariantem podzielonym na segmenty), ArcProgressIndicator i LinearProgressIndicator.

Dodatkowo Wear Compose Foundation w wersji 1.5.0 zawiera:

  • TransformingLazyColumn, czyli leniwa lista przewijana w pionie, która obsługuje skalowanie i animacje przekształcania.
  • Obsługa stronicowania w Wear Compose Foundation za pomocą HorizontalPager i VerticalPager.
  • Hierarchical Focus Groups (Hierarchiczne grupy fokusowe) – służą do dodawania adnotacji do komponentów w aplikacji, aby śledzić aktywną część kompozycji i koordynować fokus.

Więcej informacji o Material 3 Expressive na Wear OS

Dodatkowe zmiany

Wersja 1.5.0-rc02

13 sierpnia 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-rc02 Wersja 1.5.0-rc02 zawiera te zmiany.

Poprawki błędów

  • Usunęliśmy błąd w TimePicker, który powodował, że długie, zlokalizowane ciągi znaków dla okresu (AM/PM) mogły zakłócać układ. (I0fa81)

Wersja 1.5.0-rc01

30 lipca 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-rc01 Wersja 1.5.0-rc01 zawiera te zmiany.

Poprawki błędów

  • TimePicker jest teraz w pełni zależny od ustawień regionalnych użytkownika. Do określania kolejności i zawartości selektorów i separatorów używa DateFormat.getBestDateTimePattern. Rozwiązuje to problem z nieprawidłową kolejnością kolumn w przypadku języków CJK, problemy z układem od prawej do lewej w językach takich jak arabski, używa separatorów dostosowanych do języka i obsługuje formaty godzinowe 0–11 i 1–12 w zależności od ustawień regionalnych (I5d543).
  • DatePicker w niektórych regionach, np.w Chinach, Japonii i Korei, wyświetla teraz miesiąc w formacie liczbowym, aby uniknąć mieszania formatów liczbowych i językowych (np. 2025 | 07 | 02 zamiast 2025 | 7月 | 02). Ta zmiana stosuje heurystykę, która sprawdza, czy w języku używanym w danym regionie stosuje się przyrostki językowe w przypadku roku. Jeśli tak, format miesiąca jest zmieniany z tekstowego (MMM) na numeryczny (MM), aby zachować spójność. (Ia93fe)
  • W komponencie selektora pionowa przestrzeń nagłówka jest teraz stała, co zapobiega widocznemu przesunięciu po wybraniu kolumny selektora, zwłaszcza w trybie Talkback. (I7f8b7)
  • Usunęliśmy błąd ułatwień dostępu spowodowany rysowaniem elementów HorizontalPageIndicator i VerticalPageIndicator na pełnym ekranie. Wskaźniki stron nie są już wyświetlane na pełnym ekranie i będą automatycznie pozycjonowane, gdy są używane z HorizontalPagerScaffold lub VerticalPagerScaffold. Jeśli nie używasz szkieletu pagera, określ wyrównanie jawnie za pomocą modifier = Modifier.align(Alignment.BottomCenter) z HorizontalPageIndicator i modifier =Modifier.align(Alignment.CenterEnd) z VerticalPageIndicator. (I3a0ad)
  • Kierunek przesuwania w SwipeToReveal jest teraz taki sam w przypadku języków pisanych od lewej do prawej i od prawej do lewej LayoutDirections. (I6d427)
  • Przywróciliśmy SwipeToReveal wyśrodkowanie pionowe działań. Jeśli hasPartiallyRevealedState = true, pole RevealState powinno zostać zresetowane do wartości RevealValue.Covered przez osobę dzwoniącą podczas przewijania. (I6473d)
  • SwipeDismissableNavHost prawidłowo przycina treści w przypadku interfejsu API w wersji 36 i nowszych. (Ib9a44)

Wersja 1.5.0-beta06

16 lipca 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-beta06 Wersja 1.5.0-beta06 zawiera te zmiany.

Poprawki błędów

  • Napraw animację EdgeButton, gdy LazyColumn lub ScalingLazyColumn mają reverseLayout = true. (I46a1a)
  • Naprawiliśmy błąd w ScreenScaffold, który powodował, że funkcja czytania dotykiem nie działała w TalkBack, jeśli podano ScrollIndicator/PageIndicator. (I6dcee)
  • TransformingLazyColumn umożliwia teraz niestandardowe przekształcanie z TransformationSpec przez odczytywanie wartości itemHeight podanej przez TransformationSpec w malowaniu tła. (I6a599)
  • Animowane przejścia kolorów włączania/wyłączania dla elementu IconButton, aby zachować spójność z elementem IconToggleButton. (Ife10a)
  • Usunęliśmy w CircularProgressIndicator ograniczenie minimalnej sekcji, aby uniknąć zauważalnego skoku do minimalnego rozmiaru kropki podczas animacji. W ramach tej zmiany parametr targetProgress w drawCircularProgressIndicator nie jest już używany. (I33309)
  • Selektor ma teraz rolę semantyczną ValuePicker, która może być używana przez czytniki ekranu, aby zwiększyć dostępność selektorów. Selektor ma też zaktualizowane etykiety kliknięć ułatwień dostępu, które rozróżniają dostosowywanie wartości w trybie tylko do odczytu i wybieranie bieżącej wartości w innych przypadkach. (I33309)

Wersja 1.5.0-beta05

2 lipca 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-beta05 Wersja 1.5.0-beta05 zawiera te zmiany.

Poprawki błędów

  • Zaktualizowano dokumentację, aby wyjaśnić użycie Modifier.edgeSwipeToDismiss (I78cb5)
  • Rozwiązano problem polegający na tym, że w listach ładowanych na żądanie mogło się wyświetlać wiele ujawnionych elementów z symbolem SwipeToReveal (I1d4f6).
  • Kształty kontenerów w TransformingLazyColumn są teraz skalowane, aby uniknąć przycinania treści. (I9221a)
  • Etykiety TimePicker i DatePicker dla godziny/minuty/sekundy lub roku/miesiąca/dnia mają teraz semantykę nagłówka dla czytników ekranu (I77d8b).
  • Usunięto przerwę między pętlami w nieokreślonym stanie CircularProgressIndicator (Iaf0bb).
  • Naprawiliśmy błąd animacji w TransformingLazyColumn, który występował podczas usuwania elementów. (I73034)
  • Poprawiono obsługę elementów kotwiczących w TransformingLazyColumn, gdy elementy są usuwane. (I841a8)
  • PickerGroup teraz animuje selektory w poziomie, gdy automatyczne wyśrodkowywanie jest włączone i zmienia się wybrany (wyśrodkowany) selektor. (Ic82c4)

Wersja 1.5.0-beta04

18 czerwca 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-beta04 Wersja 1.5.0-beta04 zawiera te zmiany.

Poprawki błędów

  • Usunięto błąd układu w TransformingLazyColumn, w którym treści mieszczące się na ekranie były teraz prawidłowo wyrównywane od góry ekranu (I80115).
  • Rozwiązaliśmy problem z TransformingLazyColumn, który powodował nieprawidłowe skalowanie ostatniego elementu podczas przewijania do samego dołu listy z EdgeButton. Podczas przywracania układu postęp przewijania jest teraz zgodny z metodą gradientu prostego. (Iea375)
  • TransformingLazyColumn odczytuje teraz wysokość elementu w obiekcie malującym tło, co umożliwia niestandardowym obiektom TransformationSpecs implementowanie przekształceń. (I022f0)
  • SwipeToReveal teraz prawidłowo wyśrodkowuje pionowo ujawnione działania. (I4419b)
  • Usunęliśmy błąd w SwipeToReveal, który uniemożliwiał prawidłowe działanie funkcji zamykania gestem przesuwania, jeśli na ekranie były używane zarówno widoki, jak i komponowanie. (I5dc0e)
  • Usunęliśmy błąd, który powodował, że podczas przewijania działania SwipeToReveal były rysowane z pionowym przesunięciem. (I29444)
  • AlertDialog, ConfirmationDialog, OpenOnPhoneDialog i SwipeToReveal zaokrąglają teraz w górę dopełnienia i rozmiary obliczane jako procent rozmiaru ekranu. (I76367)
  • ButtonDefaults.outlinedButtonBorder now updates following enabled/disabled state changes size(If2ddd)
  • Usunęliśmy błąd wysokości EdgeButton, który występował na złożonych ekranach z komponentami Pager i ScreenScaffold. (I946e3)
  • Naprawiliśmy sytuację wyścigu, która mogła powodować zatrzymanie animacji symbolu zastępczego. (I53530)
  • Poprawiliśmy wydajność HorizontalPageIndicator i VerticalPageIndicator, rysując na płótnie. (Ifae1e)
  • Poprawiliśmy kształt przycisku EdgeButton, aby wygładzić przejścia między wielokropkiem a okręgami tworzącymi kontur. (I7721e)
  • Naprawiliśmy błąd w LevelIndicator, który powodował zatrzymywanie animacji z powodu niepotrzebnych ponownych kompozycji. (I45d08)

Wersja 1.5.0-beta03

4 czerwca 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-beta03 Wersja 1.5.0-beta03 zawiera te zmiany.

Zmiany w interfejsie API

  • OpenOnPhoneDialog odczytuje teraz tylko tekst wiadomości w TalkBack i pomija semantykę ikony. Zaktualizowaliśmy OpenOnPhoneDialogDefaults, aby usunąć z funkcji icon() parametry iconContentDescription i contentDescription. ConfirmationDialogDefaults ma teraz parametry modyfikatora w kompozycjach SuccessIcon i FailureIcon. (Id2ae2)

Poprawki błędów

  • Zmieniliśmy kolejność stosowania efektu parametrów SurfaceTransformation. Wcześniej przekształcenia stosowane do komponentów Wear Material3 były wykonywane w tej kolejności: malowanie tła, przekształcenie kontenera, przekształcenie treści. Teraz pierwsze 2 elementy są odwrócone, a między nimi stosujemy dowolny przekazany modyfikator, więc ma on wpływ na przekształcenia kontenera. Rozwiązuje to problemy, takie jak używanie efektu migotania elementu zastępczego z elementami w TLC przy użyciu parametru przekształcenia. (I786cf)
  • Dodano element RevealState.Saver, aby można było przywrócić stan elementu SwipeToReveal po ponownym utworzeniu aktywności lub procesu. Funkcja rememberRevealState domyślnie korzysta teraz z tego trybu oszczędzania. (Ie0ecb)
  • SwipeToReveal przyciski działań podstawowych i dodatkowych powinny mieć domyślnie wartość ButtonDefault.Height (naprawiono błąd, w którym przyciski o większej wysokości wypełniały maksymalną wysokość); (Ibfba1)
  • Zmieniono SwipeToReveal, aby zresetować ostatni komponent, z którym użytkownik wszedł w interakcję, gdy wykona gest przesunięcia w prawo. (Ia8450)
  • SwipeToReveal zmieniono na stan Revealing, gdy pozycja końcowa przesunięcia znajduje się między punktami zakotwiczenia ujawniania i ujawnionego, a bliżej punktu zakotwiczenia ujawniania. (If4458)
  • Treści ButtonGroup są teraz prawidłowo odwrócone w układzie od prawej do lewej (Ib378d).
  • AnimatedText obsługuje teraz kierunek tekstu od prawej do lewej (I4533c)
  • TransformingLazyColumn teraz prawidłowo zmienia rozmiar elementów po usunięciu elementu na dole (Idacab);
  • TransformingLazyColumn wykonuje teraz tylko 1 przejście pomiarowe, co zwiększa wydajność dzięki skróceniu czasu klatki. (I501a1)

Wersja 1.5.0-beta02

20 maja 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-beta02 Wersja 1.5.0-beta02 zawiera te zmiany.

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 elementu na dole. (Idacab)
  • Naprawiono błąd związany z TransformingLazyColumn, gdy lista utknęła na górze lub na dole. (I49d00)
  • OpenOnPhoneDialog w sekcji TalkBack powinien odczytywać tekst zakrzywiony, a nie opis treści ikony. (I4efe8)
  • Naprawiliśmy błąd w funkcji SwipeToReveal, który powodował, że w przypadku ustawienia wartości hasPartiallyRevealedState na false w funkcji RevealState.currentValue zgłaszano nieprawidłowy element zakotwiczenia. (I9c7cf)
  • Przyciski cofania SwipeToReveal są teraz domyślnie ButtonDefaults.Height. (I1f6c8)
  • BasicSwipeToDismissBox – poprawiliśmy wydajność, eliminując użycie elementu Canvas do rysowania nakładek. (I68f2c)
  • Rozwiązaliśmy problem z dostępnością w suwaku, który powodował, że ogłaszany odsetek nie zgadzał się z wartością po aktualizacjach (I91146).
  • Naprawiono błąd w implementacji placeholderShimmer. (Iee39b
  • TransformingLazyColumn została zwiększona dzięki optymalizacji obliczeń ScrollProgress o 30%. (I4c4cb)

Wersja 1.5.0-beta01

7 maja 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-beta01 Wersja 1.5.0-beta01 zawiera te zmiany.

Wersja 1.5.0-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany (z wyjątkiem funkcji oznaczonych jako eksperymentalne).

Wear Compose w wersji 1.5.0-beta01 zawiera bibliotekę Wear Compose Material3, która obsługuje nowy system projektowania interfejsu o nazwie Material 3 Expressive. Zalecamy przejście z Material na Material 3, aby wykorzystać nowy wygląd aplikacji i skorzystać z nowych komponentów:

  • MaterialTheme zaktualizowane i rozszerzone schematy kolorów, typografię i kształty, aby nadać projektom głębię i różnorodność.
  • Dynamiczne motywy kolorystyczne, które automatycznie generują schemat kolorów aplikacji pasujący do kolorów tarczy zegarka.
  • Nowe komponenty domyślnie automatycznie dostosowują się do większych rozmiarów ekranu.
  • Zmieniający się kształt – okrągłe komponenty przycisków, takie jak IconButton, TextButton, IconToggleButton i TextToggleButton, obsługują warianty, które animują się po naciśnięciu lub zaznaczeniu.
  • EdgeButton – nowy przycisk przylegający do krawędzi o specjalnym kształcie, przeznaczony do umieszczenia u dołu ekranu.
  • Szkielety – wprowadzenie komponentów AppScaffold i ScreenScaffold do określania struktury ekranu i koordynowania animacji ScrollIndicator i TimeText.
  • Przyciski – obsługiwane są liczne przyciski w kształcie stadionu z elastycznymi kontenerami z jednym miejscem i wariantami z wieloma miejscami na przyciski z ikonami i etykietami. CheckboxButton i SwitchButton są dostępne, gdy potrzebne są przyciski przełączania, a RadioButton to dostępny przycisk wyboru (dostępne są też „podzielone” wersje przycisków przełączania i wyboru).
  • ButtonGroup – implementuje ekspresyjną grupę przycisków w rzędzie, które zmieniają kształt po dotknięciu.
  • AlertDialog warianty obsługują przyciski OK/Anuluj lub EdgeButton.
  • ConfirmationDialog może wyświetlać wiadomość z limitem czasu, obsługującą specjalne animacje w przypadku powodzenia, niepowodzenia i otwierania na telefonie.
  • Selektory – obsługiwane są warianty TimePicker i DatePicker, a także komponenty selektora i PickerGroup do tworzenia własnych ekranów selektora.
  • ProgressIndicators – obsługiwane są okrągłe i liniowe wskaźniki postępu (CircularProgressIndicator ma warianty podzielone na segmenty i nieokreślone).
  • Karty – dostępnych jest kilka wariantów kart, w tym TitleCard, który oferuje określone układy kart z tytułem, czasem, podtytułem lub miejscami na treści. TitleCard może też mieć obraz tła, aby wzmocnić znaczenie informacji na karcie.
  • Pagers – komponenty HorizontalPagerScaffold, VerticalPagerScaffold i AnimatedPage koordynują animacje HorizontalPageIndicator i VerticalPagerIndicator. HorizontalPager i VerticalPager są dostępne w bibliotece Wear Compose Foundation.
  • Elementy zastępcze – rysuje szkieletowy kształt nad komponentem w sytuacjach, gdy nie są dostępne żadne treści tymczasowe.
  • Suwaki i kroki – zarówno suwaki, jak i kroki umożliwiają użytkownikom wybór z zakresu wartości. Suwaki są bardziej kompaktowe i można je podzielić na segmenty, a komponent Stepper zajmuje cały ekran i jest zwykle połączony z StepperLevelIndicator.
  • SwipeToReveal – służy do dodawania dodatkowych działań do komponentu, gdy zostanie on przesunięty od prawej do lewej.

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

  • TransformingLazyColumn – leniwa lista przewijana w pionie, która obsługuje skalowanie i animacje przekształcania;
  • Hierarchical Focus Groups (hierarchiczne grupy fokusowe) – służą do dodawania adnotacji do komponentów w aplikacji, aby śledzić aktywną część kompozycji i koordynować fokus.
  • Pagers – komponenty HorizontalPager i VerticalPager oparte na komponentach Compose Foundation z ulepszeniami dostosowanymi do Wear, które zwiększają wydajność i zgodność z wytycznymi Wear OS.

Zmiany w interfejsie API

  • Zaktualizowaliśmy interfejs Hierarchical Focus API – zmieniliśmy nazwę Modifier.hierarchicalFocus na Modifier.hierarchicalFocusGroup i usunęliśmy parametr wywołania zwrotnego; usunęliśmy przeciążenie Modifier.hierarchicalFocusRequester z parametrem FocusRequester; utworzyliśmy nowe interfejsy CompositionLocal i LocalScreenIsActive, aby komponenty mogły informować o tym, który ekran jest aktywny, i sprawdzać to. (I5ff7c).
  • Wycofaliśmy SwipeToReveal z Wear Compose Foundation na rzecz interfejsów API SwipeToReveal w Wear Compose Material i Wear Compose Material3. Aby nadal korzystać z interfejsów API, zastąp importy Wear Foundation SwipeToReveal importami Wear Compose Material lub Wear Compose Material3. (Ia147d).
  • Zależności Wear Compose Material3 SwipeToReveal od Foundation zostały przeniesione 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 Wear Compose Material3 SwipeToReveal API w ten sposób: dodaliśmy parametry primaryAction, onFullSwipe, secondaryAction, undoPrimaryAction, undoSecondaryAction i hasPartiallyRevealedState do funkcji kompozycyjnej SwipeToReveal; usunęliśmy możliwość dostosowywania parametrów positionalThreshold i animationSpec z RevealState; usunęliśmy parametry lastActionType, revealThreshold i szerokość z RevealState; zmieniliśmy konstruktor RevealState tak, aby akceptował RevealDirection zamiast kotwic; usunęliśmy funkcje createRevealAnchors, kotwice i bidirectionalAnchors; funkcje SwipeToRevealScope primaryAction, secondaryAction, undoPrimaryAction i undoSecondaryAction zostały zmienione na PrimaryActionButton, SecondaryActionButton, UndoActionButton i przekształcone w funkcje kompozycyjne; oznaczyliśmy RevealActionType jako wewnętrzną. (I885d0).
  • Dalsze aktualizacje interfejsu SwipeToReveal API: zmiana nazwy onFullSwipe na onSwipePrimaryAction; zmiana nazwy SwipeToRevealNonAnchoredSample, aby wskazać użycie parametru hasPartiallyRevealedState; usunięcie actionButtonHeight, ponieważ domyślna wysokość przycisku jest domyślną wysokością, a większą wysokość można ustawić za pomocą modyfikatora; usunięcie SmallActionButtonHeight z SwipeToRevealDefaults; ustawienie parametru value w konstruktorach RevealValue i RevealDirection jako prywatnego. (I465ce).

Poprawki błędów

  • Poprawiono obsługę ScreenScaffold w EdgeButton, tak aby po usunięciu elementu TransformingLazyColumn animacja EdgeButton była wyświetlana w odpowiednim miejscu. (I6d366)
  • Zaktualizowaliśmy zależności Wear Compose w bibliotekach Compose do wersji 1.8.0. (I2ef3f).
  • Zaktualizowano ruch nieokreślonego elementu CircularProgressIndicator, aby nie cofał się tymczasowo. (Ieddb1).
  • Naprawiliśmy SwipeDismissableNavHost błąd – po przesunięciu palcem do tyłu fokus nie przełączał się prawidłowo, co powodowało nieprawidłowe działanie pokrętła (dotyczyło to interfejsu API w wersji 36 lub nowszej, który korzysta z przewidywanego przejścia wstecz). (Ieddb1).
  • Zmieniona dokumentacja interfejsu Hierarchical Focus API (Idf2ff).
  • Zaktualizowaliśmy dokumentację dotyczącą przycisków i kart, aby wyjaśnić, jak parametry containerPainter i disabledContainerPainter zastępują parametry containerColor i disabledContainerColor (I4a453).
  • Cofnięto zmianę w TimeText z poprzedniej wersji, która przenosiła BroadcastReceiver do wątku instancji roboczej, ponieważ powodowała problemy w aplikacjach, które zarządzają własnymi wątkami podczas nawigacji. (I34d02).
  • Zaktualizowaliśmy przykłady selektora, aby usunąć niepotrzebne wywołania zapamiętywania i zamiast tego używać w selektorze rememberUpdatedState do zapamiętywania najnowszej funkcji lambda contentDescription. (Icb5b1).
  • Zaktualizowano style tekstu w TimePicker i DatePicker, aby zmiany czcionki nie powodowały już obcinania tekstu. (I26194).
  • ListHeader i ListSubHeader domyślnie wyrównują tekst do środka i do początku. (I78339).
  • Zaktualizowaliśmy przykłady i wersje demonstracyjne komponentów Foundation i Material Swipe to Reveal, aby ogłaszać niestandardowe działania związane z ułatwieniami dostępu (niestandardowe działania muszą być dodane jako semantyka treści, a nie w samym komponencie SwipeToReveal). (Ie92a3).
  • Zaktualizowano domyślny MaxLines ustawiony na EdgeButton treści zgodnie z jego rozmiarem – teraz wynosi on 1 w przypadku bardzo małych, 2 w przypadku małych i średnich oraz 3 w przypadku dużych. (Ie35f6).
  • Uproszczone LocalReduceMotion, aby obserwator był rejestrowany tylko raz, co zwiększa wydajność. (Ib1979).
  • Zminimalizowaliśmy liczbę ponownych rysowań w ScrollIndicator, aby zwiększyć wydajność. (Ia7a67).
  • Rozwiązaliśmy błąd w TransformingLazyColumn, który powodował, że najwyższy widoczny element na liście nie był prawidłowo skalowany, gdy element EdgeButton osiągał pełną wysokość. (I30580).

Wersja 1.5.0-alpha14

23 kwietnia 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha14 Wersja 1.5.0-alpha14 zawiera te zmiany.

Zmiany w interfejsie API

  • Wszystkie zależności pakietu Material SwipeToReveal od pakietu Foundation SwipeToReveal zostały przeniesione do pakietu Material, np. RevealValue, RevealDirection, RevealActionType, RevealState, rememberRevealState. Deweloperzy powinni zmienić importowanie tych klas i funkcji z androidx.wear.compose.foundation na androidx.wear.compose.material. (Ib7cb8)
  • Zaktualizowaliśmy interfejs API HierarchicalFocusCoordinator, aby zamiast funkcji kompozycyjnych zawierał modyfikatory.
  • Uwagi dotyczące migracji:
    • HierarchicalFocusCoordinator(function, content) można zastąpić, dodając Modifier.hierarchicalFocus(function()) do content lub do kompozycji zawierającej.
    • ActiveFocusListener { if (it) focusRequester.requestFocus() } można zastąpić, dodając Modifier.hierarchicalFocusRequester(focusRequester)
    • Inne, rzadsze zastosowania ActiveFocusListener mogą używać nowego parametru w Modifier.hierarchicalFocus.
    • focusRequester(rememberActiveFocusRequester()) można zastąpić hierarchicalFocusRequester()
    • val focusRequester = rememberActiveFocusRequester() można zastąpić remember { FocusRequester() } i dodać Modifier.hierarchicalFocusRequester(focusRequester). (Ie319a)

Poprawki błędów

  • Zwiększono próg szybkości, który gesty przesuwania muszą przekroczyć, aby wywołać zmianę stanu w przypadku tych komponentów: SwipeToReveal, BasicSwipeToDismissBox i SwipeDismissableNavHost (tylko w przypadku interfejsu API 35 i starszych wersji SwipeDismissableNavHost). (If47bf)
  • Rozwiązaliśmy problem z animacją, który występował, gdy do TransformingLazyColumn dodawano nowe elementy. (I589b2)

Wersja 1.5.0-alpha13

9 kwietnia 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha13 Wersja 1.5.0-alpha13 zawiera te zmiany.

Zmiany w interfejsie API

  • Projekty wydane w Kotlinie 2.0 wymagają użycia KGP w wersji 2.0.0 lub nowszej (Idb6b5).
  • Dodano usługę targetPage do usługi PagerState (I4de8b)

Poprawki błędów

  • Zapobiega niepotrzebnej rekompozycji podczas przewidywanego przejścia wstecz. (Iecd6d)
  • Poprawiono właściwość ScrollInfoProviderisScrollable, aby zwracała bieżącą wartość. (Icbfb8)

Wersja 1.5.0-alpha12

26 marca 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha12 Wersja 1.5.0-alpha12 zawiera te zmiany.

Zmiany w interfejsie API

  • Ulepsz domyślną implementację SwipeToReveal gestureInclusion, aby ignorować gesty tylko wtedy, gdy stan komponentu to Covered. (I7e3d6)
  • W przypadku SwipeToReveal zmieniliśmy bidirectionalGestureInclusion na wartość zamiast funkcji i dodaliśmy @FloatRange do parametru edgeZoneFraction w gestureInclusion. (Ica7c3)

Poprawki błędów

  • Zmień SwipeToReveal bidirectionalGestureInclusion, aby zwracać obiekt zamiast klasy. (I29597)
  • Wyłączone używanie haptyki podczas przeprowadzania testów w ramach RoboElectric. (I58bd1)
  • Zaktualizuj SwipeToReveal dopełnienie między treścią a przyciskami działania, a także dopełnienie między ikoną a tekstem przycisków działania. (Ic46cb)

Wersja 1.5.0-alpha11

12 marca 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha11 Wersja 1.5.0-alpha11 zawiera te zmiany.

Zmiany w interfejsie API

  • Zaktualizowano klasę PagerState, usuwając klasę bazową Compose Foundation PagerState i dodając właściwości currentPage, currentPageOffsetFraction i pageCount. Zaktualizowano interfejs GestureInclusion, zmieniając nazwę metody na ignoreGestureStart. (I4ae07)
  • Dodaj requireOffset do SwipeToDismissBoxState jako zalecany sposób uzyskania przesunięcia SwipeToDismissBoxState. (I21042)
  • Dodano CurvedModifier.semantics, początkowo obsługując opis treści i indeks przechodzenia (I0b093)
  • Dodaliśmy CurvedModifier.clearAndSetSemantics, aby umożliwić wyłączenie zakrzywionej semantyki. CurvedText nadal domyślnie ustawia opis treści na tekst, ale timeTextCurvedText i timeTextSeparator nie odczytują teraz swoich treści. (I4b568)
  • Domyślna obsługa gestów przesuwania w HorizontalPager została zmieniona na PagerDefaults.gestureInclusion. Domyślnie ignorowane są tylko gesty przesuwania, które zaczynają się na lewej krawędzi pierwszej strony, i tylko wtedy, gdy Talkback jest wyłączony. W innych przypadkach domyślnie gesty przesuwania nie są ignorowane przez pager, więc nie są dostępne dla modułów obsługi gestu przesuwania w celu zamknięcia. (Iee486)
  • Dodaliśmy przewijanie obrotowe dla interfejsu rotaryScrollable. Dodano przewijanie poza zakres i przewijanie zagnieżdżone do działania rotaryScrollable. Ta zmiana powinna wyrównać funkcje przewijania poza zakres i przewijania zagnieżdżonego w przypadku przewijania dotykowego i obrotowego. (I71926)
  • Dodaliśmy do SwipeToReveal strefę przesuwania od krawędzi. Domyślne działanie biblioteki FoundationSwipeToReveal polega teraz na blokowaniu przesuwania, gdy gest zaczyna się od krawędzi. Domyślne działanie Material3SwipeToReveal polega teraz na blokowaniu przesuwania, gdy gest rozpoczyna się od krawędzi, a SwipeDirection jest ustawiony na jeden kierunek. (I32ef0)
  • TLC domyślnie używa teraz pustego contentPadding zamiast umieszczać pierwszy i ostatni element na środku. (I77ab7)

Poprawki błędów

  • Biblioteki Wear Compose zostały zaktualizowane do kompilatora Kotlin 2.0. (I2de79)
  • Utrwalenie zakrzywionej próbki LetterSpacing na podkładzie. (Iebf7c)

Wersja 1.5.0-alpha10

26 lutego 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha10 Wersja 1.5.0-alpha10 zawiera te zmiany.

Zmiany w interfejsie API

  • Ustaw SwipeToRevealDefaults jako publiczną. (I0c34c)
  • Zastąpiliśmy parametr swipeToDismissEdgeZoneFraction w pliku HorizontalPager. Zamiast tego wprowadziliśmy nowy parametr gestureInclusion, który można wykorzystać do uzyskania wymaganego zachowania polegającego na przesunięciu w celu zamknięcia. gestureInclusion przyjmuje instancję GestureInclusion, która decyduje, czy kolejne zdarzenie przewijania powinno zostać wykonane. Zezwolenie na gest oznacza, że komponent Pager go wykorzystuje. W przeciwnym razie zostanie on obsłużony w innym miejscu, np. przez moduł obsługi przesuwania w celu zamknięcia. Nowym domyślnym działaniem jest niedozwalanie gestów na lewej krawędzi pierwszej strony w komponencie Pager, a tym samym umożliwienie odrzucenia przez przesunięcie w tym regionie. W przypadku wszystkich innych stron komponent Pager będzie mógł obsługiwać wszystkie gesty, co oznacza, że nie będzie można wywołać gestu przesunięcia w celu zamknięcia. Aby uzyskać efekt przesunięcia w celu zamknięcia na wszystkich stronach, wystarczy podać niestandardową instancję GestureInclusion (patrz PagerDefaults.disableLeftEdgeOnFirstPage), która ignoruje bieżącą stronę. Kolejna zmiana powodująca niezgodność wsteczną polega na tym, że komponent Pager nie jest już domyślnie wyświetlany na pełnym ekranie. Aby uzyskać ten efekt, dodaj Modifier.fillMaxSize(). (I9d3aa)
  • Zmieniliśmy nazwę interfejsu createAnchors na createRevealAnchors w interfejsie API do wyświetlania treści po przesunięciu palcem(If5999).
  • Usunęliśmy RevealScope z interfejsu API do wyświetlania treści po przesunięciu. (Ie4ad5)
  • Usunęliśmy stany Revealing i Revealed z RevealValue w interfejsie API przesuwania w celu odkrycia. (I8dbc5)
  • W interfejsie API do przesuwania w celu wyświetlenia zmieniliśmy nazwę SwipeDirection na RevealDirection. (I7472f)
  • Zmieniliśmy sygnaturę parametru positionalThreshold funkcji rememberRevealState w SwipeToReveal. (I29c0a)
  • Dodaliśmy nowy parametr overscrollEffect do ScalingLazyColumn, TransformingLazyColumn i ScreenScaffold. (I0cee8)
  • W przypadku używania PagerDefaults#snapFlingBehaviour parametr pagerSnapDistance został zastąpiony parametrem Int maxFlingPages, którego można użyć do określenia maksymalnej liczby stron, które mają być przewijane przez komponent Pager. (I8cfc0)
  • Komponent Wear Pager ma teraz własny PagerScope zamiast korzystać z PagerScope Compose Foundation. (I9195b)
  • Dodaliśmy obsługę funkcji lineHeight w przypadku zakrzywionego tekstu (I1c936).
  • Dodaliśmy initialAnchorItemIndex i initialAnchorItemOffset do TransformingLazyColumnState oraz rememberTransformingLazyColumnState do TransformationLazyColumn, aby można było określić początkową pozycję przewijania. (I0a0d5)
  • Zastąpienie wartości runWithTimingDisabled wartością runWithMeasurementDisabled, która lepiej opisuje działanie – wszystkie dane są wstrzymane. Dodatkowo udostępnij superklasę MicrobenchmarkScope, ponieważ ponowne zadeklarowanie funkcji runWithMeasurementDisabled w celu otwarcia dostępu nie jest możliwe, ponieważ jest ona wstawiana. (I9e23b, b/389149423, b/149979716)
  • Dodaliśmy do interfejsu API parametr TransformingLazyColumnItemScrollProgress.Unspecified, aby uniknąć umieszczania w ramce na urządzeniach TransformingLazyColumnItemScrollProgress. (I0835d)

Poprawki błędów

  • Ulepsz Kdoc dla CurvedTextStyle (Id45e3)
  • Zmieniliśmy ustawienie SwipeableV2 (część implementacji SwipeToReveal) z publicznego na wewnętrzne, ale ograniczone do grupy bibliotek. (Idbb94)
  • Dodaliśmy testy do HierarchicalFocusCoordinator (I1ce54, b/395548918)
  • Wprowadziliśmy ulepszenia w SwipeToReveal w próbkach podstawowych kompozycji na urządzenia do noszenia. (I5f307)
  • Naprawianie danych semantycznych osi przewijania w przypadku elementu verticalScrollAxisRange w TransformingLazyColumn na potrzeby ułatwień dostępu (I68123)
  • Poprawa wydajności wibracji obrotowych na zegarkach z Wear OS 4 lub nowszym przez usunięcie niepotrzebnych wątków w tle (I39cfe)
  • Zmień SwipeDismissableNavHost, aby używać PredictiveBackNavHost tylko w przypadku interfejsu API w wersji 36 lub nowszej. (I59bed)
  • Dodaliśmy zabezpieczenie przed awarią podczas uzyskiwania dostępu do ustawienia redukcji ruchu. (I01e2c)
  • Wdrożyliśmy pobieranie z wyprzedzeniem w przypadku TransformingLazyColumn, aby zmniejszyć zacinanie się (Icca88).

Wersja 1.5.0-alpha09

29 stycznia 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha09 Wersja 1.5.0-alpha09 zawiera te zmiany.

Zmiany w interfejsie API

  • Na CurvedTextStyle podzieliliśmy odstępy między literami na odstępy w prawo i w lewo. Jest to wymagane, ponieważ litery pisane zgodnie z ruchem wskazówek zegara rozchodzą się od linii bazowej, a litery pisane przeciwnie do ruchu wskazówek zegara zbiegają się (dlatego potrzebny jest większy odstęp między literami) (I4b848).
  • Funkcja CompositionLocal LocalReduceMotion została uproszczona i zwraca wartość logiczną zamiast obiektu ReduceMotion. Interfejs ReduceMotion został wycofany. Poprzednie wywołania, np. LocalReduceMotion.current.enabled(), można zastąpić wywołaniem LocalReduceMotion.current (I4937f).
  • W języku PagerDefaults nazwa snapAnimationSpec została zmieniona na SnapAnimationSpec. (I20c9a)

Wersja 1.5.0-alpha08

15 stycznia 2025 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha08 Wersja 1.5.0-alpha08 zawiera te zmiany.

Zmiany w interfejsie API

  • Zaktualizowaliśmy wszystkie biblioteki Wear Compose do trybu „explicit API”. (Iebf9f)
  • Parametr animacji przyciągania pagera został dodany do PagerDefaults. (Ifff64)
  • Dodaliśmy parametr przesunięcia do SwipeToDismissBoxState. (I586bd)

Poprawki błędów

  • Reakcje haptyczne platformy obrotowej są teraz wywoływane w przypadku Wear OS w wersjach po V (Idb03e).

Wersja 1.5.0-alpha07

11 grudnia 2024 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha07 Wersja 1.5.0-alpha07 zawiera te zmiany.

Zmiany w interfejsie API

  • TransformingLazyColumnState udostępnia teraz sposób obserwowania bieżącego postępu przewijania na podstawie indeksów elementów zakotwiczenia. (I72b01)
  • Dodaliśmy animacje do TransformingLazyColumn podczas dodawania, usuwania i przenoszenia elementów, jeśli mają one nowy Modifier.animateItem. (Iecb9c)
  • TransformingLazyColumn udostępnia teraz wartości dla beforeContentPadding i afterContentPadding. (Iccd5f)
  • TransformingLazyColumn udostępnia teraz lokalną kompozycję LocalTransformingLazyColumnItemScope, której komponenty (takie jak Card i Button w Material 3) mogą używać do automatycznego przekształcania się po umieszczeniu w TransformingLazyColumn. Dzwoniący mogą wyłączyć automatyczne przekształcanie za pomocą nowego elementu TransformExclusion. (I1652f)

Poprawki błędów

  • Zaktualizowaliśmy minimalną i maksymalną prędkość przesuwania dla ruchu obrotowego na urządzeniach z Androidem U i nowszym. (I33559)
  • Naprawiliśmy awarię, która występowała, gdy element w TransformingLazyColumn nie zawierał żadnych komponentów kompozycyjnych (Idb99d).
  • Dodaliśmy ScrollFeedbackProvider obsługę wibracji obrotowych na Androidzie Vanilla ice cream. (Ibc553)
  • Zwiększyliśmy tolerancję na dotyk podczas korzystania z SwipeToReveal, aby zmniejszyć prawdopodobieństwo przypadkowego wywołania przesunięcia podczas przewijania w pionie. (Ic0672)
  • Zaktualizowaliśmy SwipeDismissableNavHost, aby w przypadku interfejsu API na poziomie 35 i wyższym korzystać z PredictiveBackHandler, gdy jest on dostępny. W takim przypadku zostaną zastosowane nowe animacje. (I08c11)

Wersja 1.5.0-alpha06

13 listopada 2024 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha06 Wersja 1.5.0-alpha06 zawiera te zmiany.

Zmiany w interfejsie API

  • Uprościliśmy ScrollInfoProvider dla PagerState, usuwając parametr orientation, który nie jest już potrzebny. Nowe działanie polega na tym, że element TimeText pozostaje na swoim miejscu zarówno w przypadku przewijania w pionie, jak i w poziomie. (I71767)
  • TransformingLazyColumn został wprowadzony w poprzednich wersjach. Usuwamy teraz aliasy LazyColumn (które przekierowywały na TransformingLazyColumn) na rzecz nowej nazwy TransformingLazyColumn. Usunęliśmy też właściwość height elementu TransformingLazyColumnVisibleItemInfo. Zamiast niej używaj właściwości measuredHeight. (I0ea1e)
  • Zmieniliśmy PagerDefaults.snapFlingBehavior snapAnimationSpec z Tween na Spring (I10d02, b/349781047, b/303807950).
  • Wersja LocalReduceMotion CompositionLocal została oznaczona jako stabilna (Ia6f32).

Poprawki błędów

  • Zaktualizowaliśmy Modifier.rotaryScrollable, aby używać focusTargetWithSemantics, co zapewnia lepszą obsługę semantyki w przypadku sterowania obrotowego. (Ief0a0)
  • Zaktualizowaliśmy minimalną zależność interfejsu API do wersji 1.7.4 w przypadku bibliotek Compose. (I88b46)
  • Wyłączyliśmy zmianę szerokości w TransformingLazyColumn, aby obejść błąd przycinania. (I3dfb8)
  • Naprawiliśmy błąd, który powodował znikanie elementów po przewinięciu poza krawędź ekranu w przypadku TransformingLazyColumn (Id7668).
  • Dodaliśmy LazyLayoutSemantics do TransformingLazyColumn. (Ia8f56)

Wersja 1.5.0-alpha05

30 października 2024 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha05 Wersja 1.5.0-alpha05 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaliśmy obsługę animateScrollTo na TransformingLazyColumnState, dzięki czemu przewijanie do elementu może być animowane. (I4097d)
  • Dodaliśmy requestScrollTo na TransformingLazyColumnState, aby odłożyć przewijanie do następnego pomiaru. (I20a5e)
  • Dodaliśmy obsługę właściwości contentPadding w przypadku elementu TransformingLazyColumn. (I3a69c)

Poprawki błędów

  • Naprawiliśmy błąd renderowania TransformingLazyColumn, gdy wysokość treści jest mniejsza niż wysokość ekranu. (I6c3e1)
  • Wartość ScrollInfoProvder dla TransformingLazyColumn jest teraz prawidłowo śledzona w przypadku pierwszego elementu. (I1e4a3)
  • TransformingLazyColumnState zapisuje teraz swój stan (anchorItemIndex i anchorItemScrollOffset). (I3d265)

Wersja 1.5.0-alpha04

16 października 2024 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha04 Wersja 1.5.0-alpha04 zawiera te zmiany.

Zmiany w interfejsie API

  • Zmieniliśmy nazwę Wear Compose Foundation LazyColumn na TransformingLazyColumn, aby wyraźniej odróżnić ją od Compose Foundation LazyColumn. (I0608b)
  • Dodaliśmy obsługę pokrętła w przypadku pagera poziomego i pionowego, co umożliwia użytkownikom poruszanie się po pagerach za pomocą urządzeń wejściowych z pokrętłem. (I9770d)
  • Zaktualizowaliśmy nowy PagerDefaults, aby wyjaśnić, że domyślnie będzie on przyciągać do strony. (Iff7d0)
  • TransformingLazyColumnItemScrollProgress jest teraz klasą wartości, co powinno zwiększyć skuteczność. (Ic399e)
  • TransformingLazyColumn obsługuje teraz pokrętło od razu po wyjęciu z pudełka. (I05206)
  • TransformingLazyColumnState obsługuje teraz scrollToItem. (I507b3)
  • Usunięto @ExperimentalWearFoundationApi z interfejsu SwipeToReveal API (I34a66)

Wersja 1.5.0-alpha03

2 października 2024 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha03 Wersja 1.5.0-alpha03 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaliśmy obsługę dwukierunkowego przesuwania w SwipeToReveal w rzadkich przypadkach, gdy bieżący ekran nie obsługuje przesuwania w celu zamknięcia. . Domyślnie nadal obowiązuje przesuwanie w celu wyświetlenia tylko w przypadku przesuwania od prawej do lewej. Zdecydowanie zalecamy zachowanie domyślnego działania, aby uniknąć konfliktu z przesuwaniem w celu zamknięcia. (Ifac04)
  • Zaktualizowaliśmy LazyColumnState, aby zastąpić canScrollForward i canScrollBackward – teraz przewijanie zatrzymuje się, gdy pierwszy lub ostatni element znajduje się dokładnie na środku ekranu. (Ia77d7)
  • Dodaliśmy nowe komponenty HorizontalPager i VerticalPager, które rozwiązują typowe problemy, takie jak obsługa fokusu i interakcja z systemowym gestem przesuwania w celu zamknięcia, które mogą występować na urządzeniach z Wear OS. (I2902b)
  • Dodaliśmy obsługę LazyColumn, aby udostępniać key i contentType klienta za pomocą layoutItems. (I1bd9c)

Poprawki błędów

  • Zaktualizowaliśmy animacje zakrzywionego tekstu, aby były płynniejsze dzięki użyciu flag malowania. (I73a15)
  • Zaktualizowaliśmy dokumentację okna Material Dialog, aby uwzględnić informację, że funkcja onDismissRequest nie jest wywoływana, gdy flaga show ma wartość false. (Ifd8d6)
  • Naprawiliśmy błąd animacji winiety w oknie dialogowym Material (I126bf).

Wersja 1.5.0-alpha02

18 września 2024 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha02 Wersja 1.5.0-alpha02 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaliśmy obsługę Wear Compose LazyColumn w naszym ScreenScaffold (i wdrożyliśmy ScrollInfoProvider w przypadku LazyColumnState). (Ib8d29)
  • Dodaliśmy viewportSize do LazyColumnLayoutInfo. (I4187f)

Poprawki błędów

  • Naprawiliśmy błąd, dzięki czemu przewijanie obrotowe jest teraz wyłączone w ScalingLazyColumn, gdy flaga userScrollEnabled jest ustawiona na false. (I490ab, b/360295825)
  • Naprawiliśmy błąd, który powodował nieoczekiwany odstęp pionowy w przypadku zakrzywionego tekstu. Wysokość zakrzywionego tekstu jest teraz bardziej zbliżona do rzeczywistej przestrzeni zajmowanej przez tekst. Pamiętaj, że może to spowodować niepowodzenie testów zrzutów ekranu, które obejmują zakrzywiony tekst (Iaa6ef).
  • Cofnęliśmy poprawkę błędu w Dialog, w której wywołanie zwrotne onDismissRequest było wywoływane, gdy wartość showDialog była ustawiona na false, ponieważ w niektórych przypadkach powodowało to wielokrotne wywoływanie onDismissRequest. (I64656)

Wersja 1.5.0-alpha01

4 września 2024 r.

Publikacja androidx.wear.compose:compose-*:1.5.0-alpha01 Wersja 1.5.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaliśmy nową funkcję LazyColumn do biblioteki Wear Compose Foundation wraz z powiązanymi interfejsami API LazyColumnState i LazyColumnScope. Stanowi to podstawę do tworzenia dostosowywanych efektów skalowania i przekształcania za pomocą Wear Compose. (Ib3b22)
  • W ramach nowego interfejsu LazyColumn API dodaliśmy do LazyColumnScope indeksowaną wersję itemsIndexed. (Ib4a57)
  • Dodaliśmy modyfikatory LazyColumn, aby obsługiwać skalowanie i przekształcanie. (Ie229a)
  • HierarchicalFocusCoordinator została przeniesiona do wersji stabilnej. (I31035)
  • Dodaliśmy obsługę odstępów między literami w tekście zakrzywionym. (I3c740)
  • Dodaliśmy parametr rotationLocked do CurvedLayout.curvedComposable, aby zatrzymać obracanie komponentów. (I66898)
  • Usunięto tymczasowy interfejs API LocalUseFallbackRippleImplementation z materiałów wear material i wear material3 (I62282).
  • Usunięto WearDevices.SQUARE z wielokrotnego podglądu @WearPreviewDevices (I11c02)

Poprawki błędów

  • SwipeToReveal umieszcza teraz ujawnione elementy w widocznej części ekranu. Jest to przydatne, gdy SwipeToReveal jest używany na liście, dzięki czemu elementy są zawsze interaktywne i nigdy nie wychodzą poza ekran. (I38929)
  • SwipeToReveal resetuje teraz wartość lastActionType na None po zakończeniu działania animatedTo. (I59b03)
  • Ulepszyliśmy dokumentację nowego parametru rotationLocked w usłudze curvedComposable. (Ifbd57)
  • Naprawiliśmy awarię, która występowała podczas przekazywania NaN do ScalingLazyColumnSnapFlingBehavior w performFling. (Ic13da)
  • Naprawiono błąd modyfikatora rozmiaru układu zakrzywionego (I0fedf)
  • Dodaliśmy obsługę odstępów między literami określonych w jednostkach „sp”. (I9f6e3)
  • Naprawiliśmy błąd w oknie Material2, który powodował, że wywołanie zwrotne onDismissRequest nie było wywoływane, gdy okno stawało się niewidoczne (I64656).
  • Nazwa LayoutCoordinates.introducesFrameOfReference została zmieniona na LayoutCoordinates.introducesMotionFrameOfReference, aby lepiej odzwierciedlała jej przeznaczenie. Zmieniono nazwę powiązanej funkcji, aby obliczać współrzędne na podstawie tej flagi. (I3a330)

Wersja 1.4

Wersja 1.4.1

12 lutego 2025 r.

Publikacja androidx.wear.compose:compose-*:1.4.1 Wersja 1.4.1 zawiera te zmiany.

Poprawki błędów

  • Zabezpieczyliśmy się przed awarią podczas uzyskiwania dostępu do globalnego ustawienia redukcji ruchu, która była wywoływana na niektórych platformach, na których to ustawienie nie było dostępne. (I01e2c)

Wersja 1.4.0

4 września 2024 r.

Publikacja androidx.wear.compose:compose-*:1.4.0 Wersja 1.4.0 zawiera te zmiany.

Ważne zmiany od wersji 1.3.0

  • ScalingLazyColumn i Picker domyślnie obsługują teraz wprowadzanie danych za pomocą pokrętła. Zalecamy usunięcie jawnej obsługi pokrętła i skorzystanie z domyślnego zachowania systemu. W razie potrzeby użyj parametru rotaryScrollableBehavior, aby skonfigurować przewijanie lub przyciąganie. W przypadku przyciągania zalecamy udostępnienie funkcji przyciągania i przewijania dotykowego za pomocą parametru flingBehavior.
  • Modifier.rotaryScrollable to nowy modyfikator, który łączy zdarzenia obrotowe z kontenerami z możliwością przewijania, dzięki czemu użytkownicy mogą przewijać zawartość za pomocą pokrętła lub obrotowej ramki na urządzeniu z Wear OS.
  • SwipeDismissableNavHost zapewnia teraz animację wejścia w przypadku przejść w aplikacji.
  • PositionIndicator jest teraz domyślnie wyświetlany, gdy ekran jest wyświetlany po raz pierwszy.

Dodatkowe zmiany

Wersja 1.4.0-rc01

21 sierpnia 2024 r.

Publikacja androidx.wear.compose:compose-*:1.4.0-rc01 Wersja 1.4.0-rc01 zawiera te zmiany.

  • Zaktualizowaliśmy zależności Compose do wersji 1.7.0-rc01 i przypięliśmy Wear Compose Navigation do androidx.lifecycle w wersji 2.8.3.

Wersja 1.4.0-beta03

12 czerwca 2024 r.

Publikacja androidx.wear.compose:compose-*:1.4.0-beta03 Wersja 1.4.0-beta03 zawiera te zmiany.

Poprawki błędów

  • Zaktualizowaliśmy Modifier.rotaryScrollable, aby zastąpić użycie „focusable” słowem „focusTarget”, co zwiększa wydajność. (Id294b)
  • Rozwiązaliśmy problem, w którym ProgressIndicator powtarzał komunikat w sekcji TalkBack. (I94563)
  • Zaktualizowaliśmy profile bazowe biblioteki Wear Compose. (I3cbc3)

Wersja 1.4.0-beta02

29 maja 2024 r.

Publikacja androidx.wear.compose:compose-*:1.4.0-beta02 Wersja 1.4.0-beta02 zawiera te zmiany.

Poprawki błędów

  • Zwiększyliśmy szerokość obramowania przekazywanego do czytników ekranu z zakrzywionego tekstu, aby rozwiązać problemy z obcinaniem (Id865f).
  • Ograniczyliśmy obszar elementu HorizontalPageIndicator przekazywanego czytnikom ekranu – wcześniej wskaźnik zajmował cały ekran (Id8d7a).

Wersja 1.4.0-beta01

14 maja 2024 r.

Publikacja androidx.wear.compose:compose-*:1.4.0-beta01 Wersja 1.4.0-beta01 zawiera te zmiany.

Wersja 1.4-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany (z wyjątkiem funkcji oznaczonych jako eksperymentalne). Wear Compose 1.4 zawiera te nowe funkcje:

  • Dodaliśmy nowy modyfikator Modifier.rotaryScrollable, który łączy zdarzenia obrotowe z kontenerami z możliwością przewijania, dzięki czemu użytkownicy mogą przewijać treści za pomocą pokrętła lub obrotowej ramki na urządzeniu z Wear OS. Oprócz tego ScalingLazyColumn i Picker domyślnie obsługują teraz wprowadzanie danych za pomocą pokrętła. Użyj parametru rotaryScrollableBehavior, aby skonfigurować przewijanie lub przyciąganie. W przypadku zachowania przyciągania zalecamy też podanie przyciągania za pomocą parametru flingBehavior w przypadku przewijania dotykowego.
  • SwipeDismissableNavHost zapewnia teraz animację wejścia w przypadku przejść w aplikacji.
  • PositionIndicator jest teraz domyślnie wyświetlany, gdy ekran jest wyświetlany po raz pierwszy.
  • SelectableChip i SplitSelectableChip zostały dodane jako odmiana elementu ToggleChip – używaj ich z elementem RadioButton, aby zapewnić semantykę z możliwością wyboru zamiast semantyki z możliwością przełączania na potrzeby ułatwień dostępu.
  • ListHeader obsługuje teraz dostosowywanie wysokości, gdy treści wymagają dodatkowej wysokości ze względu na duże rozmiary czcionek.

Poprawki błędów

  • Naprawiliśmy błąd, który powodował, że w przypadku wybranych już klikalnych elementów interfejsu ogłaszano „kliknij dwukrotnie, aby przełączyć”. (I7ed88)

Wersja 1.4.0-alpha08

1 maja 2024 r.

Publikacja androidx.wear.compose:compose-*:1.4.0-alpha08 Wersja 1.4.0-alpha08 zawiera te zmiany.

Zmiany w interfejsie API

  • Wprowadziliśmy te zmiany w nowym interfejsie API pokrętła: zmieniliśmy nazwę Modifier.rotary na Modifier.rotaryScrollable, zmieniliśmy nazwę interfejsu RotaryBehavior na RotaryScrollableBehavior, a jego funkcji handleScrollEvent na performScroll, zmieniliśmy nazwę RotaryScrollableAdapter na RotaryScrollableLayoutInfoProvider i usunęliśmy właściwość scrollableState. (I0c8a6)
  • Wprowadziliśmy dodatkowe zmiany w interfejsie API obrotowego: zmieniliśmy nazwę RotaryScrollableLayoutInfoProvider na RotarySnapLayoutInfoProvider (ponieważ ten dostawca jest potrzebny tylko w przypadku obrotowego z przyciąganiem); zmieniliśmy typ parametru snapOffset w RotaryScrollableDefaults.snapBehavior snapOffset z Int na Dp. (Iddebe)
  • Zmieniliśmy nazwę parametru clickInteractionSource w usłudze SplitSelectableChip na containerInteractionSource. (Ia8f84)
  • Zaktualizowaliśmy nazwy parametrów wywołania zwrotnego kliknięcia w przypadku SplitSelectableChip – z onClick na onSelectionClick i z onBodyClick na onContainerClick. (I32237)

Poprawki błędów

  • Zaktualizowaliśmy poziomy odstęp wewnętrzny dla elementu PositionIndicator do 2 dp (wcześniej 5 dp), aby naprawić błąd, w którym element PositionIndicator (pasek przewijania) nakładał się na treść, którą można przewijać. Pamiętaj, że ta zmiana może spowodować, że dotychczasowe zrzuty ekranu zawierające symbol PositionIndicator przestaną działać z powodu zmiany dopełnienia. (I57472)
  • Ulepszyliśmy dokumentację nowego interfejsu API pokrętła, opisując różnice między urządzeniami z pokrętłem o niskiej i wysokiej rozdzielczości. (I63abe)
  • Rozwiązaliśmy problem z wyjątkiem spoza zakresu w SwipeDismissableNavHost, który mógł być wywoływany, gdy interpolowane wartości alfa były mniejsze od zera. (Ib75a1, b/335782510)

Wersja 1.4.0-alpha07

17 kwietnia 2024 r.

Publikacja androidx.wear.compose:compose-*:1.4.0-alpha07 Wersja 1.4.0-alpha07 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaliśmy nowy modyfikator Modifier.rotary, który łączy zdarzenia obrotowe z kontenerami z możliwością przewijania, dzięki czemu użytkownicy mogą przewijać treści za pomocą pokrętła lub obrotowej ramki na urządzeniu z Wear OS. Dodatkowo komponenty ScalingLazyColumn i Picker domyślnie obsługują teraz wprowadzanie danych za pomocą pokrętła. Mają nowe przeciążenia, które zawierają parametr rotaryBehavior umożliwiający określenie konfiguracji przewijania lub przyciągania. Jeśli parametr rotaryBehavior ma wartość snap, zalecamy też podanie wartości snap za pomocą parametru flingBehavior w przypadku przewijania dotykowego. (I2ef6f)
  • Źródła NestedScrollDrag and FlingUserInput zastępujemy źródłami UserInputSideEffect, aby uwzględnić rozszerzoną definicję tych źródeł, która obejmuje teraz animacje (Side Effect) oraz kółko myszy i klawiaturę (UserInput). (I40579)
  • Dodaliśmy ikony SelectableChip i SplitSelectableChip, aby wyraźniej odróżnić przełączniki, takie jak Switch/Checkbox, od elementów sterujących, takich jak RadioButton. Spowoduje to zastąpienie wcześniej dodanych przeciążeń funkcji ToggleChip/SplitToggleChip parametrami selectionControl. (Ia0217)
  • Zmieniono modyfikator widoczności IndeterminateStrokeWidth w ProgressIndicatorDefaults na publiczny. (I5b5a4)

Wersja 1.4.0-alpha06

3 kwietnia 2024 r.

Publikacja androidx.wear.compose:compose-*:1.4.0-alpha06 Wersja 1.4.0-alpha06 zawiera te zmiany.

Poprawki błędów

  • Dodaliśmy wewnętrzną wersję roboczą obsługi pokrętła, co jest częścią większego projektu przeniesienia zachowania pokrętła z Horologist do AndroidX. (I617d1)
  • Dodaliśmy wewnętrzną wersję roboczą obsługi haptyki w ramach większych prac nad przeniesieniem zachowania Rotary z Horologist do AndroidX. (I5568a)

Wersja 1.4.0-alpha05

20 marca 2024 r.

Publikacja androidx.wear.compose:compose-*:1.4.0-alpha05 Wersja 1.4.0-alpha05 zawiera te zmiany.

Zmiany w interfejsie API

  • Udostępniliśmy publicznie właściwości initialCenterItemIndex i initialCenterItemScrollOffset usługi ScalingLazyListState. (I0c616)
  • Ustawiliśmy FullScreenStrokeWidth z ProgressIndicatorDefaults jako publiczny. (Ibea23)

Poprawki błędów

  • Zwiększyliśmy wydajność PositionIndicator, zmniejszając liczbę wywołań layoutInfo z ScalingLazyColumn. (Idc83d)

Wersja 1.4.0-alpha04

6 marca 2024 roku

Publikacja androidx.wear.compose:compose-*:1.4.0-alpha04 Wersja 1.4.0-alpha04 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaliśmy nowe przeciążenie funkcji ToggleChip i SplitToggleChip, które przyjmuje parametr selectionControl zamiast parametru toggleControl. Należy go używać z elementem sterującym RadioButton, aby zapewnić semantykę z możliwością wyboru zamiast semantyki z możliwością przełączania na potrzeby ułatwień dostępu (I1d6d9).
  • Zmieniliśmy nazwy parametrów dla nowego przeciążenia selectionControl z onSelected na onSelect w przypadku ToggleChip i SplitToggleChip (I1a971).

Wersja 1.4.0-alpha03

21 lutego 2024 r.

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

Zmiany w interfejsie API

  • Moduł Modifier.inspectable został wycofany. Ten interfejs API będzie tworzyć więcej unieważnień modyfikatora niż jest to konieczne, dlatego jego używanie jest obecnie odradzane. Deweloperzy, którzy chcą udostępniać narzędziom właściwości modyfikatora, powinni zaimplementować metodę inspectableProperties() w ModifierNodeElement. (Ib3236)

Poprawki błędów

  • Naprawiliśmy błąd w dokumentacji dotyczący adnotacji WearPreview*. (Id526d)

Wersja 1.4.0-alpha02

7 lutego 2024 r.

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

Poprawki błędów

  • Naprawiliśmy błąd w funkcji przesuwania w celu wyświetlenia, który umożliwiał interakcję z zatwierdzonym działaniem na jednym elemencie (i jego anulowanie) poprzez rozpoczęcie przesuwania innego elementu.(Ide059)
  • Zaktualizowaliśmy ListHeader, aby obsługiwać dostosowywanie wysokości, gdy treści wymagają dodatkowej wysokości ze względu na duże rozmiary czcionki. (I7290c, b/251166127)

Wersja 1.4.0-alpha01

24 stycznia 2024 r.

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

Nowe funkcje

  • Dodaliśmy animację wejścia do SwipeDismissableNavHost w przypadku przejść w aplikacji.(cfeb79a)
  • PositionIndicator jest teraz domyślnie wyświetlana, gdy ekran pojawia się po raz pierwszy. Ta zmiana została wprowadzona, aby pomóc w spełnianiu wskazówek dotyczących jakości Wear. Oznacza to, że testy zrzutów ekranu na ekranach zawierających PositionIndicator będą musiały zostać zaktualizowane, ponieważ wcześniej PositionIndicator nie były wyświetlane. (419cef7)

Zmiany w interfejsie API

  • Dodaliśmy nowy interfejs API efektu falowania w bibliotekach wear:compose-material i wear:compose-material3, który zastępuje wycofany interfejs rememberRipple. Dodaje też tymczasowe CompositionLocal, LocalUseFallbackRippleImplementation, aby przywrócić komponenty Material do korzystania z wycofanych interfejsów rememberRipple/RippleTheme API. Zostanie on usunięty w kolejnej stabilnej wersji i ma być tylko tymczasowym ułatwieniem migracji w przypadkach, gdy podajesz niestandardowy znak RippleTheme. Więcej informacji o migracji i szczegółowe wyjaśnienie tej zmiany znajdziesz na stronie developer.android.com. (af92b21)
  • Zaktualizowaliśmy ColorScheme, aby był niezmienny, co sprawia, że indywidualne aktualizacje kolorów są mniej wydajne, ale częstsze używanie kolorów jest bardziej wydajne. Uzasadnieniem tej zmiany jest fakt, że większość aplikacji nie ma aktualizowania poszczególnych kolorów jako głównego przypadku użycia. Jest to nadal możliwe, ale będzie wymagało większej liczby ponownych kompozycji niż wcześniej. W rezultacie znacznie zmniejszymy liczbę subskrypcji stanu w całym kodzie materiału, co wpłynie na koszt inicjowania i działania w przypadku bardziej standardowych zastosowań. (f5c48b7)
  • Komponenty Wear Material i Wear Material3, które w swoim interfejsie API udostępniały wartość MutableInteractionSource, zostały zaktualizowane tak, aby udostępniać wartość MutableInteractionSource z możliwością przypisania wartości null, która domyślnie ma wartość null. Nie ma tu żadnych zmian semantycznych: przekazanie wartości null oznacza, że nie chcesz podnosić MutableInteractionSource, a w razie potrzeby zostanie on utworzony wewnątrz komponentu. Ustawienie wartości null pozwala niektórym komponentom nigdy nie przydzielać MutableInteractionSource, a innym tworzyć instancję tylko wtedy, gdy jest to potrzebne, co zwiększa wydajność tych komponentów. Jeśli nie używasz elementu MutableInteractionSource przekazywanego do tych komponentów, zalecamy przekazywanie zamiast niego wartości null. Zalecamy też wprowadzenie podobnych zmian we własnych komponentach. (f8fa920)
  • Zaktualizowaliśmy rememberExpandableState, aby zapisywać stan rozwinięty. Dzięki temu dane są zapisywane podczas przechodzenia do innego ekranu i przywracane po powrocie do ekranu pierwotnego. (5c80095)

Poprawki błędów

  • Zaktualizowaliśmy ustawienie ReduceMotion, aby używać odbiornika uwzględniającego cykl życia. (7c6b122)
  • Zaktualizowaliśmy komponent Listener w TouchExplorationStateProvider, aby uwzględniał cykl życia (be28b01).
  • Usunęliśmy warstwę materialcore dla CompactButton, aby poprawić wydajność (25db8e9).
  • Ulepszyliśmy funkcję BasicSwipeToDismissBox, aby była bardziej odporna na przesunięcia NaN i nie powodowała wyjątków (b983739).
  • Zaktualizowaliśmy BasicSwipeToDismissBox, aby wartości alfa mieściły się w zakresie 0,1.
  • Naprawiliśmy błąd w ToggleButton, SplitToggleButton, Checkbox, Switch i RadioButton, aby komunikaty dotyczące ułatwień dostępu nie były powtarzane (wcześniej role semantyczne były duplikowane) (d11eeb7).

Wersja 1.3

Wersja 1.3.1

3 kwietnia 2024 r.

Publikacja androidx.wear.compose:compose-*:1.3.1 Wersja 1.3.1 zawiera te zmiany.

Poprawki błędów

  • Naprawiliśmy błąd w funkcji przesuwania w celu wyświetlenia, który umożliwiał interakcję z zatwierdzonym działaniem na jednym elemencie (i jego anulowanie) poprzez rozpoczęcie przesuwania innego elementu. (Ide059)

Wersja 1.3.0

24 stycznia 2024 r.

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

Ważne zmiany od wersji 1.2.0

  • Klasa SwipeToDismissBoxState, wyliczenie SwipeToDismissValue i funkcja rozszerzenia Modifier.edgeSwipeToDismiss należą teraz do pakietu androidx.wear.compose.foundation, a nie do pakietu androidx.wear.compose.material. Ta zaktualizowana architektura umożliwia implementowanie obsługi gestów niezależnie od innych kwestii związanych z projektowaniem. Procesy Material Design, takie jak stosowanie kolorów z skonfigurowanego motywu, są obsługiwane oddzielnie.
  • Klasy SwipeToRevealCard i SwipeToRevealChip pomagają w implementacji recommended swipe-to-reveal guidance. Klasa SwipeToRevealSample pokazuje, jak używać tych komponentów.
  • W wersji 1.3.0-alpha02 wprowadziliśmy zmianę, która powoduje, że obiekty Chip i ToggleChip zwiększają wysokość, aby lepiej obsługiwać skalowanie czcionki wybrane przez użytkownika. Może to powodować przycinanie. Aby rozwiązać ten problem, kształt large dla MaterialTheme ma teraz większy promień zaokrąglenia (26 dp zamiast 24 dp). Obiekty Chip i ToggleChip używają tego nowego promienia zaokrąglenia, aby uniknąć przycinania treści w narożnikach elementu Chip i ToggleChip.

    • Większość elementów Chips i ToggleChips pozostaje bez zmian, ponieważ domyślna wysokość wynosi 52 dp. Jednak obiekty Chip i ToggleChip, które zawierają wiele wierszy tekstu etykiety głównej lub dodatkowej albo których wysokość została zastąpiona, mogą powodować niepowodzenie testów zrzutów ekranu.

Dodatkowe zmiany

Pełniejszy zestaw zmian wprowadzonych w wersji 1.3.0 znajdziesz w informacjach o wersji beta01.

Zalecenia dotyczące implementacji

  • Jeśli aplikacja umożliwia użytkownikom przesuwanie treści na ekranie, np. w aplikacji opartej na mapach, wyłącz obsługę przesuwania, ustawiając wartość userSwipeEnabled na false w kompozycji SwipeDismissableNavHost, i dodaj przycisk, który umożliwia użytkownikom przejście do poprzedniego ekranu.
  • Aby wyłączyć animacje wskaźnika pozycji podczas animacji pojawiania się i zmiany pozycji na liście przewijanej, użyj obiektu SnapSpec.
  • Podczas oczekiwania na wczytanie treści do odtwarzania przez aplikację do multimediów wyświetlaj pusty komponent Placeholder.
  • Aby utworzyć kolekcję elementów rozwijanych na żądanie, możesz użyć eksperymentalnej klasy ExpandableStateMapping.

Wersja 1.3.0-rc01

10 stycznia 2024 r.

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

Poprawki błędów

  • Zaktualizowaliśmy MaterialThemeduży kształt, aby używać zaokrąglonego rogu o promieniu 26 dp. Będzie on teraz używany przez element Chip i ToggleChip. Ta zmiana jest potrzebna, aby umożliwić dostosowywanie wysokości, gdy zawartość wymaga dodatkowej wysokości ze względu na duże rozmiary czcionek. W przeciwnym razie obecny kształt stadionu przycina część tekstu.

    Tekst jest obcięty na rogach
    Ilustracja 1. Tekst przycięty na rogach.
    Tekst nie został obcięty
    Ilustracja 2. Tekst nie jest przycięty.

    Ta zmiana może spowodować niepowodzenie testów zrzutów ekranu. (I2e6ae)

Wersja 1.3.0-beta02

13 grudnia 2023 r.

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

Poprawki błędów

  • Przywróciliśmy zamierzony ruch przesuwania w BasicSwipeToDismissBox. W poprzedniej wersji zostało to zmienione w taki sposób, że część przejścia polegająca na przesunięciu slajdu następowała, gdy palec dotykał ekranu. (Id8e76)

Wersja 1.3.0-beta01

15 listopada 2023 r.

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

Wersja 1.3-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany (z wyjątkiem miejsc oznaczonych jako eksperymentalne). Wear Compose 1.3 zawiera te nowe funkcje:

  • SwipeToDismissBoxState, SwipeToDismissValue i Modifier.edgeSwipeToDismiss zostały przeniesione z androidx.wear.compose.material do androidx.wear.compose.foundation wraz z implementacją funkcji przesuwania w celu zamknięcia w BasicSwipeToDismissBox. Dzięki temu obsługę gestów w przypadku odrzucania przez przesunięcie można stosować niezależnie od Material Design, np. w SwipeDismissableNavHost w androidx.wear.compose.navigation. SwipeToDismissBox z androidx.wear.compose.material nadal zaleca się używać z Material Design, ponieważ pobiera kolory z MaterialTheme, a następnie przekazuje pozostałą część implementacji do BasicSwipeToDismissBox.
  • SwipeDismissableNavHost obsługuje teraz nowy parametr userSwipeEnabled, dzięki czemu można wyłączyć obsługę gestów przesuwania na ekranach, na których nie jest ona wymagana.
  • BasicSwipeToDismissBox ulepszyło obsługę ostrości za pomocą HierarchicalFocusCoordinator.
  • SwipeToReveal ma nowe komponenty SwipeToRevealCard i SwipeToRevealChip w Material Design, które są zgodne z zalecanymi wytycznymi UX dotyczącymi Card i Chip. Obsługuje też cofanie działania dodatkowego.
  • DefaultTextStyle wyłącza teraz dopełnianie czcionki, aby zapewnić spójność na całej platformie Android.
  • Chip i ToggleChip dostosowują teraz swoją wysokość do treści, które urosły z powodu dużych czcionek ułatwiających dostęp.
  • PositionIndicator ma teraz osobne specyfikacje animacji dla animacji pojawiania się, znikania i zmiany pozycji. Ze względu na wydajność zalecamy wyłączenie efektu pojawiania się i zmiany pozycji w przypadku korzystania z list przewijanych.
  • ExpandableStateMapping zapewnia nowy sposób generowania ExpandableStates, gdy trzeba je utworzyć na żądanie, a niekoniecznie w zakresie @Composable.
  • Placeholder umożliwia teraz resetowanie, jeśli treści nie są już w stanie gotowości. Ustawienie ograniczenia ruchu jest teraz stosowane do efektu połyskiwania i ruchu wycierania na Placeholder.

Znane problemy

  • PositionIndicator nie jest początkowo wyświetlana, gdy ekran pojawia się po raz pierwszy. Planujemy wprowadzić zmianę w wersji alfa 1.4, aby początkowo była wyświetlana, ale bez animacji.

Zmiany w interfejsie API

  • Zmieniliśmy nazwę poziomu podstawowego SwipeToDismissBox na BasicSwipeToDismissBox. Dzięki temu wyraźniej widać różnicę między komponentem poziomu podstawowego a komponentem poziomu materiału SwipeToDismissBox. Ten drugi pobiera kolory z MaterialTheme, aby używać ich w warstwach przyciemniających, a pozostałą część implementacji przekazuje do BasicSwipeToDismissBox. (Ibecfc)
  • Oznaczyliśmy rememberExpandableStateMapping jako eksperymentalne i poprawiliśmy skuteczność expandableItem. (I5f6bc)
  • Zastąpiliśmy klasę SwipeToRevealAction w interfejsach Material SwipeToReveal Card i Chip API interfejsem opartym na slotach, który korzysta z funkcji kompozycyjnych SwipeToRevealPrimaryAction, SwipeToRevealSecondaryAction i SwipeToRevealUndoAction. Przykłady użycia nowego interfejsu API znajdziesz w przykładowym kodzie. (Ia8943)
  • Zastąpiliśmy flagi animacji PositionIndicator parametrami AnimationSpec. Poszczególne animacje można wyłączyć, przekazując wartość snap jako parametr AnimationSpec. (I6c523)

Poprawki błędów

  • Naprawiliśmy błąd wywoływany przez ograniczony tekst zakrzywiony, gdy rozmiar jest ograniczony (I50efe).
  • Rozwiązaliśmy problem z potencjalnym błędem NaN związanym z curvedComposable (I970eb).
  • Cofnęliśmy usunięcie animacji wyróżniającej zmianę pozycji na stronie PositionIndicator. (Ieb424)
  • Usunęliśmy warstwę rdzenia materiału z elementu Material Chip, aby poprawić jego wydajność. (If2dcb)

Wersja 1.3.0-alpha08

18 października 2023 r.

Publikacja androidx.wear.compose:compose-*:1.3.0-alpha08 Wersja 1.3.0-alpha08 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaliśmy do przeciążeń funkcji PositionIndicator poszczególne flagi, aby kontrolować różne animacje: showFadeInAnimation, showFadeOutAnimation i showPositionAnimation. Poprzedni interfejs API został wycofany i przekazuje wywołania do nowego. Ze względu na wydajność i spójność UX, gdy element PositionIndicator jest używany z listą z możliwością przewijania, zalecamy wyłączenie flag showFadeInAnimation i showPositionAnimation. Jeśli PositionIndicator jest używany jako samodzielny wskaźnik, np. do zmiany głośności, zalecamy włączenie wszystkich 3 animacji. (I44294)
  • Po przeniesieniu funkcji przesuwania w celu zamknięcia do komponentu wear.compose.foundation wycofaliśmy komponenty Material SwipeToDismissBoxState, SwipeToDismissValue i edgeSwipeToDismiss. Zastąp je odpowiednikami wear.compose.foundation. (Iee8c9)

Poprawki błędów

  • Zaktualizowaliśmy profile bazowe bibliotek Wear Compose Foundation, Material i Navigation. (Idb060)
  • Cofnęliśmy zmianę w zachowaniu elementu PositionIndicator wprowadzoną w poprzedniej liście zmian, która powodowała animowanie elementu PositionIndicator podczas początkowego wyświetlania ekranu. Podobną zmianę zamierzamy wprowadzić we wczesnej wersji alfa 1.4, tak aby początkowo wyświetlać symbol PositionIndicator, ale bez animacji. (I41843)
  • Rozwiązaliśmy niektóre problemy z wydajnością w PositionIndicator. (I1c654, b/302399827)
  • Zoptymalizowaliśmy wydajność domyślnej implementacji dostawcy stanu eksploracji dotykowej, aby opierała się na State<Boolean>, a nie na stanie pochodnym. (Ieec4d)
  • W przypadku Androida 13 i nowszych ustawiliśmy prostokąty systemGestureExclusion. (Ib1f4b)

Wersja 1.3.0-alpha07

4 października 2023 roku

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

Zmiany w interfejsie API

  • Dodaliśmy do PositionIndicator poszczególne flagi, aby kontrolować różne animacje: showFadeInAnimation, showFadeOutAnimation i showPositionAnimation. Poprzedni interfejs API został wycofany i przekazuje wywołania do nowego. Ze względu na wydajność i spójność UX, gdy element PositionIndicator jest używany z listą z możliwością przewijania, zalecamy wyłączenie flag showFadeInAnimation i showPositionAnimation. Jeśli PositionIndicator jest używany jako samodzielny wskaźnik, np. do zmiany głośności, zalecamy włączenie wszystkich 3 animacji. (Ia2d63)

Poprawki błędów

  • Ulepszyliśmy gest przesuwania, aby wyświetlić element, dodając animację zanikania tekstu działania głównego oraz zanikanie działania dodatkowego lub zmianę skali ikony po pełnym rozwinięciu. (Ib7223)
  • Zalecamy, aby działania „Przesuń, aby wyświetlić” były dostępne. Do naszych przykładów „Przesuń, aby wyświetlić” dodaliśmy niestandardowe działania ułatwień dostępu. (I42224)
  • Poprawiliśmy wydajność funkcji SwipeToDismissBox, m.in. przeprowadziliśmy refaktoryzację, aby zapewnić, że początkowa logika nie powoduje rekompozycji. Obraz SwipeToDismissBox jest teraz rysowany na pełnym ekranie. (Ie0aa2)
  • Naprawiliśmy błąd, w wyniku którego ikona PositionIndicator znikała w nieprawidłowy sposób. (I2091a)
  • Zwiększona wydajność PositionIndicator dzięki optymalizacji ponownego komponowania. Później dodaliśmy nowe flagi do sterowania animacjami (fadeIn, fadeOut i positionChange) (patrz Zmiany w interfejsie API) (Ifac7d).
  • Dodaliśmy testy mikroporównawcze dla PositionIndicator (Idf875)

Wersja 1.3.0-alpha06

20 września 2023 r.

Publikacja androidx.wear.compose:compose-*:1.3.0-alpha06 Wersja 1.3.0-alpha06 zawiera te zmiany.

Poprawki błędów

  • Dodaliśmy obsługę Modifier.edgeSwipeToDismiss w przypadku SwipeToReveal. (I95774, b/293444286)
  • Dodaliśmy przykłady dla materiałów SwipeToRevealChip i SwipeToRevealCard. (Ieb974)
  • Zaktualizowaliśmy profile bazowe bibliotek Wear Compose Foundation i Material. (I1dd1f)

Wersja 1.3.0-alpha05

6 września 2023 r.

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

Poprawki błędów

  • Dodaliśmy obsługę w funkcji przesuwania, aby można było przesuwać tylko 1 element naraz. (I3cd7a)
  • Ulepszyliśmy dokumentację funkcji ScalingLazyColumnDefaults, aby lepiej odzwierciedlała jej rzeczywiste działanie. (I886d3)

Wersja 1.3.0-alpha04

23 sierpnia 2023 r.

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

Nowe funkcje

  • Dodaliśmy możliwość cofnięcia działania dodatkowego SwipeToReveal. (I7a22d)

Zmiany w interfejsie API

  • Dodaj HorizontalPageIndicator do biblioteki Wear Material3. (Ifee99)
  • Zaktualizowano narzędzia podglądu Wear Compose, aby korzystały z biblioteki androidx.wear.tooling.preview. (Ib036e)

Poprawki błędów

  • Naprawiliśmy błąd w przypadku okrągłych przycisków, który powodował, że modyfikatory nie były prawidłowo łączone w łańcuch. (I5e162)

Wersja 1.3.0-alpha03

9 sierpnia 2023 r.

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

Zmiany w interfejsie API

  • Dodaliśmy 2 nowe funkcje kompozycyjne w Materialu do implementowania SwipeToReveal za pomocą kart i elementów. Te funkcje kompozycyjne są zgodne z zalecanymi wskazówkami dotyczącymi UX w przypadku komponentu i ułatwiają deweloperom wdrażanie SwipeToReveal za pomocą istniejących komponentów w Wear Material. (I7ec65)
  • Włączyliśmy adnotacje FloatRange jako ograniczenia interfejsu API, które wcześniej były podane w komentarzach. (Icb401)

Poprawki błędów

  • Przenieśliśmy początkową logikę przewijania ScalingLazyColumn do onGloballyPositioned(). (Ic90f1)
  • W usługach drawWithCache, ProgressIndicator i SelectionControls używamy teraz PositionIndicator, aby optymalizować przydzielanie pociągnięć. (I5f225, b/288234617)
  • Poprawiliśmy widoczność zaznaczenia pola wyboru w stanach wyłączonych. (Ib25bf)
  • Zaktualizowaliśmy Placeholder, aby umożliwić resetowanie i wyświetlanie elementu zastępczego, jeśli treść nie jest już w stanie gotowości. (Ibd820)
  • Wprowadziliśmy kilka poprawek dotyczących niestabilnych testów Placeholder (Idb560).

Wersja 1.3.0-alpha02

26 lipca 2023 r.

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

Zmiany w interfejsie API

  • Udostępniliśmy ExpandableStateMapping, czyli nowy sposób generowania ExpandableStates w przypadkach, gdy trzeba je utworzyć na żądanie, a niekoniecznie w zakresie @Composable (Iff9e0).
  • SwipeToDismissBox został przeniesiony z pakietu androidx.wear.compose.material do pakietu androidx.wear.compose.foundation. (I275fb)
  • Zaktualizowano pliki API, aby dodać adnotacje dotyczące wyłączenia zgodności. (I8e87a, b/287516207)
  • Udostępniliśmy stałe wartości wysokości dla Chip, CompactChip i ToggleChip (Idbfde).
  • Udostępniliśmy publicznie poziome i pionowe dopełnienie dla symboli Chip i CompactChip. (Ieeaf7)
  • Dodano funkcję wyłączania obsługi przesuwania w SwipeDismissableNavHost za pomocą nowego parametru userSwipeEnabled. (Id2a0b, b/230865655)
  • Zaktualizowaliśmy bibliotekę Wear Compose Navigation, aby korzystała z nowej funkcji SwipeToDismissBox z biblioteki Wear Compose Foundation. (I4ff8e)

Poprawki błędów

  • Rozwiązaliśmy błąd kolejności Z, który powodował, że po kliknięciu przycisku expandedItem nie wyświetlał prawidłowej treści, gdy miał przyciski. (I1899d, b/289991514)
  • Poprawienie obsługi ostrości w przypadku SwipeToDismissBox (a tym samym SwipeDismissableNavHost) za pomocą HierarchicalFocusCoordinator (I45362, b/277852486)
  • Wprowadziliśmy poprawkę dotyczącą obsługi gestów w SwipeableV2 . (I89737)
  • Ukończyliśmy tworzenie profili podstawowych dla wersji 1.2. (Id5740)
  • Po migracji SwipeToDismissBox do Foundation implementacja Material SwipeToDismissBox przekazuje teraz dane do Foundation i dostarcza domyślne wartości kolorów z motywu.(If8451)
  • Dodaliśmy do pliku ListHeader semantykę nagłówków. (Ic5420)
  • Chip i ToggleChip będą teraz dostosowywać swoją wysokość do treści, które urosły z powodu dużych czcionek ułatwiających dostęp. (Iaf302)
  • Naprawiono błąd w roli semantycznej obszaru klikalnego SplitToggleChip na potrzeby ułatwień dostępu. (Ieed3a)
  • Ustawienie ograniczenia ruchu wyłącza teraz efekt błysku i animację wycierania w przypadku elementów zastępczych. (I91046)
  • Stepper i InlineSlider obsługują teraz powtarzane kliknięcia przy długim naciśnięciu, dzięki czemu możesz szybko zwiększać lub zmniejszać wartość Stepper i InlineSlider, przytrzymując przyciski + lub –. (I27359)

Wersja 1.3.0-alpha01

21 czerwca 2023 r.

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

Poprawki błędów

  • Zgodnie z 1.2.0-alpha07 i 1.2.0-alpha10 zmieniamy teraz DefaultTextStyle, aby wyłączyć dopełnianie czcionek i zapewnić spójność na całej platformie Android. Rozwiąże to niektóre problemy z przycinaniem tekstu przy dużych rozmiarach czcionki i może też wpłynąć na układy ekranu, więc testy zrzutów ekranu będą wymagać aktualizacji. Na przykład w tym miejscu widzimy obcięty tekst (Ic6a86).
Tekst ucięty przy dużym rozmiarze czcionki
Ilustracja 1. Tekst jest przycięty.
  • Gdy dopełnienie czcionki jest wyłączone, nie jest już widoczny:
Tekst nie jest przycinany przy dużym rozmiarze czcionki
Ilustracja 2. Tekst nie jest przycięty.
  • Zaktualizowaliśmy wear.compose.foundation, aby był zależnością interfejsu API wear.compose.material (I72004, b/285404743).
  • Naprawiliśmy błąd w SwipeToDismissBox. Klucze tła i treści są teraz przekazywane do bloku zapamiętywania, dzięki czemu w przypadku zmiany treści lub tła tworzone są nowe modyfikatory. (Ib876c, b/280392104)
  • Zaktualizowaliśmy TimeText, aby podczas wybierania formatu 12-godzinnego lub 24-godzinnego używać ustawień regionalnych. (If4a3d)
  • Naprawiliśmy niespójność w parametrach domyślnych SwipeToDismissBox contentScrimColor. (I2d70f)
  • Ulepszyliśmy obsługę ruchu w SwipeToReveal. (I28fb7)

Znane problemy

  • Obsługa rozmiarów czcionek skonfigurowanych przez użytkownika jest wymagana ze względu na ułatwienia dostępu. Wiemy, że wielowierszowe elementy Chip mogą powodować przycinanie tekstu, gdy są wyświetlane z dużymi rozmiarami czcionki, dlatego w wersji alfa 1.3 wprowadzimy aktualizację elementu Chip, która umożliwi dostosowywanie wysokości w takich przypadkach.

Wersja 1.2

Wersja 1.2.1

18 października 2023 r.

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

Poprawki błędów

  • Naprawiliśmy błąd, w wyniku którego usługa PositionIndicator znikała w nieprawidłowy sposób. (7a167f)

Wersja 1.2.0

9 sierpnia 2023 r.

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

Ważne zmiany od wersji 1.1.0

Wersja 1.2.0-rc01

26 lipca 2023 r.

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

Poprawki błędów

  • Ukończyliśmy tworzenie profili bazowych dla wersji 1.2 (Id5740).

Wersja 1.2.0-beta02

7 czerwca 2023 r.

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

Nowe funkcje

  • Dodaliśmy nową eksperymentalną zmienną LocalReduceMotion CompositionLocal, która wyłącza skalowanie i zanikanie w przypadku ScalingLazyColumn. (I58024)

Poprawki błędów

  • Zaktualizowaliśmy profile bazowe bibliotek kompozycji i materiałów na urządzenia z Wear OS(I4725d).
  • Usunęliśmy niespójność w wartościach domyślnych parametrów SwipeToDismissBox contentScrimColor (I2d70f).
  • Naprawiliśmy wartość domyślną DefaultTextStyle używaną w ustawieniu IncludeFontPadding (I737ed).

Wersja 1.2.0-beta01

24 maja 2023 r.

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

Co nowego w Compose na Wear OS 1.2

Wersja 1.2-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany (z wyjątkiem elementów oznaczonych jako eksperymentalne). Wear Compose 1.2 zawiera te nowe funkcje:

  • expandableItem i expandableItems to 2 nowe komponenty Foundation, które umożliwiają rozwijanie elementów w ScalingLazyColumn. Użyj expandableItem w przypadku pojedynczego elementu rozwijanego, np. tekstu, w którym liczba wierszy. Użyj symbolu expandableItems w przypadku grupy elementów, które można rozwinąć, a symbolu expandableButton, aby uprościć tworzenie przycisku, który zwija się po rozwinięciu treści.
  • HierarchicalFocusCoordinator – ten eksperymentalny komponent umożliwia oznaczanie poddrzew kompozycji jako włączonych lub wyłączonych pod kątem fokusu.
  • Picker – interfejs API zawiera teraz userScrollEnabled, aby określać, czy selektor jest aktywny podczas przewijania przez użytkownika.
  • PickerGroup – nowy komponent do obsługi wielu selektorów jednocześnie. Obsługuje on przenoszenie fokusu między selektorami za pomocą interfejsu HierarchicalFocusCoordinator API i umożliwia automatyczne wyśrodkowywanie elementów selektora.
  • Placeholder – wprowadziliśmy zmiany w animacjach połysku i „wycierania”. Efekt wycierania jest teraz stosowany natychmiast po przygotowaniu treści.
  • ScalingLazyColumn – przenieśliśmy ScalingLazyColumn i powiązane z nim klasy z androidx.wear.compose.material.ScalingLazyColumn do androidx.wear.compose.foundation.lazy.ScalingLazyColumn. Zaktualizuj aplikację, aby korzystać z wersji Foundation.Lazy.
  • SwipeToReveal – dodaliśmy eksperymentalną obsługę gestu przesuń, aby wyświetlić jako sposób dostępu do działań dodatkowych, uzupełniając dotychczasowy wzorzec „długie naciśnięcie”.
  • Stepper – ma teraz przeciążenie z dodatkowym parametrem enableRangeSemantics, który umożliwia wyłączenie domyślnej semantyki zakresu.
  • Previews – dodaliśmy te niestandardowe adnotacje do wyświetlania podglądu funkcji kompozycyjnych na ekranach urządzeń z Wear OS: WearPreviewSmallRound wyświetla podgląd funkcji kompozycyjnej na małym, okrągłym urządzeniu; WearPreviewLargeRound wyświetla podgląd funkcji kompozycyjnej na dużym, okrągłym urządzeniu; WearPreviewSquare wyświetla podgląd funkcji kompozycyjnej na kwadratowym urządzeniu. Oprócz tego adnotacje dotyczące podglądu i podglądu wielu elementów: WearPreviewFontScales wyświetla podgląd komponentów kompozycyjnych na urządzeniu do noszenia z różnymi rozmiarami czcionek, a WearPreviewDevices wyświetla podgląd komponentów kompozycyjnych na różnych urządzeniach do noszenia.
  • Dodaliśmy do Wear Compose adnotację DefaultTextStyle, która domyślnie ustawia wartość właściwości PlatformTextStyle.includeFontPadding na „true” (jest to obecne ustawienie). Dzięki temu będziemy mogli zsynchronizować domyślne wyłączanie dopełniania czcionek z bibliotekami Compose we wczesnej wersji alfa 1.3. Więcej informacji znajdziesz w wersji 1.2.0-alpha10.

Nowe funkcje

  • Dodaliśmy eksperymentalną obsługę wyłączonego skalowania i animacji zanikania, gdy włączone jest ustawienie reduce_motion. (I58024)

Poprawki błędów

  • Ulepszona dokumentacja angularWidthDp w CurvedSize.kt (Iab75c)
  • SwipeDismissableNavHost rejestruje teraz ostrzeżenie z potencjalnymi przyczynami pustego stosu wstecznego. Zapobiega to nieoczekiwanym awariom spowodowanym przez błąd IllegalArgumentException, który był zgłaszany, gdy stos wsteczny był pusty. (I04a81, b/277700155)

Wersja 1.2.0-alpha10

10 maja 2023 r.

Publikacja androidx.wear.compose:compose-*:1.2.0-alpha10 Wersja 1.2.0-alpha10 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy obsługę funkcji Przesuń, aby wyświetlić, która umożliwia dostęp do działań dodatkowych. Ten wzorzec uzupełnia wzorzec „długiego naciśnięcia”, czyli dotychczasowy sposób, w jaki użytkownik mógł wyświetlać (inne) działania dodatkowe. (I60862)

Zmiany w interfejsie API

  • Dodaliśmy RevealScope do komponentów kompozycyjnych działań w SwipeToReveal, co daje dostęp do przesunięcia, przy którym ujawniają się dodatkowe działania. (I3fd56)

Poprawki błędów

  • Rozwiązano problem z zablokowaniem ScalingLazyColumn na Wear API 33 po przesunięciu (Ic4599).
  • Wprowadziliśmy ulepszenia wydajności PositionIndicator, aby zmniejszyć zacinanie się. (I35e92)
  • Naprawiliśmy błąd w komponencie Chip i CompactChip, który powodował, że rola semantyczna nie była już ustawiana na Role.Button. (I93f91, b/277326264)

Znane problemy

  • Wykryliśmy błąd w Android Studio, który powoduje niepowodzenie renderowania podglądu, gdy jest on oznaczony adnotacjami @WearPreviewDevices i @WearPreviewFontScales. Wkrótce udostępnimy poprawkę. Pamiętaj, że pozostałe adnotacje podglądu Wear działają zgodnie z przeznaczeniem w Android Studio Giraffe 2022.3.1 i nowszych wersjach.

  • W wersji 1.2.0-alpha07 dodaliśmy do Wear Compose element DefaultTextStyle, zachowując dotychczasową wartość PlatformTextStyle.includeFontPadding jako true. Więcej informacji znajdziesz w artykule Fix font padding in Compose (Poprawianie dopełnienia czcionki w Compose). W jednej z wczesnych wersji alfa 1.3 zmienimy DefaultTextStyle, aby wyłączyć dopełnienie czcionki i zapewnić spójność na całej platformie Androida. Rozwiąże to problem z obcinaniem tekstu przy dużych rozmiarach czcionki i może też wpłynąć na układy ekranu, więc testy zrzutów ekranu będą wymagać aktualizacji. Na przykład przy dużych rozmiarach czcionki tekst jest ucięty:

Tekst ucięty przy dużym rozmiarze czcionki
Ilustracja 1. Tekst jest przycięty.
  • Gdy dopełnienie czcionki jest wyłączone, nie jest już widoczny:
Tekst nie jest przycinany przy dużym rozmiarze czcionki
Ilustracja 2. Tekst nie jest przycięty.

Nowe ustawienie można teraz zastosować, zastępując typografię w motywie – zobacz przykładowy kod.

Wersja 1.2.0-alpha09

19 kwietnia 2023 r.

Publikacja androidx.wear.compose:compose-*:1.2.0-alpha09 Wersja 1.2.0-alpha09 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaj angularSizeDp do CurvedModifier api, aby ustawić szerokość kątową w DP (I89a52)

Poprawki błędów

  • Rozwiązaliśmy problemy z dostępnością w naszych wersjach demonstracyjnych selektora czasu(Id0eb7).

Wersja 1.2.0-alpha08

5 kwietnia 2023 r.

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

Zmiany w interfejsie API

  • Zmieniliśmy nazwę ExpandableItemsState na ExpandableState. (If85ea)
  • Dodaliśmy expandableButton, aby uprościć tworzenie przycisku, który zwija się po rozwinięciu treści. Zaktualizowaliśmy też przykłady elementów rozwijanych. (Iae309)

Poprawki błędów

  • Ulepszone rozwijane przykłady, które pokazują więcej możliwości. Zmodyfikowano animację expandableItem, aby jej zawartość była wyśrodkowana przez cały czas trwania animacji. (I2f637)
  • Zaktualizowano ToggleControls, aby uniknąć dodatkowych ponownych kompozycji podczas ręcznego animowania kolorów za pomocą stanu. (I5d319)

Wersja 1.2.0-alpha07

22 marca 2023 r.

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

Zmiany w interfejsie API

  • Przenieśliśmy komponenty rozwijanego elementu (dodane w wersji 1.2.0-alpha06) z biblioteki Material do biblioteki Foundation, ponieważ nie miały one znaczącego odniesienia do MaterialTheme. (Ib0525)

Poprawki błędów

  • Rozwiązaliśmy problem z awarią, która występowała na ekranie korzystającym z PickerGroup. Zapewniliśmy, że PickerGroup prawidłowo obsługuje fokus, gdy żaden selektor nie jest aktywny. Dodaliśmy też obsługę przewijania RSB w naszych wersjach demonstracyjnych selektora. (If8c19)
  • Ulepszyliśmy przejścia w oknach dialogowych – przejście wprowadzające jest teraz płynniejsze i dopasowane do przejścia końcowego. (Ib5af9)
  • Dodaliśmy do Wear Compose adnotację DefaultTextStyle, która domyślnie ustawia właściwość PlatformTextStyle.includeFontPadding na wartość „true” (jest to obecne ustawienie). Dzięki temu w przyszłości będziemy mogli domyślnie synchronizować wyłączanie dopełniania czcionek z bibliotekami Compose. Więcej informacji znajdziesz w artykule Fix font padding in Compose (Naprawianie dopełniania czcionek w Compose). (I2aee8)
  • Cofnięto zależność podglądu UpsideDownCake za pomocą activity-compose, która blokowała publikowanie aplikacji w Sklepie Google Play. (I6443d)

Wersja 1.2.0-alpha06

8 marca 2023 r.

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

Zmiany w interfejsie API

  • Dodaj komponent CurvedBox, który umieszcza komponenty jeden na drugim w zakrzywionym świecie. (I29200)
  • Dodano rozwijane elementy – 2 nowe komponenty obsługujące grupę rozwijanych elementów w ScalingLazyColumn lub rozwijany pojedynczy element, np. tekst, w którym zwiększa się liczba wierszy. (I95dd5)
  • Dodaliśmy te niestandardowe adnotacje do wyświetlania podglądu funkcji kompozycyjnych na ekranach urządzeń z Wear OS: WearPreviewSmallRound wyświetla podgląd funkcji kompozycyjnej na małym, okrągłym urządzeniu; WearPreviewLargeRound wyświetla podgląd funkcji kompozycyjnej na dużym, okrągłym urządzeniu; WearPreviewSquare wyświetla podgląd funkcji kompozycyjnej na kwadratowym urządzeniu. Oprócz tego adnotacje dotyczące podglądu i podglądu wielu elementów: WearPreviewFontScales wyświetla podgląd komponentów kompozycyjnych na urządzeniu do noszenia z różnymi rozmiarami czcionek, a WearPreviewDevices wyświetla podgląd komponentów kompozycyjnych na różnych urządzeniach do noszenia. Aby korzystać z tych podglądów, musisz używać najnowszej wersji Android Studio (Giraffe Canary 6) lub nowszej. Pamiętaj, że jeśli te adnotacje nie odpowiadają Twoim potrzebom, nadal możesz używać podglądu i dostosowywać go za pomocą parametrów. (I397ff)
  • Oznaczyliśmy HierarchicalFocusCoordinator jako eksperymentalną, ponieważ ze względu na szerokie zastosowanie rozważamy przeniesienie jej do podstawowych bibliotek Compose. (I3a768)

Poprawki błędów

  • Naprawiliśmy błąd w HierarchicalFocusCoordinator, który powodował, że po zmianie funkcji lambda przekazywanej w parametrze focusEnabled nie używaliśmy nowej funkcji. (Icb353)
  • Zaktualizowaliśmy domyślny kolor wyłączonych treści na kolor tła, gdy jako tło w usługach Button, CompactButton, Chip, CompactChip i ToggleButton używane są kolory podstawowe. Poprawia to kontrast, co ułatwia dostęp. (I527cc)

Wersja 1.2.0-alpha05

22 lutego 2023 roku

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

Zmiany w interfejsie API

  • Zaktualizowano interfejs PickerGroup API, aby umożliwić opcjonalne propagowanie minimalnych ograniczeń do komponentu. Jeśli ten parametr ma wartość Prawda, w PickerGroup będą dozwolone minimalne ograniczenia przekazane z elementu kompozycyjnego nadrzędnego. Jeśli ma wartość „false”, PickerGroup zresetuje minimalne ograniczenia. (I3e046)
  • Dodaliśmy do interfejsu Picker API parametr animateScrollToOption, aby obsługiwać programową animację do określonej opcji selektora (I6fe67).

Poprawki błędów

  • Zaktualizowaliśmy HorizontalPageIndicator, aby obsługiwać układy od prawej do lewej. (Ia4359)
  • Dodano testy zrzutów ekranu dla układu od prawej do lewej w HorizontalPageIndicator (I6fbb8)
  • Dodano kolejne testy do SwipeDismissableNavHostTest, które korzystają z TestNavHostController (I61d54)

Wersja 1.2.0-alpha04

8 lutego 2023 r.

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

Nowe funkcje

  • PickerGroup do obsługi wielu selektorów jednocześnie za pomocą interfejsu API fokusu. Zarządza on przenoszeniem fokusu między różnymi selektorami, umożliwia automatyczne wyśrodkowywanie selektorów na podstawie parametrów i pozwala programistom zmieniać fokus między różnymi selektorami podczas obsługi zdarzeń z grupy. W trybie TalkBack element PickerGroup obsługuje zaznaczenie przez TalkBack, przenosząc zaznaczenie na wybrany selektor z grupy. (I60840)

Zmiany w interfejsie API

  • Dodaliśmy do komponentu Stepper przeciążenie z dodatkowym parametrem enableRangeSemantics, aby ułatwić wyłączanie domyślnej semantyki zakresu (Ia61d4).

Poprawki błędów

  • Zezwalaj na zagnieżdżanie elementu ScalingLazyColumn na stronie przewijanej w poziomie (Iec3f8, b/266555016)
  • Ulepszenie dokumentacji Stepper i StepperTest oczyszczenie testów. (Ic118e)
  • Zaktualizowano zależność androidx.navigation do wersji 2.5.3 (If58ed)

Wersja 1.2.0-alpha03

25 stycznia 2023 r.

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

Zmiany w interfejsie API

  • Przenieśliśmy ScalingLazyColumn (i powiązane z nim klasy) z androidx.wear.compose.material.ScalingLazyColumn do andrdoidx.wear.compose.foundation.lazy.ScalingLazyColumn (przykład migracji znajdziesz tutaj). Nowa lokalizacja jest bardziej zbliżona do lokalizacji compose.foundation.lazy.LazyColumn i bardziej naturalna, ponieważ nie jest to komponent Material. Zmiana jest wprowadzana teraz w ramach przygotowań do nowej biblioteki Material3, nad którą będziemy pracować równolegle z dotychczasową biblioteką Material. (I060e7)

W ramach migracji ScalingLazyColumn z Material Design do Foundation.Lazy wprowadziliśmy te zmiany:

  • PositionIndicator Interfejsy API kierowane na Material ScalingLazyColumn zostały wycofane. Zaktualizuj je do wersji Foundation.Lazy ScalingLazyColumn. Dodatkowo do ScalingLazyListLayoutInfo dodano pole anchorType. (I29d95)
  • ScalingLazyColumn został oznaczony jako wycofany w pakiecie Wear Compose Material (I16d34).
  • Zaktualizowaliśmy modyfikator ScrollAway, aby używać ScalingLazyListState z Wear Compose Foundation.Lazy, i wycofaliśmy przeciążenie, które pobierało ScalingLazyListState z Wear Compose Material. (Ifc42c)
  • Zaktualizowaliśmy interfejsy API okien dialogowych, aby używały ScalingLazyListState z Foundation.Lazy, i wycofaliśmy przeciążenia, które używały komponentu Material ScalingLazyListState (Ic8960).
  • Zaktualizowaliśmy interfejsy Picker API, aby używać ScalingParams zamiast Foundation.Lazy, i wycofaliśmy przeciążenia, które używały ScalingParams Material. (Idc3d8)

Poprawki błędów

  • Naprawiliśmy błąd, który powodował niepotrzebne ponowne kompozycje w ScalingLazyListState.centerItemIndex. Zapewniliśmy, że aktualizacje są przesyłane tylko wtedy, gdy wartość faktycznie się zmienia (Ia9f38).
  • Poprawiliśmy wydajność SwipeToDismissBox (I3933b).
  • Dodano testy porównawcze dla ScalingLazyColumn w Wear Compose Foundation (Ie00f9)
  • Zaktualizowaliśmy niektóre wewnętrzne metody klas ScalingLazyColumn w Material, aby używać ich odpowiedników z Foundation.Lazy (I38aab).
  • Rozwiązaliśmy kilka problemów w testach selektora i dodaliśmy więcej testów sprawdzających przewijanie z przesunięciem (I6ac34).
  • Przenieśliśmy ScalingLazyColumndemonstracje integracji, aby były zależne od Foundation.Lazy, a nie od Material ScalingLazyColumn (Ic6caa).
  • Do naszej wersji demonstracyjnej DatePicker (I961cd) dodaliśmy opcjonalne parametry fromDate/toDate.

Wersja 1.2.0-alpha02

11 stycznia 2023 r.

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

Zmiany w interfejsie API

  • Testy interfejsu Android Compose będą teraz uruchamiać przebiegi układu dla każdej klatki podczas wykonywania klatek, aby przejść do stanu bezczynności (np. za pomocą waitForIdle). Może to mieć wpływ na testy, które sprawdzają poszczególne klatki animacji układu. (I8ea08, b/222093277)
  • Do Wear Text dodano parametr minLines, aby zapewnić spójne działanie z parametrem BasicText (I24874).
  • CompactChipTapTargetPadding został(a) udostępniony(a) publicznie, aby pojawiał się w dokumentacji (If1e70, b/234119038).

Poprawki błędów

  • Wyłączanie kompilacji wieloplatformowych dla pakietów wear.compose (Iad3d7)
  • Poprawianie dokumentów w usłudze KDocs w przypadku scrollToOption (I6f9a0)
  • PlaceholderState.rememberPlaceholderState() zaktualizowano, aby używać rememberUpdatedState, dzięki czemu stan będzie się aktualizować, jeśli onContentReady lambda. (I02635, b/260343754)
  • Rozwiązaliśmy problem z drganiem tekstu w komponencie Picker, korzystając z nowej strategii kompozycji dodanej do Modifier.graphicsLayer. (I99302)
  • Naprawiliśmy błąd, który powodował migotanie w naszej wersji demonstracyjnej DatePicker (I660bd).
  • Ulepszyliśmy dostępność wersji demonstracyjnych selektora daty i godziny w formacie 12-godzinnym (I05e12).
  • Zaktualizowaliśmy wersje demonstracyjne selektora daty i godziny, aby nie były one modyfikowane przez zmiany w RSB, gdy nie są wybrane (I4aecb).

Wersja 1.2.0-alpha01

7 grudnia 2022 r.

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

Nowe funkcje

  • Zaktualizowaliśmy eksperymentalną funkcję elementu zastępczego, aby efekt „Ścieranie” był stosowany natychmiast po przygotowaniu treści, a nie po rozpoczęciu kolejnej pętli animacji. Wprowadziliśmy też pewne zmiany w animacjach połysku i wycierania. (I5a7f4)

Zmiany w interfejsie API

  • Dodaliśmy funkcję HierarchicalFocusCoordinatorcomposable, która umożliwia oznaczanie poddrzew kompozycji jako włączonych lub wyłączonych pod kątem fokusu.(I827cb)
  • Dodaliśmy nową właściwość, która zastępuje rolę semantyczną elementu ToggleButton.(I67132)
  • Zaktualizowaliśmy TimeTextDefaults.TimeFormat12Hours, aby usunąć AM/PM w TimeText. Spowoduje to zmianę domyślnej wartości parametrów timeSource w interfejsie TimeText API. (I1eb7f)
  • Rozszerzyliśmy interfejs Picker API, aby poprawić dostępność ekranów z wieloma selektorami. Dodaliśmy nową właściwość userScrollEnabled, która określa, czy selektor jest aktywny podczas przewijania przez użytkownika. (I3c3aa)

Poprawki błędów

  • Zmieniliśmy domyślną szerokość obramowania elementu OutlinedButton/OutlinedCompactButton z 2 dp na 1 dp, aby była zgodna ze specyfikacjami UX. (Icf84d)
  • Aby zmniejszyć efekt pierwszego elementu dodanego do pustej listy ScalingLazyColumn, który wydaje się przewijać na miejsce, dodaliśmy szacunkową wartość autoCentering topPadding, gdy zawartość jest pusta. Ta zmiana oblicza ilość dopełnienia u góry potrzebnego przy założeniu, że początkowy element ma wysokość 0 dp. W przypadku ScalingLazyListAnchorType.ItemStart obliczy to prawidłowe dopełnienie u góry, a w przypadku ScalingLazyListAnchorType.ItemCenter obliczenia będą nieprawidłowe, ponieważ do prawidłowego określenia rozmiaru treści potrzebna jest wysokość elementów, co spowoduje niewielki efekt przewijania na miejsce na podstawie rzeczywistej wysokości elementów.(I239a4)
  • Zaktualizowaliśmy tło zastosowane w animacji SwipeToDismiss, aby pasowało do platformy Wear. (I9003e)
  • Naprawiliśmy obsługę PositionIndicator w przypadku LazyListState i ScalingLazyListState dla elementów listy o rozmiarze 0, aby uniknąć błędów dzielenia przez zero.(Ic28dd)

Wersja 1.1

Wersja 1.1.2

8 lutego 2023 r.

androidx.wear.compose:compose-foundation:1.1.2, androidx.wear.compose:compose-material:1.1.2 i androidx.wear.compose:compose-navigation:1.1.2 są udostępnione. Wersja 1.1.2 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiliśmy błąd, który powodował niepotrzebne ponowne komponowanie w ScalingLazyListState.centerItemIndex. Zapewniliśmy, że aktualizacje są przesyłane tylko wtedy, gdy wartość faktycznie się zmienia (Ia9f38).

Wersja 1.1.1

11 stycznia 2023 r.

androidx.wear.compose:compose-foundation:1.1.1, androidx.wear.compose:compose-material:1.1.1 i androidx.wear.compose:compose-navigation:1.1.1 są udostępnione. Wersja 1.1.1 zawiera te zatwierdzenia.

Poprawki błędów

  • PlaceholderState.rememberPlaceholderState() zaktualizowano, aby używać rememberUpdatedState, dzięki czemu stan będzie się aktualizować, jeśli onContentReady lambda. (I02635, b/260343754)

Wersja 1.1.0

7 grudnia 2022 r.

androidx.wear.compose:compose-foundation:1.1.0, androidx.wear.compose:compose-material:1.1.0 i androidx.wear.compose:compose-navigation:1.1.0 są udostępnione. Wersja 1.1.0 zawiera te zmiany.

Ważne zmiany od wersji 1.0.0

Nowe funkcje

  • Zaktualizowaliśmy eksperymentalną funkcję elementu zastępczego, aby efekt „Ścieranie” był stosowany natychmiast po przygotowaniu treści, a nie po rozpoczęciu kolejnej pętli animacji. Wprowadziliśmy też pewne zmiany w animacjach połysku i wycierania. (I5a7f4)

Poprawki błędów

  • Zmieniliśmy domyślną szerokość obramowania elementu OutlinedButton/OutlinedCompactButton z 2 dp na 1 dp, aby była zgodna ze specyfikacjami UX. (Icf84d)
  • Aby zmniejszyć efekt pierwszego elementu dodanego do pustego kontenera ScalingLazyColumn, który wydaje się przewijać na miejsce, dodaliśmy szacunkową wartość autoCentering topPadding, gdy kontener jest pusty. Ta zmiana oblicza ilość dopełnienia u góry, zakładając, że początkowy element ma wysokość 0 dp. W przypadku ScalingLazyListAnchorType.ItemStart obliczy to prawidłowy górny odstęp, a w przypadku ScalingLazyListAnchorType.ItemCenter obliczenia będą nieprawidłowe, ponieważ do prawidłowego określenia rozmiaru treści potrzebna jest wysokość elementów, co spowoduje niewielkie przewijanie do miejsca docelowego na podstawie rzeczywistej wysokości elementów.(I239a4)
  • Zaktualizowaliśmy tło zastosowane do animacji SwipeToDismiss, aby pasowało do platformy Wear.(I9003e)
  • Naprawiliśmy w PositionIndicator obsługę LazyListState i ScalingLazyListState w przypadku elementów listy o rozmiarze 0, aby uniknąć błędów dzielenia przez zero.(Ic28dd)

Wersja 1.1.0-rc01

9 listopada 2022 r.

androidx.wear.compose:compose-foundation:1.1.0-rc01, androidx.wear.compose:compose-material:1.1.0-rc01 i androidx.wear.compose:compose-navigation:1.1.0-rc01 są udostępnione. Wersja 1.1.0-rc01 zawiera te zmiany.

Poprawki błędów

  • Dodaliśmy podstawowe reguły profilu dla Placeholders, ScrollAway, RadioButton, Switch, Checkbox, OutlinedButton, OutlinedCompactButton, OutlinedChip i OutlinedCompactChip. (I8249c)
  • Naprawiliśmy błąd w Modifier.scrollAway, dzięki czemu jeśli określony element itemIndex jest nieprawidłowy (np. jeśli indeks elementu jest poza zakresem), element TimeText będzie nadal wyświetlany. (I2137a)
  • Zaktualizowaliśmy SwipeToDismissBox animację, aby była zgodna z implementacją na platformie. Po początkowej animacji ściśnięcia ekran przesuwa się w prawo po wywołaniu zamknięcia. (I41d34)
  • W celu optymalizacji zaktualizowaliśmy Modifier.scrollAway, aby odczytywać tylko scrollState w bloku miary, co pozwala uniknąć ponownego komponowania modyfikatora po każdym ponownym pomiarze. (I4c6f1)
  • Dodaliśmy dokumentację i przykłady dotyczące elementów zastępczych, aby pokazać prawidłową kolejność elementów Modifier.placeholder i Modifier.placeholderShimmer w przypadku zastosowania ich w tym samym komponencie. (Ie96f4, b/256583229)
  • Zmieniliśmy domyślną szerokość obramowania elementu OutlinedCompactChip/OutlinedChip z 2 dp na 1 dp, aby była zgodna ze specyfikacjami UX. (Ib3d8e)
  • Naprawiliśmy błąd w rememberPickerState, który powodował, że zaktualizowane dane wejściowe nie były zapisywane, więc elementy kompozycyjne nie były aktualizowane po zmianach danych wejściowych. (I49ff6, b/255323197)
  • Wprowadziliśmy kilka zmian w interfejsie użytkownika dotyczących elementów zastępczych: 1) zmieniliśmy gradient połysku na 1, 5-krotność rozmiaru ekranu, 2) dodaliśmy funkcję łagodzenia (krzywa Beziera) progresji połysku i 3) przyspieszyliśmy animację wymazywania (250 ms). (Id29c1)
  • Naprawiliśmy błąd interfejsu w efekcie wymazywania elementu zastępczego, w którym tła komponentów Chip i Card były wymazywane nieco wcześniej, ponieważ nie uwzględniały pozycji komponentu na ekranie. (I2c7cb)
  • Zaktualizowaliśmy rysowanie tła elementu zastępczego, aby w miarę możliwości łączyć kolory, a nie nakładać ich na siebie. Zmniejsza to ryzyko mieszania alfa różnych przyciętych warstw, które mogłoby powodować przenikanie kolorów tła na krawędziach elementu zastępczego. (I2ea26)
  • Poprawiliśmy obliczanie wartości ScalingLazyListState.centerItemIndex/centerItemOffset, tak aby w przypadku, gdy 2 produkty znajdują się po obu stronach linii środkowej obszaru wyświetlania, za centerItem uznawany był produkt znajdujący się bliżej. (I30709, b/254257769)
  • Usunęliśmy błąd w ScalingLazyListState.layoutInfo.visibleItemsInfo, który podczas inicjowania ScalingLazyColumn powodował raportowanie nieprawidłowych przesunięć. Teraz zwracana będzie pusta lista, dopóki wszystkie elementy listy nie będą widoczne i nie będą miały prawidłowych przesunięć. Sprawdzenie ScalingLazyListState.layoutInfo.visibleItemsInfo.isNotEmpty() potwierdzi, że inicjowanie ScalingLazyColumn zostało zakończone i elementy są widoczne. (I3a3b8)

Wersja 1.1.0-beta01

24 października 2022 r.

androidx.wear.compose:compose-foundation:1.1.0-beta01, androidx.wear.compose:compose-material:1.1.0-beta01 i androidx.wear.compose:compose-navigation:1.1.0-beta01 są udostępnione. Wersja 1.1.0-beta01 zawiera te zmiany.

Co nowego w Compose na Wear OS 1.1

Wersja 1.1.0-beta01 biblioteki Compose na Wear OS wskazuje, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany.

  • Wersja 1.1 Wear Compose zawiera te nowe funkcje:
    • Selektor – ulepszenia ułatwień dostępu w selektorze, dzięki którym ekrany selektora wielokrotnego są dostępne dla czytników ekranu, a opis treści jest dostępny.
    • Parametr selektora contentDescription jest teraz używany tylko w przypadku wybranej opcji selektora i przyjmuje ciąg znaków z wartością null (w poprzedniej wersji konieczne było przekazanie mapowania z opcji na opis treści, ale używana była tylko wybrana opcja).
    • Elementy selektora są teraz zawsze wyśrodkowane, co rozwiązuje problem polegający na tym, że ustawienie wartości gradientRatio na zero powodowało zmianę wyrównania.
    • Chip/ToggleChip – zaktualizowaliśmy domyślne gradienty dla Chip/ToggleChip, aby dostosować je do najnowszej specyfikacji UX. Wartość ChipDefaults.gradientBackgroundChipColors została zmieniona z 32,5% na 50% koloru podstawowego.
    • Chip/ToggleChip – Dodano przeciążenia do modyfikowania kształtów elementów.
    • Chip/Button/ToggleButton – Dodano nowy styl konturowy dla elementów Chip i Button oraz nowe komponenty OutlinedChip i OutlinedButton, które zapewniają przezroczysty Chip/Button z cienką obwódką.
    • Karta – zaktualizowano domyślne gradienty na kartach, aby były zgodne z najnowszą specyfikacją UX. Zaktualizowano CardDefaults.cardBackgroundPainter, aby zaczynał się od 30% koloru podstawowego i kończył na 20% onSurfaceVariant (wcześniej było to od 20% do 10% onSurfaceVariant). ToggleChip.toggleChipColors zmienia się z gradientu liniowego od 75% koloru powierzchni do 32,5% koloru podstawowego do 0% koloru powierzchni do 50% koloru podstawowego.
    • Button/ToggleButton – dodano właściwości do modyfikowania kształtów przycisków.
    • Motyw – zaktualizowaliśmy kilka domyślnych kolorów w MaterialTheme, aby poprawić dostępność, ponieważ pierwotne kolory nie miały wystarczającego kontrastu, co utrudniało użytkownikom odróżnianie tła elementów (np. przycisków, kart czy elementów do kliknięcia) od koloru tła motywu.
    • InlineSlider/Stepper – Dodano role przycisków, aby Talkback mogła rozpoznawać je jako przyciski.
    • Platforma – PositionIndicator jest teraz umieszczana i rozmieszczana tak, aby zajmowała tylko potrzebną przestrzeń. Jest to przydatne np. w przypadku dodania do niego informacji semantycznych. Czytnik ekranu TalkBack uzyskuje teraz prawidłowe granice elementu PositionIndicator na ekranie.
    • CurvedText/TimeText – dodano Modifier.scrollAway, które przewija element w pionie w górę lub w dół w zależności od stanu przewijania (z przeciążeniami do pracy z Column, LazyColumn i ScalingLazyColumn). Funkcja ScrollAway jest zwykle używana do przewijania elementu TimeText poza widok, gdy użytkownik zaczyna przewijać listę elementów w górę.
    • CurvedText/TimeText – dodaliśmy obsługę funkcji fontFamily, fontStyle i fontSynthesis w CurvedTextStyle, które można stosować w curvedText i basicCurvedText.
    • CurvedText/TimeText – dodano fontWeight do konstruktora i metody kopiowania w CurvedTextStyle
    • ToggleControls – dodano animowane przełączniki Checkbox, Switch i RadioButton do użycia z ToggleChip i SplitToggleChip. Można ich używać zamiast statycznych ikon dostarczanych przez ToggleChipDefaults (switchIcon, checkboxIcon i radioIcon).
    • Obiekt zastępczy – dodano eksperymentalną obsługę obiektów zastępczych. Ma 3 różne efekty wizualne, które zostały zaprojektowane tak, aby ze sobą współgrały.
    • Po pierwsze, efekt pędzla tła zastępczego używany w kontenerach, takich jak przyciski i karty, do rysowania na normalnym tle podczas oczekiwania na załadowanie treści.
    • Po drugie, modyfikator (Modifier.placeholder()) do narysowania widżetu zastępczego w kształcie stadionu na wczytywanych treściach.
    • Po trzecie, efekt gradientu lub połysku modyfikatora (Modifier.placeholderShimmer()), który jest rysowany na wierzchu innych efektów, aby poinformować użytkowników, że czekamy na załadowanie danych.
      • Wszystkie te efekty są skoordynowane i wyświetlają się w zsynchronizowany sposób.
  • Zaktualizowano zależności podstawowe Compose z wersji 1.2 do 1.3

Zmiany w interfejsie API

  • Parametry czcionki (fontFamily, fontWeight, fontStyle i fontSynthesis) można teraz określać bezpośrednio jako parametry funkcji curvedText (Idc422).

Poprawki błędów

  • curveText i basicCurvedText będą teraz prawidłowo działać z funkcją TalkBack (mają powiązany z nimi węzeł compose-ui o odpowiednim rozmiarze i położeniu, ale pusty, który używa tekstu jako opisu treści) (I7af7c, b/210721259).
  • Poprawka błędu w Picker, gdy PickerState.repeatedItems = false, aby dodać wyraźne ustawienie parametrów automatycznego wyśrodkowania w wewnętrznym ScalingLazyColumn selektorów, aby umożliwić przewijanie zerowej opcji na środek widoku. (I8a4d7)

Wersja 1.1.0-alpha07

5 października 2022 r.

androidx.wear.compose:compose-foundation:1.1.0-alpha07, androidx.wear.compose:compose-material:1.1.0-alpha07 i androidx.wear.compose:compose-navigation:1.1.0-alpha07 są udostępnione. Wersja 1.1.0-alpha07 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy eksperymentalną obsługę elementów zastępczych. Ma 3 różne efekty wizualne, które zostały zaprojektowane tak, aby ze sobą współgrały. Po pierwsze, efekt pędzla tła zastępczego używany w kontenerach, takich jak przyciski i karty, do rysowania na normalnym tle podczas oczekiwania na załadowanie treści. Po drugie, modyfikator (Modifier.placeholder()), który rysuje widżet zastępczy w kształcie stadionu na wczytywanych treściach. Po trzecie, efekt gradientu lub połysku modyfikatora (Modifier.placeholderShimmer()), który jest rysowany na wierzchu innych efektów, aby poinformować użytkowników, że czekamy na załadowanie danych. Wszystkie te efekty są skoordynowane i wyświetlają się w zsynchronizowany sposób. (I3c339)

Zmiany w interfejsie API

  • Dodaliśmy obsługę atrybutów fontWeight, fontFamily, fontStyle i fontSynthesis w elemencie CurvedTextStyle, który można stosować w przypadku elementów curvedText i basicCurvedText. Za pomocą tych parametrów możesz określić czcionkę i styl, które mają być używane w przypadku zakrzywionego tekstu.(Iaa1a8),(I72759)
  • Zaktualizowano parametr przesunięcia Modifier.scrollAway do Dp, aby był zgodny z parametrem Modifier.offset (wcześniej był podawany w pikselach). Został też przekształcony w LayoutModifier w celu zwiększenia wydajności. (I9f94b)
  • W ramach nowego interfejsu API przełączników zmieniliśmy nazwę RadioButton’s circleColor na ringColor. (I28fa9)
  • Dodaliśmy animowane przełączniki Checkbox, Switch i RadioButton do użycia z ToggleChip i SplitToggleChip. Można ich używać zamiast ikon statycznych udostępnianych przez ToggleChipDefaults (switchIcon, checkboxIcon i radioIcon). (I8a8c4)

Wersja 1.1.0-alpha06

21 września 2022 r.

androidx.wear.compose:compose-foundation:1.1.0-alpha06, androidx.wear.compose:compose-material:1.1.0-alpha06 i androidx.wear.compose:compose-navigation:1.1.0-alpha06 są udostępnione. Wersja 1.1.0-alpha06 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy funkcję Modifier.scrollAway, która przewija element w pionie, aby go wyświetlić lub ukryć, w zależności od stanu przewijania (z przeciążeniami do pracy z funkcjami Column, LazyColumn i ScalingLazyColumn). Funkcja ScrollAway jest zwykle używana do przewijania elementu TimeText poza widok, gdy użytkownik zaczyna przewijać listę elementów w górę. (I61766)

Poprawki błędów

  • PositionIndicator jest teraz umieszczony i rozmiarowany tak, aby zajmował tylko potrzebną przestrzeń. Jest to przydatne np. w przypadku dodania do niego informacji semantycznych. Czytnik ekranu TalkBack uzyskuje teraz prawidłowe granice elementu PositionIndicator na ekranie. (Ie6106, b/244409133)

Wersja 1.1.0-alpha05

7 września 2022 roku

androidx.wear.compose:compose-foundation:1.1.0-alpha05, androidx.wear.compose:compose-material:1.1.0-alpha05 i androidx.wear.compose:compose-navigation:1.1.0-alpha05 są udostępnione. Wersja 1.1.0-alpha05 zawiera te zmiany.

Poprawki błędów

  • Do elementów InlineSlider i Stepper dodano role przycisków, aby Talkback mógł je rozpoznawać jako przyciski. (Icb46c, b/244260275)
  • Poprawiliśmy kolejność osi Z w przypadku wskaźników pozycji i strony w komponencie Scaffold. Wskaźniki będą teraz wyświetlane nad winietą, więc nie będą przez nią zasłaniane. (Ib988f, b/244207528)

Wersja 1.1.0-alpha04

24 sierpnia 2022 r.

androidx.wear.compose:compose-foundation:1.1.0-alpha04, androidx.wear.compose:compose-material:1.1.0-alpha04 i androidx.wear.compose:compose-navigation:1.1.0-alpha04 są udostępnione. Wersja 1.1.0-alpha04 zawiera te zmiany.

Zmiany w interfejsie API

  • Zaktualizowaliśmy kilka domyślnych kolorów w motywie MaterialTheme, aby poprawić dostępność, ponieważ oryginalne kolory nie miały wystarczającego kontrastu, co utrudniało użytkownikom odróżnianie tła elementów, kart i przycisków od koloru tła motywu. Zaktualizowane kolory to surface(0xFF202124->0xFF303133), onPrimary(0xFF202124->0xFF303133), onSecondary(0xFF202124->0xFF303133), primaryVariant(0xFF669DF6->0xFF8AB4F8) i onError(0xFF202124->0xFF000000). Zmiany kolorów, choć stosunkowo subtelne, mogą wpłynąć na dotychczasowe testy zrzutów ekranu. (81ab09)

Poprawki błędów

  • Naprawiono błąd logiczny w ScalingLazyColumn, który mógł powodować, że listy z niewielką liczbą elementów (zwykle dokładnie 2) nie kończyły inicjowania i w rezultacie były przezroczyste. (504347)

Wersja 1.1.0-alpha03

10 sierpnia 2022 r.

androidx.wear.compose:compose-foundation:1.1.0-alpha03, androidx.wear.compose:compose-material:1.1.0-alpha03 i androidx.wear.compose:compose-navigation:1.1.0-alpha03 są udostępnione. Wersja 1.1.0-alpha03 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy nowy styl konturowy dla elementów Chips i Buttons oraz nowe komponenty OutlinedChip i OutlinedButton, które zapewniają przezroczysty element Chip/Button z cienką obwódką. (Id5972)

Zmiany w interfejsie API

  • Dodano przeciążenia do modyfikowania kształtów przycisków (Icccde)

Poprawki błędów

  • Poprawiliśmy rozmiar obszaru przełącznika ToggleChip, ponieważ nie był zgodny ze specyfikacją UX. Specyfikacja UX wymaga odstępu 4 dp między etykietą a obszarem ikony przełącznika o wymiarach 24 x 24 dp, co daje łączną szerokość 28 dp. Jednak wdrożenie nieprawidłowo podaje obszar sterowania przełącznikiem o wymiarach 36x24.dp. Powoduje to zmniejszenie obszaru etykiety tekstowej o 8 dp. UWAGA: ta poprawka błędu zapewnia dodatkowe miejsce na etykietę tekstową, co może (pozytywnie) wpłynąć na układ tekstu w przypadku przepełnienia. Jeśli masz testy zrzutów ekranu zawierające ToggleChips, może być konieczne ich zaktualizowanie. (I514c8, b/240548670)

Wersja 1.1.0-alpha02

27 lipca 2022 roku

androidx.wear.compose:compose-foundation:1.1.0-alpha02, androidx.wear.compose:compose-material:1.1.0-alpha02 i androidx.wear.compose:compose-navigation:1.1.0-alpha02 są udostępnione. Wersja 1.1.0-alpha02 zawiera te zmiany.

Nowe funkcje

  • Zmieniliśmy zależności Compose na Wear OS od podstawowych bibliotek Compose z wersji 1.2.0 na 1.3.0-alpha0X.

Zmiany w interfejsie API

  • Dodano przeciążenia do modyfikowania kształtów elementów (I02e87)

Poprawki błędów

  • Animowaliśmy widoczność winiety podczas wyświetlania i ukrywania okna, aby zachować spójność z dotychczasową animacją skalowania. (Ida33e)
  • Usunęliśmy błąd, który w przypadku niektórych gestów przesuwania podczas przewijania mógł powodować dzielenie przez zero. (I86cb6)
  • Naprawiliśmy błąd w ChipDefaults.childChipColor(), aby kolor tła wyłączonego elementu był w pełni przezroczysty. (I2b3c3, b/238057342)

Wersja 1.1.0-alpha01

29 czerwca 2022 r.

androidx.wear.compose:compose-foundation:1.1.0-alpha01, androidx.wear.compose:compose-material:1.1.0-alpha01 i androidx.wear.compose:compose-navigation:1.1.0-alpha01 są udostępnione. Wersja 1.1.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • Parametr contentDescription selektora jest teraz używany tylko w przypadku wybranej opcji selektora i przyjmuje ciąg znaków z wartością null (wcześniej konieczne było przekazanie mapowania opcji na opis treści, ale używana była tylko wybrana opcja). (Ife6a7)
  • Wprowadziliśmy ulepszenia ułatwień dostępu w selektorze, dzięki czemu ekrany selektora wielokrotnego można obsługiwać za pomocą czytników ekranu, a opis treści jest dostępny (I64edb).

Poprawki błędów

  • Zaktualizowaliśmy reguły profilu podstawowego dołączone do biblioteki Wear Compose (I9c694).
  • Poprawiliśmy kierunek gradientu w przypadku elementów w trybie od prawej do lewej. Był od lewego górnego do prawego dolnego, a teraz jest od prawego górnego do lewego dolnego. (Ic2e77)
  • Zaktualizowaliśmy domyślne gradienty dla Chip/ToggleChip/Card, aby dostosować je do najnowszej specyfikacji UX. Wartość ChipDefaults.gradientBackgroundChipColors została zmieniona z 32,5% na 50% koloru podstawowego. CardDefaults.cardBackgroundPainter został zaktualizowany i zaczyna się od 30% koloru podstawowego, a kończy na 20% onSurfaceVariant (wcześniej było to od 20% do 10% onSurfaceVariant). ToggleChip.toggleChipColors zmienia się z gradientu liniowego od 75% koloru powierzchni do 32,5% koloru podstawowego do 0% koloru powierzchni do 50% koloru podstawowego. (I43bbd)
  • Dodaliśmy kolor tła (MaterialTheme.color.surface) za ikonami Chip/ToggleChips, które mają tło gradientowe, aby zapewnić ich prawidłową widoczność w mało prawdopodobnym przypadku, gdy za nimi zostanie użyty jasny kolor. (Ibe1a4, b/235937657)
  • Elementy selektora są teraz zawsze wyśrodkowane, co rozwiązuje problem polegający na tym, że ustawienie wartości gradientRatio na zero powodowało zmianę wyrównania. (I712b8)

Wersja 1.0

Wersja 1.0.2

7 września 2022 roku

androidx.wear.compose:compose-foundation:1.0.2, androidx.wear.compose:compose-material:1.0.2 i androidx.wear.compose:compose-navigation:1.0.2 są udostępnione. Wersja 1.0.2 zawiera te zatwierdzenia.

Poprawki błędów

  • Poprawiliśmy kolejność osi Z w przypadku wskaźników pozycji i strony w komponencie Scaffold. Wskaźniki będą teraz wyświetlane nad winietą, więc nie będą przez nią zasłaniane. (Ib988f, b/244207528)

Wersja 1.0.1

24 sierpnia 2022 r.

androidx.wear.compose:compose-foundation:1.0.1, androidx.wear.compose:compose-material:1.0.1 i androidx.wear.compose:compose-navigation:1.0.1 są udostępnione. Wersja 1.0.1 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiliśmy błąd logiczny w ScalingLazyColumn, który mógł powodować, że listy z niewielką liczbą elementów (zwykle dokładnie 2) nie kończyły inicjowania i w rezultacie były przezroczyste. (076c61)

Wersja 1.0.0

27 lipca 2022 roku

androidx.wear.compose:compose-foundation:1.0.0, androidx.wear.compose:compose-material:1.0.0 i androidx.wear.compose:compose-navigation:1.0.0 są udostępnione. Wersja 1.0.0 zawiera te zatwierdzenia.

Główne funkcje wersji 1.0.0

  • Jest to pierwsza stabilna wersja Compose na Wear OS (więcej informacji).
  • Compose for Wear OS opiera się na podstawowych bibliotekach Compose, zapewniając dodatkowe komponenty przeznaczone na urządzenia do noszenia oraz, w odpowiednich przypadkach, alternatywne implementacje podstawowych komponentów Compose dostosowane do tych urządzeń.
  • Listę kluczowych komponentów w Wear Compose znajdziesz w informacjach o wersji (Compose na Wear OS w wersji beta01).

Poprawki błędów

  • Animowaliśmy widoczność winiety podczas wyświetlania i ukrywania okna dialogowego, aby zachować spójność z dotychczasową animacją skalowania. (Ida33e)
  • Naprawiliśmy błąd, który mógł powodować dzielenie przez zero w przypadku niektórych zachowań związanych z przesuwaniem podczas przewijania. (I86cb6)
  • Naprawiliśmy błąd w ChipDefaults.childChipColor(), aby kolor tła wyłączonego elementu był w pełni przezroczysty. (I2b3c3, b/238057342)

Wersja 1.0.0-rc02

22 czerwca 2022 r.

androidx.wear.compose:compose-foundation:1.0.0-rc02, androidx.wear.compose:compose-material:1.0.0-rc02 i androidx.wear.compose:compose-navigation:1.0.0-rc02 są udostępnione. Wersja 1.0.0-rc02 zawiera te zatwierdzenia.

Poprawki błędów

  • Poprawiliśmy kierunek gradientu w przypadku kart w trybie od prawej do lewej. Wcześniej było to od lewego górnego do prawego dolnego rogu, a teraz jest to od prawego górnego do lewego dolnego rogu. (Ic2e77)
  • Zaktualizowaliśmy domyślne gradienty dla Chip/ToggleChip/Card, aby dostosować je do najnowszej specyfikacji UX. Wartość ChipDefaults.gradientBackgroundChipColors została zmieniona z 32,5% na 50% koloru podstawowego. CardDefaults.cardBackgroundPainter został zaktualizowany, aby zaczynać się od 30% koloru podstawowego i kończyć na 20% koloru onSurfaceVariant (wcześniej było to 20–10% koloru onSurfaceVariant). ToggleChip.toggleChipColors zmienia się z gradientu liniowego od 75% powierzchni do 32,5% koloru podstawowego do 0% powierzchni do 50% koloru podstawowego. (I43bbd)
  • Dodaliśmy kolor tła (MaterialTheme.color.surface) za ikonami Chip/ToggleChips, które mają tło gradientowe, aby zapewnić ich prawidłową widoczność w mało prawdopodobnym przypadku, gdy za nimi zostanie użyty jasny kolor. (Ibe1a4, b/235937657)
  • Zaktualizowaliśmy reguły profilu podstawowego dołączone do biblioteki Wear Compose (I9c694).

Wersja 1.0.0-rc01

15 czerwca 2022 r.

androidx.wear.compose:compose-foundation:1.0.0-rc01, androidx.wear.compose:compose-material:1.0.0-rc01 i androidx.wear.compose:compose-navigation:1.0.0-rc01 są udostępnione. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

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

Poprawki błędów

  • Usunęliśmy z nagłówka listy wyraźne wywołanie funkcji fillMaxWidth(), ponieważ nie jest ono potrzebne i może powodować problemy, jeśli element ScalinglazyColumn zawiera komponenty ListHeader() i Chip(), ponieważ szerokość będzie się zwiększać lub zmniejszać w miarę przewijania elementów ListHeader. (I37144, b/235074035)
  • Naprawiliśmy błąd w ScalingLazyColumn, który mógł powodować nieprawidłowe rysowanie elementów listy do momentu przewinięcia, jeśli element listy o indeksie 0 był wystarczająco duży (wraz z dopełnieniem) (Ic6159, b/234328517).
  • Wprowadziliśmy niewielką zmianę w ScalingLazyColumn łagodzeniu, gdy elementy docierają do krawędzi ekranu, aby dostosować je do aktualizacji specyfikacji UX. Stare wartości CubicBezierEasing(0.25f, 0.00f, 0.75f, 1.00f) –> nowe wartości CubicBezierEasing(0.3f, 0f, 0.7f, 1f). Aby zachować stare działanie, możesz zastąpić scalingParams w ScalingLazyColumn (Ie375c).
  • Dodaliśmy do ikony CompactChip dopełnienie, aby jej rozmiar docelowy wynosił co najmniej 48 dp i była zgodna z wytycznymi dotyczącymi ułatwień dostępu w interfejsie Material. Może to wpłynąć na wszystkie układy, w których używasz symbolu CompactChips, ponieważ będą one zajmować dodatkowe miejsce. (I3d57c)

Wersja 1.0.0-beta03

1 czerwca 2022 r.

androidx.wear.compose:compose-foundation:1.0.0-beta03, androidx.wear.compose:compose-material:1.0.0-beta03 i androidx.wear.compose:compose-navigation:1.0.0-beta03 są udostępnione. Wersja 1.0.0-beta03 zawiera te zatwierdzenia.

Nowe funkcje

  • Umożliwiliśmy działanie ScalingLazyColumn w trybie @Preview Compose. (I3b3b6, b/232947354)

Zmiany w interfejsie API

  • Zmieniliśmy wartość domyślną właściwości ScalingLazyColumn.horizontalAlignment z Start na CenterHorizontally, aby zapewnić, że gdy elementy listy nie wypełniają całej szerokości kolumny, będą wyrównane w sposób zapewniający maksymalną widoczność. Aby wrócić do poprzedniego działania, ustaw wartość horizontalAlignment = Alignment.Start.(I9ed4b)

Znane problemy

  • Wysokość elementu CompactChip jest mniejsza niż w wytycznych Material dotyczących ułatwień dostępu. Poprawimy to w kolejnej wersji (15 czerwca). Jeśli używasz komponentu CompactChip, wpłynie to na Twoje układy, ponieważ komponenty CompactChip będą teraz miały dodatkowe dopełnienie u góry i u dołu. Dostosuj i przetestuj układy lub zapoznaj się z komentarzami dotyczącymi błędów, aby znaleźć obejście umożliwiające korzystanie z dotychczasowego działania. (b/234332135)

Poprawki błędów

  • Nowa demonstracja animacji dodawania lub usuwania tekstu początkowego na urządzeniu TimeText. (I16d75)
  • Dodaj testy dla HorizontalPageIndicator.PagesState (I64ed0)
  • Aktualizacja TimeText w celu dostosowania do specyfikacji UX (Ib7ea1)

Wersja 1.0.0-beta02

18 maja 2022 r.

androidx.wear.compose:compose-foundation:1.0.0-beta02, androidx.wear.compose:compose-material:1.0.0-beta02 i androidx.wear.compose:compose-navigation:1.0.0-beta02 są udostępnione. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.

Nowe funkcje

  • Selektor zawsze reaguje na zdarzenia przewijania, nawet w trybie tylko do odczytu. Dzięki temu użytkownicy nie muszą najpierw wybierać selektora, aby móc przewijać. W trybie tylko do odczytu opcje inne niż obecnie wybrana są zasłonięte w gradientColor. (I72925)
  • Zmieniliśmy działanie Chip/ToggleChip/CompactChip/SplitToggleChip, aby domyślnie nie wykonywały fillMaxWidth. Zamiast tego będą się powiększać, aby dopasować się do treści. Aby zachować poprzednie działanie, dodaj modifier = Modifier.fillMaxWidth()(I60a2c, b/232206371).

Poprawki błędów

  • Konstruktor CurvedTextStyle, który przyjmuje wartość TextStyle, uwzględnia teraz też wartość fontWeight(może to zostać dodane do konstruktora i metod kopiowania w przyszłych wersjach interfejsu API) (Ieebb9).
  • Ulepszenia przesuwania od krawędzi. Gdy używana jest funkcja Modifier.edgeSwipeToDismiss, a przesunięcie w lewo jest wywoływane z obszaru krawędzi, nie powoduje już odrzucenia przez przesunięcie, gdy kierunek przesunięcia zmieni się na prawo. Wcześniej można było zamknąć powiadomienie przez przesunięcie w lewo, a potem w prawo.(I916ea)
  • HorizontalPageIndicator wyświetla teraz na ekranie do 6 stron. Jeśli jest więcej niż 6 stron, po lewej lub prawej stronie wyświetla się wskaźnik o połowie rozmiaru, a przejście między stronami jest płynne.(I2ac29)
  • Ulepszone domyślne działanie przyciągania na urządzeniach ScalingLazyColumn i Picker (I49539)
  • Ulepszenia przesuwania od krawędzi. Gdy używana jest funkcja Modifier.edgeSwipeToDismiss, przesunięcie w celu zamknięcia jest aktywowane tylko wtedy, gdy pierwsze dotknięcie nastąpi na krawędzi i przesunięcie zostanie wykonane w prawo. Wcześniej można było aktywować przesunięcie w celu zamknięcia, przesuwając palcem z dowolnej części ekranu, jeśli przewijanie dotarło do początku.(I8ca2a)

Wersja 1.0.0-beta01

11 maja 2022 roku

androidx.wear.compose:compose-foundation:1.0.0-beta01, androidx.wear.compose:compose-material:1.0.0-beta01 i androidx.wear.compose:compose-navigation:1.0.0-beta01 są udostępnione. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.

Co zawiera Compose na Wear OS 1.0

1.0.0-beta01 Compose na Wear OS to ważny kamień milowy, ponieważ biblioteka jest w pełni funkcjonalna, a interfejs API jest zablokowany.

Komponenty Material Wear Compose w wersji 1.0 obejmują:

  • Motyw Material – używany jako zamiennik Compose na urządzenia mobilne MaterialTheme. Zapewnia kolory, kształty i typografię do tworzenia komponentów na urządzeniach do noszenia, które od razu implementują wytyczne UX Wear Material Design.
  • Button, CompactButton i ToggleButton – przycisk oferuje 1 miejsce na ikonę, obraz lub krótki tekst (maks. 3 znaki). mają okrągły kształt i zalecane rozmiary w przypadku przycisków domyślnych, dużych i małych; CompactButton – oferuje jedno miejsce na dowolną treść (ikonę, obraz lub tekst) i ma okrągły kształt z bardzo małym rozmiarem tła. CompactButton ma opcjonalny przezroczysty margines wokół tła, który zwiększa klikalny obszar. ToggleButton to przycisk z jednym miejscem na dowolną treść (krótki tekst, ikonę lub obraz). Ma stany włączony/wyłączony (zaznaczony/niezaznaczony) z kolorami i różnymi ikonami, które wskazują, czy jest zaznaczony.
  • Karty – służą do wyświetlania informacji o aplikacjach, np. powiadomień. Elastyczna konstrukcja do różnych zastosowań z elementami AppCard i TitleCard, które zapewniają różne układy i obsługę obrazów jako treści karty lub tła.
  • Elementy w kształcie stadionu podobne do przycisków, ale z większą powierzchnią i wieloma miejscami na etykiety, etykiety dodatkowe i ikony. w różnych rozmiarach i z obsługą obrazów jako tła;
  • ToggleChips i SplitToggleChips – element Chip ze stanem zaznaczonym lub odznaczonym oraz dodatkowym miejscem ToggleControl na ikonę, np. przełącznik lub przycisk opcji, która będzie wskazywać stan zaznaczenia komponentu. SplitToggleChip ma też 2 obszary, które można dotknąć: jeden, który można kliknąć, i drugi, który można przełączać.
  • CircularProgressIndicator – wskaźnik postępu Wear Material w 2 wariantach. Pierwszy z nich wyraża proporcję ukończenia trwającego zadania i umożliwia utworzenie przerwy na okrągłej ścieżce między kątami początkowym i końcowym. Drugi wskazuje nieokreślony postęp w nieokreślonym czasie oczekiwania.
  • curvedText – część DSL do opisywania CurvedLayouts, wraz z curvedRow i curvedColumn, do rozmieszczania komponentów wokół okrągłych urządzeń. Więcej informacji o elementach CurvedLayout i CurvedModifier znajdziesz w sekcji Wear Component Foundation (pełnią one podobną rolę do modyfikatorów w przypadku urządzeń bez zakrzywionego ekranu i umożliwiają konfigurowanie różnych aspektów układu, dopełnienia, gradientów itp.).
  • Okno, alert i potwierdzenie – okno wyświetla się na pełnym ekranie, nad innymi treściami, i można je zamknąć gestem przesuwania. Zajmuje 1 miejsce i powinien zawierać treści okna dialogowego Wear Material, takie jak alert lub potwierdzenie. Alert to okno z opinią, które zawiera miejsca na ikonę, tytuł i wiadomość. Ma przeciążenia dla 2 przycisków negatywnych i pozytywnych wyświetlanych obok siebie lub miejsca na co najmniej 1 układ pionowy. Potwierdzenie to opinia w formie okna dialogowego, która wyświetla komunikat przez określony czas. Ma miejsce na ikonę lub obraz (który może być animowany).
  • HorizontalPageIndicator – wyświetla poziomą pozycję strony w sposób odpowiedni dla urządzenia do noszenia. Zaprojektowany tak, aby zajmować cały ekran i wyświetlać zakrzywiony wskaźnik na okrągłych urządzeniach. Może być używany z przeglądarką stron towarzyszących.
  • Ikona – implementacja ikony na Wear, która pobiera kolor i wartość alfa z motywu Material Design na Wear. Informacje o klikanej ikonie znajdziesz w sekcji Przycisk lub element.
  • Selektor – wyświetla przewijaną listę elementów, z której można wybrać pozycję. Domyślnie elementy będą powtarzane „w nieskończoność” w obu kierunkach. Może być wyświetlany w trybie tylko do odczytu, aby ukryć niewybrane opcje.
  • PositionIndicator – wyświetla pozycję przewijania lub inne wskazanie pozycji w sposób odpowiedni dla urządzenia do noszenia. Zajmuje cały ekran i wyświetla zakrzywiony wskaźnik na okrągłych urządzeniach.
  • Scaffold – implementuje podstawową strukturę wizualną układu Material Design na Wear. Ten komponent udostępnia interfejs API do łączenia kilku komponentów Wear Material (takich jak TimeText, PositionIndicator i Vignette) w celu tworzenia ekranu, zapewniając odpowiednią strategię układu i zbierając niezbędne dane, aby te komponenty działały prawidłowo.
  • ScalingLazyColumn – komponent listy przewijanej z efektem skalowania lub rybiego oka, który jest kluczowym elementem języka projektowania Wear Material Design. Zapewnia skalowanie i efekty przezroczystości elementów treści. ScalingLazyColumn jest zaprojektowany tak, aby obsługiwać potencjalnie dużą liczbę elementów treści, które są materializowane i komponowane tylko w razie potrzeby.
  • Suwak – umożliwia użytkownikom wybór z zakresu wartości. Zakres wyboru jest wyświetlany jako pasek, który opcjonalnie może być wyświetlany z separatorami.
  • Stepper – komponent pełnoekranowy, który umożliwia użytkownikom wybór z zakresu wartości za pomocą przycisków zwiększania i zmniejszania u góry i u dołu ekranu. Pośrodku znajduje się miejsce na tekst lub element.
  • SwipeToDismissBox – obsługuje gest przesuwania w celu zamknięcia. Zajmuje 1 miejsce na tło (wyświetlane tylko podczas gestu przesuwania) i treści na pierwszym planie. Można ją opcjonalnie połączyć z biblioteką nawigacji androidx za pomocą SwipeDismissableNavHost (patrz biblioteka Wear Compose Navigation poniżej).
  • Text – implementacja komponentu tekstowego Compose Material na Wear, która pobiera kolor i wartość alfa z motywu Wear Material.
  • TimeText – komponent do wyświetlania czasu i stanu aplikacji u góry ekranu. Dopasowuje się do kształtu ekranu, używając zakrzywionego tekstu na okrągłych ekranach.
  • Winieta – element ekranu do użycia w komponencie Scaffold, który rozmywa górną i dolną część ekranu, gdy używane są treści z możliwością przewijania.

  • Z biblioteki Wear Compose Foundation pochodzą też te komponenty:

  • CurvedLayout - Wear Foundation CurvedLayout to komponent układu, który umieszcza elementy podrzędne w łuku i obraca je w razie potrzeby. Jest to podobne do układu wiersza wygiętego w segment pierścienia. Pamiętaj, że zawartość CurvedLayout nie jest funkcją lambda, którą można łączyć z innymi funkcjami, ale językiem DSL (językiem specyficznym dla domeny). Wszystkie elementy w DSL CurvedLayout obsługują opcjonalny parametr modyfikatora utworzony na podstawie CurvedModifier.

  • basicCurvedText – element w CurvedLayoutDSLbasicCurvedText, który umożliwia deweloperom łatwe pisanie zakrzywionego tekstu zgodnie z krzywizną okręgu (zwykle na krawędzi okrągłego ekranu). basicCurvedText można tworzyć tylko w obrębie elementu CurvedLayout, aby zapewnić najlepsze wrażenia, np. możliwość określenia pozycji i używania elementu CurvedModifiers. Pamiętaj, że w większości przypadków zamiast tego należy używać elementu curvedText, ponieważ korzysta on z motywu Material.

  • curvedComposable – opakowuje zwykłe treści kompozycyjne, aby można było ich używać z funkcją CurvedLayout. Jeśli element curvedComposable zawiera kilka elementów, zostaną one narysowane jeden na drugim (jak w przypadku elementu Box). Aby umieścić kilka komponentów kompozycyjnych wzdłuż krzywej, każdy z nich umieść w curvedComposable.

  • curvedRow i curvedColumn – podobnie jak Row i Column, elementy curvedRow i curvedColumn można zagnieżdżać w elemencie CurvedLayout, aby w razie potrzeby rozmieszczać elementy. W przypadku elementu curvedRow można określić kierunek układu kątowego i wyrównanie promieniowe. W przypadku curvedColumn można określić wyrównanie kątowe i kierunek promieniowy.

  • CurvedModifier – wszystkie zakrzywione komponenty akceptują parametr modyfikatora, który można utworzyć za pomocą CurvedModifier: obsługiwane są tło, rozmiar, waga i dopełnienie.

  • Z Wear Compose Navigation pochodzi też ten komponent:

  • SwipeDismissableNavHost – zapewnia miejsce w hierarchii Compose, w którym może odbywać się samodzielna nawigacja, a nawigacja wsteczna jest obsługiwana przez gest przesuwania. Treści są wyświetlane w SwipeToDismissBox, co wskazuje bieżący poziom nawigacji. Podczas gestu przesunięcia w celu zamknięcia w tle jest widoczny poprzedni poziom nawigacji (jeśli istnieje).

  • Więcej informacji o tym, co zostało udostępnione, znajdziesz w informacjach o wersji dotyczących poszczególnych wersji alfa.

Zmiany w interfejsie API

  • Dodano funkcje CurvedModifier.padding*. Służą one do określania dodatkowej przestrzeni, która ma być dodana wokół zakrzywionego komponentu. (I4dbb4)
  • Usunięto wewnętrzne zajęcia CompositionLocal (I42490)
  • Dodaliśmy stałe wartości rozmiarów ikon Button, CompactButton i ToggleButton jako wskazówki (I57cab).
  • Dodaj parametr włączony do AppCard i TitleCard. Teraz mają podobny interfejs API do androidx.compose.material kart. Jeśli parametr ma wartość „false”, karty nie będzie można kliknąć. (Idc48d, b/228869805)

Poprawki błędów

  • Komponent Stepper wyłącza teraz przyciski zmniejszania i zwiększania, gdy osiągnięte zostaną dolne lub górne limity (i stosuje ContentAlpha.disabled do parametru iconColor) (I4be9f).
  • Dodaliśmy 1-pikselowy margines wokół zawartości selektora, gdy jest on rysowany z gradientem, aby zapobiec drganiom tekstu widocznym podczas przesuwania. (I0b7b9)
  • Dodaj testy zrzutów ekranu dla PositionIndicator (I5e8bc)
  • Dodaj więcej testów dla AppCard i TitleCard (I85391, b/228869805)

Wersja 1.0.0-alpha21

20 kwietnia 2022 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha21, androidx.wear.compose:compose-material:1.0.0-alpha21 i androidx.wear.compose:compose-navigation:1.0.0-alpha21 są udostępnione. Wersja 1.0.0-alpha21 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy nowe modyfikatory zakrzywione, aby określić tło zakrzywionego elementu: CurvedModifier.background, .radialGradientBackground i .angularGradientBackground (I8f392)
  • Umożliwia określenie trybu przepełnienia zakrzywionego tekstu (przycinanie, wielokropek, widoczny). (I8e7aa)
  • Dodano modyfikator CurvedModifier.weight, podobny do tego w funkcji Pisanie. Można go używać w przypadku elementów podrzędnych elementów curvedRow i CurvedLayout (w przypadku szerokości) oraz elementów podrzędnych elementu curvedColumn (w przypadku wysokości). (I8abbd)
  • Dodano modyfikatory CurvedModifier.size, .angularSize i .radialSize, aby określić rozmiar zakrzywionego elementu. (I623c7)

Zmiany w interfejsie API

  • Zmiana kolejności parametrów, aby zapewnić, że tło będzie zawsze przed kolorem w interfejsie Wear Compose API (I43208)
  • Usunięto parametry clockwise i insideOut i zastąpiono je bardziej precyzyjnymi stałymi w przypadku nowych klas. Kierunek zakrzywionego układu może teraz uwzględniać LayoutDirection i jest dziedziczony, gdy nie jest określony (If0e6a).
  • Aby rozwiązać problem z interfejsem API w przypadku ScalingLazyColumn, zastąpiliśmy autoCenter: Boolean ciągiem autoCenter: AutoCentringParams. (Ia9c90)
  • W całym interfejsie API zmieniliśmy nazwy iconTintColor i toggleControlTintColor na iconColor i toggleControlColor (Chip/ToggleChip/Dialog/Slider/Stepper/...), ponieważ kolor jest stosowany do gniazda ikony lub elementu przełącznika. (Ied238)
  • Przepisywanie PageIndicatorStyle enum na klasę wartości (I2dc72)
  • Do niektórych boksów w naszych komponentach dodaliśmy RowScope/ColumnScope/BoxScope, aby poinformować programistów o założeniach dotyczących układu. Dzięki temu deweloperzy będą mogli używać dodatkowych modyfikatorów w przypadku niektórych treści w slotach i nie będą musieli udostępniać dodatkowych elementów układu. Wprowadziliśmy też drobne zmiany w kolorach kart aplikacji i kart tytułowych, tak aby domyślnie timeColor i appColor miały kolor contentColor. W razie potrzeby można jednak zastąpić wszystkie te właściwości. (I26b59)
  • Ustawienie obiektu SwipeToDismissBoxState.Companion jako prywatnego (I39e84)
  • Popraw kolejność parametrów dla InlineSlider i Stepper. Prosta zmiana zgodna z wytycznymi dotyczącymi interfejsu API (I11fec)
  • Usunęliśmy obiekt Saver dla SwipeToDismissBoxState, ponieważ nie był używany. (Ifb54e)
  • Zaktualizowaliśmy CompactChip, aby dostosować go do najnowszej specyfikacji UX. Wypełnienie zostało zmniejszone do poziomego = 12 dp i pionowego = 0 dp. Czcionka etykiety została zmieniona z przycisku na podpis1. Zalecane rozmiary ikon to 20 x 20 pikseli, gdy wyświetlane są zarówno ikona, jak i etykieta, oraz 24 x 24 piksele w przypadku kompaktowego elementu z samą ikoną. W przypadku użycia tylko ikony zadbaliśmy też o to, aby była ona wyśrodkowana. (Iea2be)
  • Dodaliśmy do ScalingLazyListLayoutInfo kilka nowych pól, aby deweloperzy mogli sprawdzić kwotę zastosowanych contentPadding i autoCenteringPadding. Może to być przydatne dla deweloperów podczas obliczania przesunięcia/przewijania (I7577b).
  • Wprowadziliśmy przejścia do i z okna dialogowego. Dodano parametr showDialog, a okno dialogowe kontroluje teraz własną widoczność (umożliwia to uruchamianie animacji wprowadzających i końcowych, gdy okno dialogowe jest wyświetlane lub ukrywane). Pamiętaj, że animacja końcowa nie jest odtwarzana, gdy użytkownik zamknie okno za pomocą gestu przesunięcia. Dodaliśmy też wartość domyślną dla stanu w niedawno dodanym przeciążeniu SwipeToDismissBox. (I682a0)
  • Aby lepiej obsługiwać internacjonalizację i ułatwienia dostępu, zmieniliśmy elementy ToggleChip i SplitToggleChip, tak aby nie miały już domyślnej wartości w przypadku slotu toggleControl. Zmieniliśmy też ToggleChipDefaults, aby te metody zwracały teraz ImageVector zamiast Icon (zwróć uwagę, że ponieważ nie zwracają już @Composables, zaczynają się od małej litery): SwitchIcon()->switchIcon(), CheckboxIcon->checkboxIcon() i RadioIcon()->radioIcon(). Umożliwia to deweloperom tworzenie własnych funkcji kompozycyjnych Icon() z odpowiednim zestawem contentDescription i zachęca ich do tego. (I5bb5b)
  • Do SwipeDismissableNavHost dodaliśmy parametr SwipeDismissableNavHostState. Umożliwia to korzystanie z przesuwania od krawędzi na ekranach używanych jako miejsca docelowe nawigacji, ponieważ SwipeToDismissBoxState można teraz podnieść i użyć do zainicjowania zarówno SwipeDismissableNavHostState, jak i Modifier.edgeSwipeToDismiss na ekranach, które wymagają przesuwania od krawędzi. (I819f5, b/228336555)

Poprawki błędów

  • W razie potrzeby zaktualizuj zakrzywione układy. (Ie8bfa, b/229079150)
  • Poprawka błędu https://issuetracker.google.com/issues/226648931 (Ia0a0a, b/226648931)
  • Usunięto niepotrzebne eksperymentalne adnotacje (I88d7e)

Wersja 1.0.0-alpha20

6 kwietnia 2022 roku

androidx.wear.compose:compose-foundation:1.0.0-alpha20, androidx.wear.compose:compose-material:1.0.0-alpha20 i androidx.wear.compose:compose-navigation:1.0.0-alpha20 są udostępnione. Wersja 1.0.0-alpha20 zawiera te zmiany.

Nowe funkcje

  • Dodaj modyfikator edgeSwipeToDismiss do SwipeToDismiss. Umożliwia aktywowanie swipeToDismiss tylko na lewej krawędzi widocznego obszaru. Używane, gdy środek ekranu musi obsługiwać przewijanie w poziomie, np. przewijanie mapy w 2 wymiarach lub przesuwanie palcem w poziomie między stronami.(I3fcec, b/200699800)

Zmiany w interfejsie API

  • Podstawowa implementacja CurvedModifiers , która otwiera drogę do wprowadzenia sposobów dostosowywania zakrzywionych treści (ale nie ma jeszcze żadnych CurvedModifiers, a możliwość tworzenia niestandardowych modyfikatorów może być dostępna w późniejszym czasie) (I9b8df).
  • EdgeSwipeZaktualizowaliśmy dokumentację modyfikatorów i wartości domyślne, aby ułatwić zrozumienie .(I6d00d)
  • Dodaj gniazdo PageIndicator do platformy. Dodając PageIndicator bezpośrednio do komponentu Scaffold, możemy mieć pewność, że będzie on prawidłowo wyświetlany na urządzeniach okrągłych. (Ia6042)
  • Usuń domyślne ikony z parametrów InlineSlider i Stepper. Pomoże to deweloperom zwracać większą uwagę na wymagania dotyczące lokalizacji i ułatwień dostępu. Przykłady użycia domyślnych ikon były prezentowane w wersjach demonstracyjnych i próbkach. (I7e6fd)
  • Zastąp nazwy parametrów Trailing i Leading nazwami Start i End w TimeText (Iaac32)
  • Dodaliśmy przeciążenie SwipeToDismissBox z parametrem onDismissed, aby obsługiwać typowe użycie polegające na wywoływaniu zdarzenia nawigacji po zakończeniu gestu przesuwania. (I50353, b/226565726)
  • Usunięto adnotacje ExperimentalWearMaterialApi z użycia TimeText (Ide520)
  • Interfejsy ScalingLazyList/Column scope i info zostały oznaczone jako zamknięte, ponieważ nie są przeznaczone do implementacji przez deweloperów zewnętrznych. Dzięki temu w przyszłości będziemy mogli dodawać do nich nowych członków bez wprowadzania zmian powodujących niezgodność binarną. (I7d99f)
  • Dodaliśmy do selektora nową właściwość flingBehaviour i metodę PickerDefaults.flingBehaviour(), które umożliwiają konfigurowanie zachowania przewijania, np. dodawanie obsługi RSB. PickerState implementuje teraz interfejs ScrollableState. (Ib89c7)

Poprawki błędów

  • Aktualizowanie reguł profilu podstawowego środowiska wykonawczego Androida (ART) dla bibliotek Wear Compose. ART może wykorzystywać reguły profilu na urządzeniach, aby wcześniej skompilować określony podzbiór aplikacji i zwiększyć jej wydajność. Pamiętaj, że nie będzie to miało wpływu na aplikacje, które można debugować. (Iaa8ef)
  • Ulepszanie dokumentacji (I2c051)

Wersja 1.0.0-alpha19

23 marca 2022 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha19, androidx.wear.compose:compose-material:1.0.0-alpha19 i androidx.wear.compose:compose-navigation:1.0.0-alpha19 są udostępnione. Wersja 1.0.0-alpha19 zawiera te zmiany.

Zmiany w interfejsie API

  • Zmieniliśmy nazwę interfejsu CurvedRow na CurvedLayout i przekształciliśmy go w zakres z DSL. Za pomocą tego języka DSL można określać bardziej złożone układy zakrzywione, używając serii zagnieżdżonych elementów curvedRow i curvedColumn (które są odpowiednikami układów wierszowych i kolumnowych). W tych elementach układu można używać 3 elementów: curvedComposable (do dodawania dowolnego elementu @Composable), basicCurvedText (zakrzywiony tekst podstawowy) i curvedText (zakrzywiony tekst z uwzględnieniem materiału na zegarku). (Ib776a)
  • Umożliwienie konfigurowania strony dla PositionIndicator. Pozycję podstawowego wskaźnika pozycji można teraz skonfigurować jako End (zależną od kierunku układu), OppositeRsb (uwzględniającą obrót ekranu, aby umieścić wskaźnik naprzeciwko fizycznego przycisku RSB) lub jako bezwzględną Left i Right. (I2f1f3)
  • W przypadku SwipeToDismissBox zmieniliśmy nazwę SwipeDismissTarget.Original na SwipeToDismissValue.Default, a SwipeDismissTarget.Dismissal na SwipeToDismissValue.Dismissed. Przenieśliśmy też SwipeToDismissBoxDefaults.BackgroundKey i SwipeToDismissBoxDefaults.ContentKey odpowiednio do SwipeToDismissKeys.Background i SwipeToDismissKeys.Content. (I47a36)
  • Dodaliśmy do selektora tryb tylko do odczytu, który jest przeznaczony do ekranów z wieloma selektorami, na których w danym momencie można edytować tylko jeden selektor. Gdy selektor jest tylko do odczytu, wyświetla obecnie wybraną opcję i etykietę, jeśli została podana. (I879de)
  • SwipeToDismissBoxState została zmodyfikowana, aby ograniczyć zakres ExperimentalWearMaterialApi do Modifier.swipeable i SwipeableState, które są teraz używane wewnętrznie. SwipeToDismissBoxState ma teraz currentValue, targetValue, isAnimationRunning i snapTo, aby obsługiwać typowe przypadki użycia. Jeśli potrzebujesz udostępnienia innych właściwości, daj nam znać. Poprawiliśmy też działanie SwipeableState w sytuacji, gdy przesunięcie gestu przesuwania mieści się w granicach błędu zaokrąglenia punktu zakotwiczenia. (I58302)

Poprawki błędów

  • Uproszczony i poprawiony kod wykrywający, czy zawartość elementu ScalingLazyColumn może być przewijana (używany do określania, czy wyświetlać pasek przewijania) (I7bce0)
  • Usunęliśmy błąd wskaźnika pozycji, który występował, gdy był on używany z więcej niż jednym stanem i przełączano się między nimi (I320b5).
  • Zaktualizowaliśmy domyślną typografię/czcionki motywu Compose for Wear OS, aby były zgodne z naszymi najnowszymi wytycznymi dotyczącymi UX. Wartości display1 (40 sp) i display2 (34 sp) są teraz mniejsze niż wcześniej. Wprowadziliśmy też różne inne drobne zmiany dotyczące wysokości wiersza i odstępów między wierszami. (Ie3077)
  • Dodaliśmy opór do SwipeToDismissBox, aby ruch następował tylko podczas przesuwania w celu zamknięcia, a nie w przeciwnym kierunku. (Ifdfb9)
  • Zmieniliśmy niektóre domyślne wartości parametrów funkcji CircularProgressIndicator, aby dostosować je do wytycznych dotyczących UX w Wear Material Design. W przypadku wersji Spinner/Indeterminant zaktualizowano rozmiar (40–>24 dp), kolor wskaźnika (primary–>onBackground), przezroczystość koloru ścieżki (30%–>10%) i szerokość linii (4–>3 dp). W wersji Progress/Determinate zmieniliśmy przejrzystość koloru ścieżki (30% –> 10%). (I659cc)
  • Zaktualizowaliśmy domyślne parametry skalowania ScalingLazyColumn zgodnie z najnowszymi specyfikacjami UX Wear Material Design. W efekcie elementy listy są skalowane bliżej środka listy, ale na jej krawędziach są mniej skalowane niż wcześniej. (Ica8f3)
  • Wprowadź pewne korekty do ScalingLazyColumnDefaults.snapFlingBehavior, aby poprawić zakończenie animacji (If3260).

Wersja 1.0.0-alpha18

9 marca 2022 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha18, androidx.wear.compose:compose-material:1.0.0-alpha18 i androidx.wear.compose:compose-navigation:1.0.0-alpha18 są udostępnione. Wersja 1.0.0-alpha18 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Kilka ulepszeń dotyczących elementu PositionIndicator: zmieniono nazwę elementu ShowResult na PositionIndicatorVisibility. Poprawki wydajności, aby uniknąć ponownych obliczeń, gdy nie są potrzebne (Iaed9d)
  • Zalecane kolory dla SplitToggleChip zostały zaktualizowane. Elementy SplitToggleChip mają teraz jednobarwne tło, gdy są zaznaczone lub odznaczone. Kolor elementu ToggleControl jest głównym wskaźnikiem tego, czy komponent jest zaznaczony. Dodaliśmy nowy element ToggleDefaults.splitToggleChipColors(), aby obsługiwać nowy schemat kolorów. Uprościliśmy też toggleChipColors() metody, usuwając splitBackgroundOverlayColor (I7e66e).
  • Do elementu ScalingLazyListItemInfo dodaliśmy atrybut unadjustedSize, ponieważ obliczanie oryginalnego rozmiaru produktu na podstawie skalowanego rozmiaru i współczynnika skalowania jest niebezpieczne ze względu na precyzję obliczeń na liczbach zmiennoprzecinkowych. (I54657, b/221079441)
  • Dodaj HorizontalPageIndicator. Reprezentuje łączną liczbę stron i wybraną stronę. Może być liniowy lub zakrzywiony w zależności od kształtu urządzenia. Obsługuje też niestandardowy kształt wskaźnika, który określa, jak każdy wskaźnik jest reprezentowany wizualnie. (Iac898)
  • Zaktualizowaliśmy PickerState, aby można było zmieniać wartość numberOfOptions. Umożliwia to obsługę przypadków użycia, takich jak DatePicker, gdy liczba dni w miesiącu zmienia się w zależności od wybranego miesiąca. Parametr konstruktora PickerState został odpowiednio zmieniony na initialNumberOfOptions. (Iad066)
  • Ukryj PositionIndicator, gdy jest paskiem przewijania i nie można go przewijać. (Id0a7f)
  • Aby zachować spójność z komponentem Scaffold, nasz komponent Dialog na pełnym ekranie wyświetla teraz ikony PositionIndicator i Vignette. Zamiast Column używamy teraz ScalingLazyColumn, co oznacza, że zawartość okna dialogowego znajduje się teraz w ScalingLazyListScope (i zwykle musi być ujęta w { /* content */ }). Okno dialogowe obsługuje parametr verticalArrangement. (Idea13)
  • Zmieniliśmy nazwę właściwości ToggleChip i SplitToggleChip toggleIcon na toggleControl, aby lepiej dopasować ją do Material Design i ułatwić projektantom oraz deweloperom korzystanie z interfejsu API. (If5921, b/220129803)
  • Dodaliśmy nowy wpis caption3 do typologii motywu Wear Material. Caption3 to mała czcionka używana w przypadku bardzo długich tekstów, np. tekstów prawnych. (I74b13, b/220128356)

Poprawki błędów

  • Zatrzymaj animację przyciągania, gdy dotrzemy na miejsce. (Idb69d)
  • Animowanie zmian w PositionIndicator. (I94cb9)
  • Na podstawie opinii dotyczących interfejsu użytkownika zmieniliśmy ScalingLazyColumn automatyczne wyśrodkowywanie, tak aby zapewniało tylko tyle miejsca, ile jest potrzebne, aby elementy o indeksie ScalingLazyListState.initialCenterItemIndex lub wyższym można było w pełni przewinąć do środka obszaru widocznego. Umożliwia to umieszczenie na początku 1–2 elementów na środku, których nie można przewinąć na środek. Oznacza to, że element ScalingLazyColumn z automatycznym wyśrodkowaniem nie będzie mógł przewijać powyżej elementu initialCenterItemIndex/initialCenterItemScrollOffset (I22ee2).
  • Dodaliśmy wersję demonstracyjną selektora daty i naprawiliśmy błąd w PickerState, który powodował, że parametr initiallySelectedOption nie był stosowany, dopóki selektor nie został wyświetlony. (Id0d7e)
  • Aby ograniczyć przycinanie szerszych elementów ScalingLazyColumn na okrągłych ekranach, zwiększyliśmy domyślny poziomy odstęp od treści z 8 dp do 10 dp. (I0d609)
  • Sprawdź, czy podczas przewijania wyświetla się PositionIndicator. (Ied9a2)

Wersja 1.0.0-alpha17

23 lutego 2022 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha17, androidx.wear.compose:compose-material:1.0.0-alpha17 i androidx.wear.compose:compose-navigation:1.0.0-alpha17 są udostępnione. Wersja 1.0.0-alpha17 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy obsługę przyciągania, której można używać w ScalingLazyColumn. Ustaw flingBehavior = ScalingLazyColumnDefaults.flingWithSnapBehavior(state), aby włączyć obsługę przyciągania. (I068d3, b/217377069)
  • Dodaliśmy wersje demonstracyjne selektora, który służy do wybierania godziny w systemie 24-godzinnym lub 12-godzinnym. (Ie5552)

Zmiany w interfejsie API

  • Rozwiązaliśmy problem z TimeTextniestandardowymi czcionkami i stylami na urządzeniu kwadratowym (Iea76e).
  • ScalingLazyListLayoutInfo ma teraz właściwości reverseLayout, viewportSize i orientacji zgodne z właściwościami LazyListLayoutInfo (I4f258, b/217917020).
  • Usługa ScalingLazyColumn ma teraz usługę userScrollEnabled zgodną z usługą LazyList (I164d0, b/217912513).
  • Selektory mają teraz domyślnie gradient u góry i u dołu (Iab92a).

Poprawki błędów

  • Zmodyfikowaliśmy element ScalingLazyColumn, aby nie wypełniał już całego miejsca w elemencie nadrzędnym. Zamiast tego będzie miał rozmiar dopasowany do rozmiaru treści. Dzięki temu jest ona zgodna z działaniem funkcji LazyColumn. Jeśli chcesz przywrócić stare działanie, przekaż wartość Modifier.fillMaxWidth()/width()/widthIn() do parametru ScalingLazyColumn (I51bf8).
  • Ulepszyliśmy komunikat o wyjątku w SwipeDismissableNavHost.kt, który był wywoływany, gdy stos wsteczny nawigacji był pusty. (I1b1dc)

Wersja 1.0.0-alpha16

9 lutego 2022 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha16, androidx.wear.compose:compose-material:1.0.0-alpha16 i androidx.wear.compose:compose-navigation:1.0.0-alpha16 są udostępnione. Wersja 1.0.0-alpha16 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaj CircularProgressIndicator. Wskaźniki postępu pokazują długość procesu lub nieokreślony czas oczekiwania. Obsługuje wycięcie na TimeText lub inne komponenty, jeśli jest używany w trybie pełnoekranowym. (Iab8da)

Zmiany w interfejsie API

  • Selektory mają teraz parametr flingBehavior, którego wartość domyślna powoduje, że podczas przewijania lub przeciągania szybko przyciągają do najbliższej opcji. (I09000)
  • Dodatkowy interfejs API liczb całkowitych dla komponentów InlineSlider i Stepper (I1b5d6)

Poprawki błędów

  • Zmieniliśmy domyślny indeks initialCenterItemIndex dla elementu ScalingLazyListState z 0 na 1. Oznacza to, że jeśli nie zostanie to zmienione podczas tworzenia stanu za pomocą ScalingLazyListState.rememberScalingLazyListState(initialCenterItemIndex =), drugi element listy (indeks == 1) zostanie umieszczony na środku obszaru wyświetlania podczas inicjowania, a pierwszy element (indeks == 0) zostanie umieszczony przed nim. Dzięki temu domyślny efekt wizualny jest lepszy, ponieważ większość widocznego obszaru jest wypełniona elementami listy. (I0c623, b/217344252)
  • Zmniejszyliśmy domyślny ScalingLazyColumn extraPadding, aby zapewnić wystarczającą liczbę elementów listy (nawet jeśli niektóre z nich są pomniejszone), z 10% do 5%. Pozwoli to uniknąć tworzenia dodatkowych elementów listy, które mogą nie być widoczne w obszarze wyświetlania. Jeśli używane są niestandardowe parametry skalowania (np. bardziej ekstremalne skalowanie), deweloper może dostosować dodatkowe dopełnienie za pomocą parametru viewportVerticalOffsetResolver. (I76be4)
  • Rozwiązaliśmy problem z tekstem TimeText w wielu wierszach na urządzeniu kwadratowym (Ibd3fb).
  • Zmodyfikowaliśmy element ScalingLazyColumn, aby nie wypełniał już całego miejsca w elemencie nadrzędnym. Zamiast tego będzie miał rozmiar dopasowany do rozmiaru treści. Dzięki temu jest on zgodny z działaniem funkcji LazyColumn. Jeśli chcesz przywrócić stare działanie, przekaż wartość Modifier.fillMaxSize() do parametru ScalingLazyColumn. UWAGA: ta zmiana jest niepełna i zostanie uwzględniona w kolejnej zmianie w następnej wersji alfa. (I3cbfa)

Wersja 1.0.0-alpha15

26 stycznia 2022 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha15, androidx.wear.compose:compose-material:1.0.0-alpha15 i androidx.wear.compose:compose-navigation:1.0.0-alpha15 są udostępnione. Wersja 1.0.0-alpha15 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Do elementu ScalingLazyColumn dodaliśmy nową właściwość autoCentering. Gdy ta wartość jest ustawiona na „true” (domyślnie), wszystkie elementy, w tym pierwszy i ostatni, można przewijać tak, aby były widoczne na środku obszaru wyświetlania listy. Pamiętaj, że jeśli używasz automatycznego wyśrodkowywania, prawdopodobnie zechcesz ustawić pionowy odstęp od treści na 0.dp. Jeśli podasz zarówno autoCentering, jak i wypełnienie pionowe treści, oba te ustawienia spowodują, że przed pierwszym i po ostatnim elemencie listy będzie dostępna dodatkowa przestrzeń, co umożliwi dalsze przewijanie. (I2a282, b/214922490)
  • Dodaliśmy komponent Dialog, który umożliwia wywoływanie przez dowolny komponent kompozycyjny okna dialogowego na pełnym ekranie, które znajduje się nad innymi treściami. Gdy okno dialogowe jest wyświetlane, można je zamknąć gestem przesunięcia. Podczas tego gestu w tle będzie widoczna zawartość okna nadrzędnego. Zawartość okna dialogowego powinna mieć wartość Alert lub Confirmation (zmieniona nazwa wcześniejszych komponentów AlertDialog i ConfirmationDialog) – Alert, Confirmation i Dialog znajdują się w pakiecie androidx.wear.compose.material.dialog. Alert i Potwierdzenie mogą być używane jako miejsca docelowe nawigacji. W razie potrzeby dodaliśmy też ColumnScope do parametrów Alert i Confirmation. (Ia9014)
  • Usunęliśmy onSurfaceVariant2 z kolorów motywu Material w Compose na WearOS i zastąpiliśmy go w bibliotece symbolem onSurfaceVariant. (Icd592)
  • Dodaliśmy metodę programowego wybierania opcji w PickerState. Podczas tworzenia elementu PickerState można teraz określić początkowo wybraną opcję. (I92bdf)
  • Dodaliśmy możliwość dostosowywania zachowania gestu szybkiego przesunięcia w przypadku ScalingLazyColumn. (I1ad2e, b/208842968)
  • Dodaliśmy NavController.currentBackStackEntryAsState() do biblioteki Wear.Compose.Navigation. (If9028, b/212739653)
  • Dodano Modifier.onRotaryScrollEvent() i Modifier.onPreRotaryScrollEvent() na urządzenia Wear z obrotowym przyciskiem bocznym (I18bf5, b/210748686).

Wersja 1.0.0-alpha14

12 stycznia 2022 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha14, androidx.wear.compose:compose-material:1.0.0-alpha14 i androidx.wear.compose:compose-navigation:1.0.0-alpha14 są udostępnione. Wersja 1.0.0-alpha14 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy do interfejsu ScalingLazyListState kilka metod, które umożliwiają deweloperom kontrolowanie przewijania do określonych elementów listy, a także ustawianie początkowego elementu listy i przesunięcia.

    W ramach tej zmiany zmodyfikowaliśmy też element ScalingLazyList, aby był zorientowany na środek obszaru wyświetlania, a nie na jego początek.

    Do właściwości ScalingLazyList dodaliśmy nową właściwość anchorType: ScalingLazyListAnchorType = ScalingLazyListAnchorType.ItemCenter, która określa, czy środek (ScalingLazyListAnchorType.ItemCenter) czy Edge (ScalingLazyListAnchorType.ItemStart) ma być wyrównany do linii środkowej widocznego obszaru.

    W rezultacie wartości ScalingLazyListItemInfo.offset i ScalingLazyListItemInfo.adjustedOffset uległy zmianie i odzwierciedlają teraz przesunięcie elementu względem pozycji elementu listy i anchorType listy. Na przykład w przypadku elementu ScalingLazyColumn o wartości anchorType równej ItemCenter i elementu listy umieszczonego tak, że jego środek znajduje się na linii środkowej obszaru wyświetlania, przesunięcie wyniesie 0.

    Nowe metody to scrollTo, animatedScrollTo, centerItemIndex i centerItemOffset. (I61b61)

  • Dodaliśmy do SwipeDismissableNavHost obsługę przycisku Wstecz, dzięki czemu naciśnięcie tego przycisku powoduje przejście na poprzedni poziom w hierarchii nawigacji. (I5b086, b/210205624)

Wersja 1.0.0-alpha13

15 grudnia 2021 roku

androidx.wear.compose:compose-foundation:1.0.0-alpha13, androidx.wear.compose:compose-material:1.0.0-alpha13 i androidx.wear.compose:compose-navigation:1.0.0-alpha13 są udostępnione. Wersja 1.0.0-alpha13 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Ustawiliśmy wartość RangeIcons jako wewnętrzną (odwołują się do niej wewnętrznie wartości InlineSlider i Stepper). (I927ec)

Poprawki błędów

  • Naprawiliśmy problem polegający na tym, że SwipeDismissableNavHost dodawał miejsce docelowe do hierarchii Compose, zanim osiągnęło ono stan cyklu życia CREATED, co powodowało wystąpienie błędu IllegalStateException. Ta poprawka była warunkiem wstępnym aktualizacji zależności od navigation-compose do 2.4.0-beta02 i nowszych wersji. (I40a2b, b/207328687)

  • Dodano klasę wyliczeniową Drawables do pobierania zasobów rysowalnych w bibliotece Wear Compose, dzięki czemu nie jest już potrzebne odbicie. Rozwiązuje to błąd, w którym elementy rysunkowe biblioteki były usuwane, gdy minifyEnabled=true lub shrinkResources=true). (Ib2a98)

  • Dodano testy dla Stepper w Wear Compose (I2d03a)

  • Dodaliśmy przykłady SwipeDismissableNavHost w Wear Compose Navigation. (I85f06)

Wersja 1.0.0-alpha12

1 grudnia 2021 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha12, androidx.wear.compose:compose-material:1.0.0-alpha12 i androidx.wear.compose:compose-navigation:1.0.0-alpha12 są udostępnione. Wersja 1.0.0-alpha12 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy komponent Stepper, który umożliwia użytkownikom wybór z zakresu wartości. Stepper to kontrolka na pełnym ekranie z przyciskami zwiększania i zmniejszania u góry i u dołu oraz miejscem na środku (przeznaczonym na chip lub tekst). W razie potrzeby możesz dostosować ikony przycisków. (I625fe)

  • Dodaliśmy 2 nowe komponenty kompozycyjne do wyświetlania okien dialogowych: AlertDialog czeka na odpowiedź użytkownika i wyświetla tytuł, ikonę, wiadomość oraz a) 2 przyciski do prostych wyborów pozytywnych lub negatywnych albo b) ułożone pionowo elementy lub przełączniki do bardziej elastycznych wyborów. ConfirmationDialog wyświetla potwierdzenie z limitem czasu. To proste okno ma miejsca na tytuł i (animowaną) ikonę. (Ic2cf8)

Zmiany w interfejsie API

  • Dodaj jednostki (milisekundy) do sugerowanych wartości czasu trwania okna. (I09b48)

Wersja 1.0.0-alpha11

17 listopada 2021 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha11, androidx.wear.compose:compose-material:1.0.0-alpha11 i androidx.wear.compose:compose-navigation:1.0.0-alpha11 są udostępnione. Wersja 1.0.0-alpha11 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy komponent selektora, który umożliwia użytkownikowi wybranie elementu z przewijanej listy. Domyślnie lista elementów do wyboru jest powtarzana „w nieskończoność” w obu kierunkach, aby sprawiać wrażenie obracającego się walca widzianego z boku. W późniejszych wersjach dodamy 2 funkcje: przyciąganie do wartości po przesunięciu palcem oraz dodanie do PickerState funkcji ustawiania/przewijania do bieżącej wartości. (I6461b)

Zmiany w interfejsie API

  • Dodano ScalingLazyItemScope i nowe modyfikatory fillParentMaxSize/fillParentMaxWidth/fillParentMaxHeight, aby umożliwić określanie rozmiaru elementów listy na podstawie rozmiaru kontenera nadrzędnego. Elementy mogą wypełniać całą przestrzeń elementu nadrzędnego lub jej część. Udostępnia to funkcje, które są już dostępne w LazyRow/Column (I4612f).
  • Dodaliśmy obsługę komponentu ScalingLazyColumn, aby umożliwić elementom posiadanie klucza. Dodaliśmy też wygodne metody umożliwiające dodawanie elementów z tablic i list. (Ic1f89)

Poprawki błędów

  • Dodatkowe przykłady dla TimeText (I8cb64)

Wersja 1.0.0-alpha10

3 listopada 2021 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha10, androidx.wear.compose:compose-material:1.0.0-alpha10 i androidx.wear.compose:compose-navigation:1.0.0-alpha10 są udostępnione. Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy komponent InlineSlider do Wear Compose. InlineSlider umożliwia użytkownikom wybór z zakresu wartości. Zakres wyboru jest wyświetlany jako pasek między minimalną a maksymalną wartością zakresu, z którego użytkownicy mogą wybrać jedną wartość. (If0148)

  • Sprawdź nowe ćwiczenia z programowania dotyczące Compose na Wear OS.

Zmiany w interfejsie API

  • Macrobenchmark ma teraz minSdkVersion 23. (If2655)

Poprawki błędów

  • Aktualizacja obsługi przejść w komponencie SwipeDismissableNavHost w funkcji SideEffect (I04994, b/202863359)
  • Aktualizacja obsługi przejść w komponencie SwipeDismissableNavHost (I1cbe0, b/202863359)

Wersja 1.0.0-alpha09

27 października 2021 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha09, androidx.wear.compose:compose-material:1.0.0-alpha09 i androidx.wear.compose:compose-navigation:1.0.0-alpha09 są udostępnione. Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.

Nowe funkcje

  • Udostępniliśmy wersję przedpremierową dla programistów Compose na Wear OS. Zapoznaj się z naszym postem na blogu, w którym omawiamy główne funkcje kompozycyjne i podajemy linki do dodatkowych materiałów, które pomogą Ci zacząć z nich korzystać.

Zmiany w interfejsie API

  • Dodaliśmy obsługę możliwości dostosowywania wszystkich kolorów w motywie kolorystycznym Wear Material Design. (I4759b, b/199754668)

Poprawki błędów

  • Dodano przykłady SwipeToDismissBox, które zachowują stan (Ibaffe)
  • Dodano linki do przewodników na developer.android.com z dokumentacji KDoc dla CurvedText, TimeText i SwipeToDismissBox. (I399d4)
  • Komponent SwipeDismissableNavHost zgłasza teraz wyjątek, jeśli nie ma bieżącego miejsca docelowego (co oznacza, że element NavGraph nie został utworzony za pomocą funkcji użytkowej wear.compose.navigation.composable) (I91403).
  • Dodaliśmy dodatkową dokumentację i przykłady dotyczące używania źródła czasu w funkcji TimeText (I4f6f0).

Wersja 1.0.0-alpha08

13 października 2021 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha08, androidx.wear.compose:compose-material:1.0.0-alpha08 i androidx.wear.compose:compose-navigation:1.0.0-alpha08 są udostępnione. Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Zmieniliśmy nazwy właściwości AppCard i TitleCard body na content i przenieśliśmy je na koniec listy właściwości, aby można było je podawać jako lambdę końcową. Zmieniliśmy też nazwę bodyColor na contentColor, aby zachować spójność z nowymi nazwami przedziałów. (I57e78)

Poprawki błędów

  • Dodano linki do przewodników na developer.android.com z dokumentacji KDoc dla komponentów przycisku, karty, elementu, motywu, wskaźnika pozycji i skalowania leniwej kolumny. (I22428)
  • Rozwiązanie problemu polegającego na tym, że funkcja SwipeToDismissBox w WearOS czasami nie obsługiwała przesunięć. (I9387e)
  • Dodano przykłady dla elementów Button, CompactButton, Chip, CompactChip, AppCard, TitleCard, ToggleButton, ToggleChip, SplitToggleChip (Iddc15)
  • Dodaliśmy testy wydajności mikrobenczmarków dla komponentów Card, Chip, ToggleChip, TimeText i ScalingLazyColumn. (If2fe9)

Wersja 1.0.0-alpha07

29 września 2021 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha07, androidx.wear.compose:compose-material:1.0.0-alpha07 i androidx.wear.compose:compose-navigation:1.0.0-alpha07 są udostępnione. Wersja 1.0.0-alpha07 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodano komponent CurvedText w materialu, który umożliwia programistom łatwe pisanie zakrzywionego tekstu zgodnie z krzywizną okręgu (zwykle na krawędzi okrągłego ekranu). (I19593)

Zmiany w interfejsie API

  • Dodano testy funkcji TimeText (Idfead)
  • Przekształć ArcPaddingValues w interfejs. (Iecd4c)
  • Dodano animację do SwipeToDismissBox (I9ad1b)
  • Dodano parametr hasBackground do interfejsu SwipeToDismissBox, aby można było wyłączyć gest przesuwania, gdy nie ma treści tła do wyświetlenia. (I313d8)
  • rememberNavController() przyjmuje teraz opcjonalny zestaw instancji Navigator, które zostaną dodane do zwracanego NavController, aby lepiej obsługiwać opcjonalne nawigatory, takie jak te z materiałów nawigacyjnych Accompanist. (I4619e)
  • Odwołaj się do NamedNavArgument z navigation-common i usuń kopię z wear.compose.navigation. (I43af6)

Poprawki błędów

  • Usunięto niestabilność testu Fixed CurvedRow na mniejszych urządzeniach. (If7941)
  • Naprawiono możliwe migotanie w przypadku CurvedRow, gdy treść jest aktualizowana, i zapewniono ponowny pomiar zakrzywionego wiersza (Ie4e06).
  • Funkcja ChipDefaults.gradientBackgroundChipColors() została zaktualizowana zgodnie ze zmianami w specyfikacji UX. Gradient zaczyna się od koloru MaterialTheme.colors.primary z wartością alfa 32,5% i kończy się kolorem MaterialTheme.colors.surface z wartością alfa 0% na tle koloru MaterialTheme.colors.surface z wartością alfa 75%. (Id1548)
  • Zaktualizowaliśmy kolory elementów ToggleChip w stanie wybranym, aby były zgodne z najnowszymi wytycznymi dotyczącymi specyfikacji UX w Wear Material Design. Po wybraniu przełączniki ToggleChips mają teraz gradientowe tło od MaterialTheme.color.surface @ 0% alfa, lewy górny róg, do MaterialTheme.color.primary @ 32% alfa, prawy dolny róg, na tle MaterialTheme.color.surface @ 75% alfa. Dzięki temu różnica między zaznaczonym a odznaczonym elementem ToggleChip jest bardziej subtelna. (Idd40b)

Wersja 1.0.0-alpha06

15 września 2021 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha06, androidx.wear.compose:compose-material:1.0.0-alpha06 i androidx.wear.compose:compose-navigation:1.0.0-alpha06 są udostępnione. Wersja 1.0.0-alpha06 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy komponent kompozycyjny Scaffold najwyższego poziomu, który zapewnia strukturę do obsługi pozycji PositionIndicator (np. Scroll lub Volume), obszar u góry ekranu do wyświetlania czasu i stanu aplikacji, a także obsługuje winietę, która rozmywa górną i dolną krawędź ekranu w przypadku treści z możliwością przewijania. Główny obszar komponentu Scaffold to miejsce, w którym umieszcza się zawartość aplikacji. (I5e0bf)
  • Dodano implementację TimeText dla Wear Compose (I5654c)

Biblioteka nawigacji Wear Compose

  • Dodaliśmy pierwszą wersję biblioteki Wear Compose Navigation, która zapewnia integrację bibliotek Wear Compose i Androidx Navigation. Umożliwia łatwe przełączanie się między funkcjami @Composable jako miejscami docelowymi w aplikacji.

  • Ta pierwsza wersja zapewnia:

    • Kompozycja SwipeDismissableNavHost, która zawiera wykres nawigacji i umożliwia nawigację wstecz za pomocą gestów przesuwania.
    • NavGraphBuilder.composable, która pomaga w tworzeniu wykresów nawigacji.
    • rememberSwipeDismissableNavController(), aby zezwolić na przenoszenie stanu.
  • Przykład użycia, w którym tworzymy 2 ekrany i przechodzimy między nimi:

    val navController = rememberSwipeDismissableNavController()
    SwipeDismissableNavHost(
        navController = navController,
        startDestination = "start"
    ) {
        composable("start") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Button(onClick = { navController.navigate("next") }) {
                    Text("Go")
                }
            }
        }
        composable("next") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Text("Swipe to go back")
            }
        }
    }
    
  • Wear Compose Navigation jest pakietem w postaci osobnej biblioteki, dzięki czemu proste aplikacje Wear Compose, które implementują własną, ręcznie napisaną nawigację, nie muszą korzystać z biblioteki Androidx Navigation.

Zmiany w interfejsie API

  • Zaktualizowano SwipeDismissableNavHost, aby obsługiwać rememberSaveable przez ustawienie kluczowej tożsamości tła i treści (I746fd)
  • Dodaliśmy adapter PositionIndicator, który może obsługiwać LazyListState (I21b88).
  • Zaktualizowano SwipeToDismissBox, aby obsługiwał rememberSaveable (Ie728b)
  • Dodaliśmy obsługę parametru reverseLayout do komponentu ScalingLazyColumn. Umożliwia to odwrócenie kierunku przewijania i układu (I9e2fc).
  • Wycofano performGesture i GestureScope, które zostały zastąpione przez performTouchInput i TouchInjectionScope. (Ia5f3f, b/190493367)
  • Zmieniliśmy nazwę VignetteValue na VignettePosition, a VignetteValue.Both na VignettePosition.TopAndBottom. (I57ad7)
  • Zmieniliśmy nazwy klas ScalingLazyColumnState na ScalingLazyListState, ScalingLazyColumnItemInfo na ScalingLazyListItemInfo, ScalingLazyColumnLayoutInfo na ScalingLazyListLayoutInfo i ScalingLazyColumnScope na ScalingLazyListScope, aby w przyszłości móc dodać implementację ScalingLazyRow. (I22734)

Poprawki błędów

  • Zaktualizowaliśmy dokumentację dotyczącą komponentu CompactChip, aby opisać, co się stanie, jeśli nie podasz ikony ani etykiety. (I4ba88)
  • Wprowadziliśmy pewne zmiany w komponentach kart Wear. (I6b3d0)
    1. Zmniejszono odstęp między tytułem a treścią na karcie tytułowej z 8 dp do 2 dp.
    2. Czcionka nagłówka karty z tytułem została zmieniona z body na title3.
    3. Zmieniono gradient tła karty, aby tło było ciemniejsze.

Wersja 1.0.0-alpha05

1 września 2021 roku

Publikacja androidx.wear.compose:compose-foundation:1.0.0-alpha05 i androidx.wear.compose:compose-material:1.0.0-alpha05 Wersja 1.0.0-alpha05 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Oznaczanie ArcPaddingValues jako @Stable (I57deb)
  • Klasa ScalingLazyColumnState implementuje teraz interfejs ScrollableState, co zapewnia programistom dostęp do przewijania komponentu. (I47dbc)

Poprawki błędów

  • Zmniejszyliśmy odstęp między ikoną a tekstem w elementach Chip i ToggleChip, aby dostosować je do aktualizacji specyfikacji UX. (I83802)

Wersja 1.0.0-alpha04

18 sierpnia 2021 r.

Publikacja androidx.wear.compose:compose-foundation:1.0.0-alpha04 i androidx.wear.compose:compose-material:1.0.0-alpha04 Wersja 1.0.0-alpha04 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodano SwipeToDismissBox i modyfikator swipeable, których można używać do obsługi gestu przesuwania od lewej do prawej w celu zamknięcia. Chociaż jest to niezależne od komponentów nawigacji, oczekuje się, że będzie to używane do zamykania jednego ekranu i przechodzenia do innego. Dodano testy integracyjne, aby zademonstrować funkcję przesuwania w celu zamknięcia. (I7bbaa)
  • Do klasy ScalingLazyColumnState dodaliśmy interfejsy ScalingLazyColumnItemInfo i ScalingLazyColumnLayoutInfo, aby umożliwić programistom poznanie rzeczywistych pozycji i rozmiarów elementów w ScalingLazyColumn po zastosowaniu skalowania. Naprawiliśmy też błąd w sposobie obliczania skalowania, gdy do elementu ScalingLazyColumn zastosowano dopełnienie treści „u góry”. (I27c07)

Zmiany w interfejsie API

  • Dodaj klasę CurvedTextStyle, aby określić styl tekstu zakrzywionego Opcje. Podobnie jak TextStyle, ale teraz obsługuje tylko kolor, rozmiar czcionki i tło. W przyszłości dodamy więcej opcji stylizacji. (I96ac3)
  • Do klasy ScalingLazyColumnState dodaliśmy interfejsy ScalingLazyColumnItemInfo i ScalingLazyColumnLayoutInfo, aby umożliwić programistom poznanie rzeczywistych pozycji i rozmiarów elementów w ScalingLazyColumn po zastosowaniu skalowania. Naprawiliśmy też błąd w sposobie obliczania skalowania, gdy do elementu ScalingLazyColumn zastosowano dopełnienie „top”. (I27c07)
  • Dodano wyliczenie @ExperimentalWearMaterialApi do wyliczenia SwipeDismissTarget, które jest częścią interfejsu SwipeToDismissBox API. (I48b5e)

Poprawki błędów

  • Dodano materiał testowy dla SwipeToDismissBox (I9febc)

Wersja 1.0.0-alpha03

4 sierpnia 2021 r.

Publikacja androidx.wear.compose:compose-foundation:1.0.0-alpha03 i androidx.wear.compose:compose-material:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano komponent CurvedText, który umożliwia deweloperom łatwe pisanie tekstu wzdłuż krzywizny okręgu (zwykle na krawędzi okrągłego ekranu) (Id1267).
  • Zmieniliśmy nazwę CardDefaults.imageBackgroundPainter() na CardDefaults.imageWithScrimBackgroundPainter(), aby było jasne, że obraz tła będzie miał nałożoną na niego półprzezroczystą warstwę. (I53206)
  • Dodano komponent ScalingLazyColumn, który zapewnia komponent listy dla Wear Material, który daje efekt rybiego oka, a zawartość listy zmniejsza się i staje się przezroczysta, gdy zbliża się do krawędzi komponentu. (I7070c)

Poprawki błędów

  • Zmieniliśmy domyślny kolor treści appName w komponencie AppCard w odpowiedzi na aktualizację specyfikacji UX. Domyślny kolor nazwy aplikacji to teraz MaterialTheme.colors.onSurfaceVariant. Dodano też brakujący opis parametru dokumentu dla miejsca na tytuł. (Ic4ad1)

Wersja 1.0.0-alpha02

21 lipca 2021 r.

Publikacja androidx.wear.compose:compose-foundation:1.0.0-alpha02 i androidx.wear.compose:compose-material:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy nową klasę CurvedRow do układania komponentów w łuku (I29941).
  • Dodano nowy typ karty do użycia w aplikacjach (TitleCard), a także obsługę obrazów jako tła kart, aby podkreślić ich zawartość (I53b0f).

Zmiany w interfejsie API

  • Dodanie do CurvedRow obsługi wyrównania radialnego (podobnie jak wyrównanie pionowe w wierszu) (Id9de5)
  • Dodawanie nowej klasy CurvedRow do kompozycji w układzie łukowym (I29941)
  • Dodano nowy typ karty do użycia w aplikacjach (TitleCard), a także obsługę obrazów jako tła kart, aby podkreślić ich zawartość (I53b0f).
  • Dodano ikony przełączania (pola wyboru, przełączniki i przyciski opcji) do ToggleChipDefaults, aby ułatwić deweloperom konfigurowanie elementów ToggleChip i SplitToggleChips (I7b639).
  • Zaktualizowano dopełnienie początku i końca treści w elementach Chip, tak aby wynosiło ono zawsze 14 dp, niezależnie od tego, czy element Chip zawiera ikonę (wcześniej było to 12 dp, jeśli ikona była obecna, i 14 dp, jeśli nie) (I34c86).

Poprawki błędów

  • Dodaj testy dla CurvedRow (I93cdb)
  • Powiązanie zależności Wear Compose z Compose w wersji 1.0.0-rc01. (Ie6bc9)
  • Zmieniliśmy sposób rysowania obrazu tła w przypadku kart i elementów, tak aby obraz był przycinany, a nie rozciągany, co pozwala zachować jego proporcje. (I29b41)
  • Dodaliśmy więcej wersji demonstracyjnych i testów integracji dla elementów Button i ToggleButton. (5e27ed2)
  • Dodano więcej testów elementów, aby uwzględnić kolory treści w przypadku elementów imageBackgroundChips (Ia9183).

Wersja 1.0.0-alpha01

1 lipca 2021 r.

Publikacja androidx.wear.compose:compose-foundation:1.0.0-alpha01 i androidx.wear.compose:compose-material:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

Wear Compose to biblioteka oparta na Kotlinie i Compose, która obsługuje Wear Material Design, czyli rozszerzenie Material Design na urządzenia z WearOS. Ta pierwsza wersja alfa zawiera wczesne, działające implementacje tych funkcji:

  • Motyw Material – konfiguruje kolory, typografię i kształty w spójny sposób we wszystkich komponentach używanych z tej biblioteki.
  • Chip, CompactChip – elementy w kształcie stadionu, dostępne w różnych wersjach, które mogą zawierać ikonę, etykietę i etykietę dodatkową.
  • – ToggleChip, SplitToggleChip – specjalny rodzaj elementu, który zawiera miejsce na ikonę przełącznika dwustanowego, np. przycisk opcji lub pole wyboru. Dodatkowo element SplitToggleChip ma 2 obszary, które można kliknąć: jeden klikalny i jeden przełączalny.
  • Button, CompactButton – przyciski mają okrągły kształt i jedno miejsce na ikonę lub minimalną ilość tekstu (maksymalnie 3 znaki).
  • ToggleButton – przycisk, który włącza lub wyłącza działanie, z jednym miejscem na ikonę lub minimalny tekst (maksymalnie 3 znaki).
  • Karta, AppCard – prostokątna z zaokrąglonymi rogami, z miejscami na treści, takie jak ikona aplikacji, czas, tytuł i tekst.

W przyszłych wersjach rozszerzymy zestaw widżetów, dodając obsługę selektorów, suwaków, list, wskaźników stron, okien, wskaźników przewijania, powiadomień i innych elementów interfejsu Material Design na Wear.

Dodatkowo zapewnimy obsługę innych funkcji specyficznych dla urządzeń do noszenia, takich jak zakrzywione układy i tekst, a także szkielety, które ułatwią deweloperom tworzenie aplikacji i nakładek na urządzenia do noszenia.

Wear Compose Material jest zaprojektowany zgodnie z tymi samymi zasadami co Compose Material, ale jest przeznaczony na urządzenia do noszenia. Podczas tworzenia aplikacji na urządzenia do noszenia należy używać biblioteki Wear Compose Material zamiast biblioteki Compose Material.

Obie biblioteki „Material” należy traktować jako wzajemnie wykluczające się i nie należy ich łączyć w tej samej aplikacji. Jeśli deweloperzy uwzględniają w zależnościach bibliotekę Compose Material, oznacza to, że a) w bibliotece Wear Compose Material brakuje komponentów – daj nam znać, czego potrzebujesz, lub b) używasz komponentu, którego nie zalecamy do używania na urządzeniu do noszenia.