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
2 lipca 2025 r. 1.4.1 - 1.5.0-beta05 -

Deklarowanie zależności

Aby dodać zależność od Wear, musisz dodać repozytorium Google Maven do projektu. 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:

Odlotowe

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

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

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

    // For Wear preview annotations
    implementation("androidx.wear.compose:compose-ui-tooling:1.4.1")
    
    // 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.4.1")

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

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

    // 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.

Opinia

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 dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Tworzenie nowego problemu

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

Wear Compose w wersji 1.5

Wersja 1.5.0-beta05

2 lipca 2025 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-beta05 Wersja 1.5.0-beta05 zawiera te zmiany.

Poprawki błędów

  • Zaktualizowaliśmy dokumentację, aby wyjaśnić użycie Modifier.edgeSwipeToDismiss (I78cb5).
  • Usunięto błąd, który powodował, ż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 TimePickerDatePicker 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).
  • Rozwiązanie problemu z animacją w TransformingLazyColumn podczas usuwania elementów. (I73034)
  • Poprawiono obsługę elementów kotwiczących w TransformingLazyColumn po usunięciu elementów. (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.

Zostanie wycofaneandroidx.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 na sam dół listy z EdgeButton. Podczas przywracania układu postęp przewijania jest teraz zgodny z metodą gradientu zstępującego. (Iea375)
  • TransformingLazyColumn odczytuje teraz wysokość elementu w malowaniu tła, co umożliwia niestandardowym 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 kompozycja. (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, OpenOnPhoneDialogSwipeToReveal zaokrąglają teraz w górę dopełnienia i rozmiary obliczane jako procent rozmiaru ekranu. (I76367)
  • ButtonDefaults.outlinedButtonBorder teraz aktualizuje się po zmianach stanu włączony/wyłączony 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 warunek wyścigu, który mógł powodować zatrzymanie animacji obiektu zastępczego. (I53530)
  • Poprawiliśmy wydajność funkcji 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.

Zostanie wycofaneandroidx.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 iconContentDescriptioncontentDescription. ConfirmationDialogDefaults ma teraz parametry modyfikatora w kompozycjach SuccessIconFailureIcon. (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 następującej kolejności: malowanie tła, przekształcenie kontenera, przekształcenie treści. Teraz pierwsze 2 elementy są odwrócone, a między nimi stosujemy 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)
  • RevealState.Saver został dodany, aby przywracać stan SwipeToReveal, gdy aktywność lub proces są odtwarzane. Funkcja rememberRevealState domyślnie korzysta teraz z tego narzędzia. (Ie0ecb)
  • SwipeToReveal przyciski działań podstawowych i dodatkowych powinny mieć domyślnie wartość ButtonDefault.Height (naprawiono błąd, w którym przyciski te wypełniały maksymalną wysokość w przypadku wyższych przycisków); (Ibfba1)
  • Zmieniliśmy SwipeToReveal, aby resetować ostatni komponent, z którym użytkownik wszedł w interakcję, gdy wykona gest przesunięcia w prawo. (Ia8450)
  • SwipeToReveal zmieniono tak, aby po zakończeniu przesuwania w położeniu między punktami zakotwiczenia stanu odkrywania i odkrytego, bliżej punktu zakotwiczenia stanu odkrywania, przyjmował stan Revealing. (If4458)
  • Treści ButtonGroup są teraz prawidłowo odwrócone w układzie RTL (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ść przez skrócenie czasu klatki. (I501a1)

Wersja 1.5.0-beta02

20 maja 2025 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-beta02 Wersja 1.5.0-beta02 zawiera te zmiany.

Poprawki błędów

  • Zaktualizowaliśmy profile podstawowe bibliotek foundation, material i material3. (I53f06)
  • Naprawiliśmy błąd w TransformingLazyColumn, który powodował zmianę rozmiaru elementów po usunięciu elementu znajdującego się na dole. (Idacab)
  • Usunęliśmy błąd związany z TransformingLazyColumn, który powodował, że lista zatrzymywała się u góry lub u dołu. (I49d00)
  • OpenOnPhoneDialog w sekcji TalkBack powinien odczytywać zakrzywiony tekst, a nie opis zawartości ikony. (I4efe8)
  • Naprawiliśmy błąd w SwipeToReveal, który powodował zgłaszanie nieprawidłowego elementu zakotwiczenia w RevealState.currentValue, gdy wartość hasPartiallyRevealedState była ustawiona na false. (I9c7cf)
  • Przyciski cofania SwipeToReveal są teraz domyślnie ButtonDefaults.Height. (I1f6c8)
  • BasicSwipeToDismissBox poprawiliśmy wydajność, eliminując użycie elementu Canvas do rysowania półprzezroczystych nakładek. (I68f2c)
  • Rozwiązanie problemu z dostępnością w suwaku, który powodował, że po aktualizacji ogłaszany odsetek nie zgadzał się z wartością (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.

Zostanie wycofaneandroidx.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, typografia i kształty, które nadadzą Twoim projektom głębi i różnorodności.
  • 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.
  • Przekształcanie kształtu – okrągłe komponenty przycisków, takie jak IconButton, TextButton, IconToggleButtonTextToggleButton, 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.
  • Scaffolds – wprowadzenie AppScaffoldScreenScaffold do określania struktury ekranu i koordynowania animacji ScrollIndicatorTimeText.
  • 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. Symbole CheckboxButtonSwitchButton są używane, gdy potrzebne są przyciski przełączania, a RadioButton to dostępny przycisk wyboru (dostępne są też „dzielone” 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 obsługują przyciski OK/Anuluj lub EdgeButton.
  • ConfirmationDialog może wyświetlać komunikat z limitem czasu, obsługując specjalne animacje w przypadku powodzenia, niepowodzenia i otwierania na telefonie.
  • Selektory – obsługiwane są warianty TimePickerDatePicker, 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 konkretne układy kart z tytułem, czasem, podtytułem lub miejscami na treści. TitleCard może też mieć obraz tła, który wzmacnia znaczenie informacji na karcie.
  • Pagers – komponenty HorizontalPagerScaffold, VerticalPagerScaffoldAnimatedPage koordynują animacje HorizontalPageIndicatorVerticalPagerIndicator. HorizontalPagerVerticalPager są dostępne w bibliotece Wear Compose Foundation.
  • Elementy zastępcze – rysują szkieletowy kształt nad komponentem w sytuacjach, gdy nie są dostępne żadne treści tymczasowe.
  • Suwaki i krokomierze – zarówno suwaki, jak i krokomierze 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 w wersji 1.5.0-beta01 zawiera te nowe komponenty:

  • TransformingLazyColumn – leniwa lista przewijana w pionie, która obsługuje animacje skalowania i 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 HorizontalPagerVerticalPager 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

  • Zaktualizowano interfejs Hierarchical Focus API – zmieniono nazwę Modifier.hierarchicalFocus na Modifier.hierarchicalFocusGroup i usunięto parametr wywołania zwrotnego; usunięto przeciążenie Modifier.hierarchicalFocusRequester z parametrem FocusRequester; utworzono nowe CompositionLocalLocalScreenIsActive, aby komponenty mogły informować o tym, który ekran jest aktywny, i sprawdzać to. (I5ff7c).
  • Wycofano 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 API Wear Compose Material3 SwipeToReveal w ten sposób: dodaliśmy parametry primaryAction, onFullSwipe, secondaryAction, undoPrimaryAction, undoSecondaryActionhasPartiallyRevealedState do funkcji kompozycyjnej SwipeToReveal; usunęliśmy możliwość dostosowywania parametrów positionalThresholdanimationSpecRevealState; 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, undoPrimaryActionundoSecondaryAction zostały zmienione na PrimaryActionButton, SecondaryActionButton, UndoActionButton i przekształcone w funkcje kompozycyjne; oznaczyliśmy RevealActionType jako wewnętrzny. (I885d0).
  • Dalsze aktualizacje interfejsu API: zmieniono nazwę onFullSwipe na onSwipePrimaryAction; zmieniono nazwę SwipeToRevealNonAnchoredSample, aby wskazywała użycie parametru hasPartiallyRevealedState; usunięto actionButtonHeight, ponieważ domyślna wysokość przycisku jest domyślną wysokością, a większą wysokość można ustawić za pomocą modyfikatora; usunięto SmallActionButtonHeightSwipeToRevealDefaults; ustawiono parametr wartości w konstruktorach RevealValueRevealDirection jako prywatny.SwipeToReveal (I465ce).

Poprawki błędów

  • Poprawiono obsługę ScreenScaffold EdgeButton, tak aby po usunięciu elementu TransformingLazyColumn EdgeButton animował się na swoje miejsce. (I6d366).
  • Zaktualizowaliśmy zależności Wear Compose w bibliotekach Compose do wersji 1.8.0. (I2ef3f).
  • Zaktualizowano ruch nieokreślonego CircularProgressIndicator, aby nie cofał się już tymczasowo. (Ieddb1).
  • Rozwiązaliśmy SwipeDismissableNavHost błąd – po przesunięciu palcem do tyłu fokus nie przełączał się prawidłowo, co powodowało niepowodzenie wprowadzania danych za pomocą pokrętła (dotyczyło to interfejsu API w wersji 36 lub nowszej, który korzysta z przewidywanego powrotu). (Ieddb1).
  • Zmieniona dokumentacja interfejsu Hierarchical Focus API (Idf2ff).
  • Zaktualizowaliśmy dokumentację dotyczącą komponentów Button i Card, aby wyjaśnić, jak elementy containerPainterdisabledContainerPainter zastępują elementy containerColordisabledContainerColor (I4a453).
  • Cofnięto zmianę wprowadzoną w TimeText w poprzedniej wersji, która przenosiła BroadcastReceiver do wątku roboczego, ponieważ powodowała problemy w aplikacjach, które zarządzają własnymi wątkami podczas nawigacji. (I34d02).
  • Zaktualizowano przykłady selektora, aby usunąć niepotrzebne wywołania zapamiętywania i zamiast tego używać rememberUpdatedState w selektorze do zapamiętywania najnowszej funkcji lambda contentDescription. (Icb5b1).
  • Zaktualizowano style tekstu w TimePickerDatePicker, aby zmiany czcionki nie powodowały już obcinania tekstu. (I26194).
  • ListHeaderListSubHeader mają teraz domyślne wyrównanie tekstu do środka i do początku. (I78339).
  • Zaktualizowaliśmy przykłady i wersje demonstracyjne komponentu 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 treści EdgeButton zgodnie z rozmiarem – teraz wynosi on 1 w przypadku bardzo małych, 2 w przypadku małych i średnich oraz 3 w przypadku dużych. (Ie35f6).
  • Uproszczono 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 przycisk EdgeButton osiągał pełną wysokość. (I30580).

Wersja 1.5.0-alpha14

23 kwietnia 2025 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha14 Wersja 1.5.0-alpha14 zawiera te zmiany.

Zmiany w interfejsie API

  • Wszystkie zależności Material SwipeToReveal od 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 używać modyfikatorów zamiast funkcji kompozycyjnych.
  • Uwagi dotyczące migracji:
    • HierarchicalFocusCoordinator(function, content) można zastąpić, dodając Modifier.hierarchicalFocus(function()) do content lub do kompozycji obejmują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ć przez remember { FocusRequester() } i dodać Modifier.hierarchicalFocusRequester(focusRequester). (Ie319a)

Poprawki błędów

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

Wersja 1.5.0-alpha13

9 kwietnia 2025 r.

Zostanie wycofaneandroidx.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ą do użycia KGP w wersji 2.0.0 lub nowszej (Idb6b5).
  • Do usługi PagerState dodano usługę targetPage (I4de8b)

Poprawki błędów

  • Zapobiega niepotrzebnemu ponownemu komponowaniu podczas przewidywanego powrotu. (Iecd6d)
  • Poprawiono właściwość ScrollInfoProviderisScrollable, aby zwracała bieżącą wartość. (Icbfb8)

Wersja 1.5.0-alpha12

26 marca 2025 r.

Zostanie wycofaneandroidx.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 edgeZoneFractiongestureInclusion. (Ica7c3)

Poprawki błędów

  • Zmień SwipeToReveal bidirectionalGestureInclusion, aby zwracać obiekt zamiast klasy. (I29597)
  • Wyłączono korzystanie z haptyki podczas przeprowadzania testów w RoboElectric. (I58bd1)
  • Zaktualizuj SwipeToReveal dopełnienia 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.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha11 Wersja 1.5.0-alpha11 zawiera te zmiany.

Zmiany w interfejsie API

  • Zaktualizowano PagerState, usuwając klasę bazową Compose Foundation PagerState i dodając właściwości currentPage, currentPageOffsetFractionpageCount. Zaktualizowaliśmy interfejs GestureInclusion, zmieniając nazwę metody na ignoreGestureStart. (I4ae07)
  • Dodaj requireOffset do SwipeToDismissBoxState jako zalecany sposób uzyskiwania 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 timeTextCurvedTexttimeTextSeparator 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ą teraz 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 przesuwania w celu zamknięcia. (Iee486)
  • Dodano przewijanie obrotowe dla interfejsu rotaryScrollable. Do zachowania rotaryScrollable dodano przewijanie poza zakres i przewijanie zagnieżdżone. Ta zmiana powinna wyrównać funkcje przewijania poza zakres i przewijania zagnieżdżonego w przypadku przewijania dotykowego i obrotowego. (I71926)
  • Dodaliśmy obsługę strefy przesuwania od krawędzi do elementu SwipeToReveal. Domyślne działanie biblioteki Foundation SwipeToReveal polega teraz na blokowaniu przesuwania, gdy gest zaczyna się od krawędzi. Domyślne działanie SwipeToReveal Material3 polega teraz na blokowaniu przesuwania, gdy gest zaczyna się od krawędzi, a wartość SwipeDirection jest ustawiona na jeden kierunek. (I32ef0)
  • Biblioteka TLC domyślnie używa teraz pustego parametru 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)
  • Poprawiono zakrzywioną próbkę LetterSpacing na podkładzie. (Iebf7c)

Wersja 1.5.0-alpha10

26 lutego 2025 r.

Zostanie wycofaneandroidx.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 związanego z przesuwaniem 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. Wszystkie inne strony będą zezwalać komponentowi Pager na obsługę wszystkich gestów, co oznacza, że nie będzie można na nich wywołać gestu przesuwania 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 wprowadzona tu 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)
  • W interfejsie API do przesuwania w celu wyświetlenia zmieniliśmy nazwę createAnchors na createRevealAnchors(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 interfejsu API RevealValue w funkcji 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 rememberRevealStateSwipeToReveal. (I29c0a)
  • Dodaliśmy nowy parametr overscrollEffect do ScalingLazyColumn, TransformingLazyColumnScreenScaffold. (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 initialAnchorItemIndexinitialAnchorItemOffset do TransformingLazyColumnState oraz rememberTransformingLazyColumnState, aby początkową pozycję przewijania można było określić w TransformationLazyColumn. (I0a0d5)
  • Zastąpienie wartości runWithTimingDisabled wartością runWithMeasurementDisabled, która lepiej opisuje zachowanie – 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 w kodzie. (I9e23b, b/389149423, b/149979716)
  • Dodaliśmy do interfejsu API parametr TransformingLazyColumnItemScrollProgress.Unspecified, aby uniknąć problemu z wyświetlaniem w ramce na urządzeniach TransformingLazyColumnItemScrollProgress. (I0835d)

Poprawki błędów

  • Ulepsz dokumentację KDoc dla CurvedTextStyle (Id45e3)
  • Zmieniliśmy dostęp do SwipeableV2 (części implementacji SwipeToReveal) z publicznego na wewnętrzny, ale ograniczony do grupy bibliotek. (Idbb94)
  • Dodaliśmy testy do projektu HierarchicalFocusCoordinator (I1ce54, b/395548918)
  • Wprowadziliśmy ulepszenia SwipeToReveal w próbkach podstawowych komponentów Wear Compose. (I5f307)
  • Naprawianie danych semantycznych osi przewijania w przypadku elementu verticalScrollAxisRangeTransformingLazyColumn na potrzeby ułatwień dostępu (I68123)
  • Zwiększenie wydajności wibracji obrotowych na zegarkach z Wear 4+ 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.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha09 Wersja 1.5.0-alpha09 zawiera te zmiany.

Zmiany w interfejsie API

  • Na CurvedTextStyle odstępy między literami zostały podzielone na odstępy między literami w kierunku zgodnym z ruchem wskazówek zegara i w kierunku przeciwnym do ruchu wskazówek zegara. 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 element snapAnimationSpec został zmieniony na SnapAnimationSpec. (I20c9a)

Wersja 1.5.0-alpha08

15 stycznia 2025 r.

Zostanie wycofaneandroidx.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 wersji Wear OS po wersji V (Idb03e).

Wersja 1.5.0-alpha07

11 grudnia 2024 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha07 Wersja 1.5.0-alpha07 zawiera te zmiany.

Zmiany w interfejsie API

  • TransformingLazyColumnState umożliwia teraz obserwowanie 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)
  • Kompozycja TransformingLazyColumn udostępnia teraz lokalny element LocalTransformingLazyColumnItemScope, którego komponenty (np. CardButton w Material3) mogą używać do automatycznego przekształcania się po umieszczeniu w TransformingLazyColumn. Rozmówcy mogą wyłączyć automatyczne przekształcanie za pomocą nowego elementu TransformExclusion. (I1652f)

Poprawki błędów

  • Zaktualizowaliśmy minimalną i maksymalną prędkość przesunięcia dla obrotu na urządzeniach z Androidem U i nowszym. (I33559)
  • Naprawiliśmy błąd, który występował, gdy element w TransformingLazyColumn nie zawierał żadnych komponentów (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.

Zostanie wycofaneandroidx.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 zachowanie polega na tym, że element TimeText pozostaje na swoim miejscu zarówno w przypadku przewijania w pionie, jak i w poziomie. (I71767)
  • TransformingLazyColumn została wprowadzona we wcześniejszych wersjach. Usuwamy teraz aliasy LazyColumn Wear (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 snapAnimationSpecTween 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 zakres za pomocą TransformingLazyColumn (Id7668).
  • Dodaliśmy LazyLayoutSemantics do TransformingLazyColumn. (Ia8f56)

Wersja 1.5.0-alpha05

30 października 2024 r.

Zostanie wycofaneandroidx.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

  • Usunęliśmy błąd renderowania znaku 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 (anchorItemIndexanchorItemScrollOffset). (I3d265)

Wersja 1.5.0-alpha04

16 października 2024 r.

Zostanie wycofaneandroidx.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)
  • Dodano obsługę obrotową w przypadku pagerów poziomych i pionowych, co umożliwia użytkownikom poruszanie się po nich za pomocą urządzeń wejściowych z funkcją obrotową. (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.

Zostanie wycofaneandroidx.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 jest to 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ępować canScrollForwardcanScrollBackward – teraz przewijanie zatrzymuje się, gdy pierwszy lub ostatni element znajduje się dokładnie na środku ekranu. (Ia77d7)
  • Dodaliśmy nowe komponenty HorizontalPagerVerticalPager, 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. (I2902b)
  • Dodaliśmy obsługę LazyColumn, aby udostępniać keycontentType 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 po ustawieniu flagi show na wartość false funkcja onDismissRequest nie jest wywoływana. (Ifd8d6)
  • Naprawiliśmy błąd animacji winiety w oknie dialogowym Material (I126bf).

Wersja 1.5.0-alpha02

18 września 2024 r.

Zostanie wycofaneandroidx.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 ma wartość 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órym 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.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha01 Wersja 1.5.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaliśmy nowy element LazyColumn do biblioteki Wear Compose Foundation wraz z powiązanymi interfejsami API LazyColumnStateLazyColumnScope. Stanowi to podstawę do tworzenia dostosowywanych efektów skalowania i przekształcania za pomocą Wear Compose. (Ib3b22)
  • Dodaliśmy indeksowaną wersję itemsIndexed do LazyColumnScope w ramach nowego interfejsu LazyColumn API. (Ib4a57)
  • Dodaliśmy LazyColumnmodyfikatory, aby obsługiwać skalowanie i przekształcanie. (Ie229a)
  • HierarchicalFocusCoordinator została promowana 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 zapobiec obracaniu 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 lastActionType do wartości Brak po zakończeniu animatedTo. (I59b03)
  • Ulepszyliśmy dokumentację nowego parametru rotationLocked w zdarzeniu curvedComposable. (Ifbd57)
  • Usunęliśmy awarię, która występowała podczas przekazywania wartości NaN do funkcji performFlingScalingLazyColumnSnapFlingBehavior. (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 tego flagi. (I3a330)

Wersja 1.4

Wersja 1.4.1

12 lutego 2025 r.

Zostanie wycofaneandroidx.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.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0 Wersja 1.4.0 zawiera te zmiany.

Ważne zmiany od wersji 1.3.0

  • ScalingLazyColumnPicker domyślnie obsługują teraz wprowadzanie obrotowe – zalecamy usunięcie jawnej obsługi obrotowej 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 podanie zachowania przyciągania i możliwości 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ć treści za pomocą pokrętła lub obrotowej ramki na urządzeniu z Wear OS.
  • SwipeDismissableNavHost zapewnia teraz animację wejścia podczas 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.

Zostanie wycofaneandroidx.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 2.8.3.

Wersja 1.4.0-beta03

12 czerwca 2024 r.

Zostanie wycofaneandroidx.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” przez „focusTarget”, co zwiększa wydajność. (Id294b)
  • Rozwiązaliśmy problem, który powodował, że ProgressIndicator powtarzał komunikat w TalkBack. (I94563)
  • Zaktualizowaliśmy profile bazowe biblioteki Wear Compose. (I3cbc3)

Wersja 1.4.0-beta02

29 maja 2024 r.

Zostanie wycofaneandroidx.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 do czytników ekranu – wcześniej wskaźnik zajmował cały ekran (Id8d7a).

Wersja 1.4.0-beta01

14 maja 2024 r.

Zostanie wycofaneandroidx.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 ScalingLazyColumnPicker domyślnie obsługują teraz wprowadzanie danych za pomocą pokrętła. Za pomocą parametru rotaryScrollableBehavior możesz 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 podczas 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 wariant 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ść wymaga dodatkowej wysokości ze względu na duże rozmiary czcionek.

Poprawki błędów

  • Naprawiliśmy błąd polegający na tym, że klikalne elementy były odczytywane jako „kliknij dwukrotnie, aby przełączyć”, mimo że były już zaznaczone. (I7ed88)

Wersja 1.4.0-alpha08

1 maja 2024 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-alpha08 Wersja 1.4.0-alpha08 zawiera te zmiany.

Zmiany w interfejsie API

  • W nowym interfejsie API obrotowego wprowadziliśmy te zmiany: 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 snapOffsetRotaryScrollableDefaults.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 będą nieprawidłowe ze względu na zmianę 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 wykraczającym poza zakres 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.

Zostanie wycofaneandroidx.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ą wprowadzanie danych za pomocą ruchu obrotowego. Mają też 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 podanie wartości snap również w parametrze flingBehavior w przypadku przewijania dotykowego. (I2ef6f)
  • Źródła NestedScrollDrag i 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 symbole SelectableChipSplitSelectableChip, aby wyraźniej odróżnić przełączniki, takie jak Switch/Checkbox, od elementów, które można wybrać, np. RadioButton. Spowoduje to zastąpienie wcześniej dodanych przeciążeń funkcji ToggleChip/SplitToggleChip parametrami selectionControl. (Ia0217)
  • Zmieniono modyfikator widoczności użytkownika IndeterminateStrokeWidth w grupie ProgressIndicatorDefaults na publiczny. (I5b5a4)

Wersja 1.4.0-alpha06

3 kwietnia 2024 r.

Zostanie wycofaneandroidx.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 w ramach większego projektu przenoszenia zachowania pokrętła z Horologist do Androida X. (I617d1)
  • Dodaliśmy wewnętrzną wersję roboczą obsługi haptyki w ramach większego projektu przenoszenia zachowania obrotowego z Horologist do Androida X. (I5568a)

Wersja 1.4.0-alpha05

20 marca 2024 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-alpha05 Wersja 1.4.0-alpha05 zawiera te zmiany.

Zmiany w interfejsie API

  • Udostępniliśmy właściwości initialCenterItemIndexinitialCenterItemScrollOffset usługi ScalingLazyListState. (I0c616)
  • Ustawiliśmy FullScreenStrokeWidthProgressIndicatorDefaults jako publiczne. (Ibea23)

Poprawki błędów

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

Wersja 1.4.0-alpha04

6 marca 2024 roku

Zostanie wycofaneandroidx.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 ToggleChipSplitToggleChip, 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 nowego przeciążenia selectionControlonSelected na onSelect w przypadku ToggleChipSplitToggleChip (I1a971)

Wersja 1.4.0-alpha03

21 lutego 2024 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-alpha03 Wersja 1.4.0-alpha03 zawiera te zmiany.

Zmiany w interfejsie API

  • Element 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()ModifierNodeElement. (Ib3236)

Poprawki błędów

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

Wersja 1.4.0-alpha02

7 lutego 2024 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-alpha02 Wersja 1.4.0-alpha02 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)
  • 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.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-alpha01 Wersja 1.4.0-alpha01 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy animację wejścia do SwipeDismissableNavHost w przypadku przejść w aplikacji.(cfeb79a)
  • PositionIndicator jest teraz domyślnie wyświetlany, gdy ekran jest wyświetlany po raz pierwszy. Ta zmiana została wprowadzona, aby pomóc w spełnianiu wymagań dotyczących jakości aplikacji na 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ł wyświetlany. (419cef7)

Zmiany w interfejsie API

  • W bibliotekach wear:compose-materialwear:compose-material3 dodaliśmy nowy interfejs API efektu falowania, który zastępuje wycofany interfejs rememberRipple. Dodaje też tymczasowe CompositionLocal, LocalUseFallbackRippleImplementation, aby przywrócić komponenty Material do korzystania z wycofanych interfejsów API rememberRipple/RippleTheme. Zostanie ona usunięta w kolejnej stabilnej wersji i ma być tylko tymczasowym ułatwieniem migracji w przypadkach, gdy podajesz niestandardowy 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 bardziej wydajne jest częstsze używanie kolorów. Powodem tej zmiany jest to, że większość aplikacji nie ma aktualizowania poszczególnych kolorów jako głównego zastosowania. 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 wykonywania 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, aby udostępniać wartość MutableInteractionSource z możliwością 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 w komponencie. Ustawienie wartości null powoduje, że niektóre komponenty nigdy nie przydzielają MutableInteractionSource, a inne tworzą 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 zapisać stan rozwinięty. Dzięki temu dane są przechowywane podczas przechodzenia do innego ekranu i przywracane po powrocie do pierwotnego ekranu. (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 w przypadku CompactButton, aby poprawić wydajność (25db8e9)
  • Ulepszyliśmy BasicSwipeToDismissBox, aby był bardziej odporny na przesunięcia NaN i uniknąć wyjątków (b983739).
  • Zaktualizowaliśmy BasicSwipeToDismissBox, aby wartości alfa mieściły się w zakresie 0,1.
  • Naprawiliśmy błąd w elementach ToggleButton, SplitToggleButton, Checkbox, SwitchRadioButton, aby komunikaty 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.

Zostanie wycofaneandroidx.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.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0 Wersja 1.3.0 zawiera te zmiany.

Ważne zmiany od wersji 1.2.0

  • Klasa SwipeToDismissBoxState, wyliczenie SwipeToDismissValue i funkcja rozszerzenia Modifier.edgeSwipeToDismiss wchodzą teraz w skład pakietu androidx.wear.compose.foundation zamiast 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 SwipeToRevealCardSwipeToRevealChip 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 ChipToggleChip zwiększają wysokość, aby lepiej obsługiwać skalowanie czcionki wybrane przez użytkownika. Może to spowodować przycięcie. Aby rozwiązać ten problem, kształt large dla MaterialTheme ma teraz większy promień zaokrąglenia (26 dp zamiast 24 dp). Obiekty ChipToggleChip używają tego nowego promienia zaokrąglenia, aby uniknąć przycinania treści w rogach elementu Chip i ToggleChip.

    • Większość elementów ChipsToggleChips nie ulegnie zmianie, ponieważ ich domyślna wysokość to 52 dp. Jednak obiekty ChipToggleChip, 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 wdrażania

  • Jeśli aplikacja umożliwia użytkownikom przesuwanie zawartości ekranu, 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ę multimedialną wyświetlaj pusty komponent Placeholder.
  • Aby utworzyć kolekcję rozwijanych elementów na żądanie, możesz użyć eksperymentalnej klasy ExpandableStateMapping.

Wersja 1.3.0-rc01

10 stycznia 2024 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-rc01 Wersja 1.3.0-rc01 zawiera te zmiany.

Poprawki błędów

  • Zaktualizowaliśmy MaterialTheme duż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 treści wymagają dodatkowej wysokości ze względu na duże rozmiary czcionek. W przeciwnym razie istniejący kształt stadionu przycina niektóre treści tekstowe.

    Tekst obcięty w rogach
    Ilustracja 1. Tekst ucięty w 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.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-beta02 Wersja 1.3.0-beta02 zawiera te zmiany.

Poprawki błędów

  • Przywróciliśmy zamierzony gest przesuwania w BasicSwipeToDismissBox. W poprzedniej wersji zostało to zmienione tak, że przesunięcie w ramach przejścia następowało, gdy palec dotykał ekranu. (Id8e76)

Wersja 1.3.0-beta01

15 listopada 2023 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-beta01 Wersja 1.3.0-beta01 zawiera te zmiany.

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 funkcji oznaczonych jako eksperymentalne). Wear Compose 1.3 zawiera te nowe funkcje:

  • Usługi SwipeToDismissBoxState, SwipeToDismissValueModifier.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 funkcji przesuń, aby zamknąć można stosować niezależnie od Material Design, np. w przypadku SwipeDismissableNavHostandroidx.wear.compose.navigation. SwipeToDismissBoxandroidx.wear.compose.material nadal zaleca się używać w przypadku 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ę przesuwania na ekranach, na których nie jest ona wymagana.
  • BasicSwipeToDismissBox ma ulepszoną obsługę ostrości za pomocą HierarchicalFocusCoordinator.
  • SwipeToReveal ma nowe komponenty SwipeToRevealCardSwipeToRevealChip w Material Design, które są zgodne z zalecanymi wskazówkami UX dotyczącymi CardChip. Obsługuje też cofanie działania dodatkowego.
  • DefaultTextStyle wyłącza teraz dopełnienie czcionki, aby zapewnić spójność na całej platformie Android.
  • ChipToggleChip dostosowują teraz 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 dotyczy teraz efektu połyskiwania i ruchu wycierania na urządzeniu Placeholder.

Znane problemy

  • PositionIndicator nie jest początkowo wyświetlana, gdy ekran pojawia się po raz pierwszy. W wersji alfa 1.4 planujemy wprowadzić zmianę, która spowoduje, że będzie się ona początkowo wyświetlać, ale bez animacji.

Zmiany w interfejsie API

  • Zmieniliśmy nazwę poziomu podstawowego SwipeToDismissBox na BasicSwipeToDismissBox. Dzięki temu łatwiej odróżnić komponent poziomu podstawowego od komponentu 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 eksperymentalną i zwiększyliśmy skuteczność expandableItem. (I5f6bc)
  • Zastąpiliśmy klasę SwipeToRevealAction w interfejsach API kart i elementów Material 3 interfejsem API opartym na slotach, który korzysta z funkcji kompozycyjnych SwipeToRevealPrimaryAction, SwipeToRevealSecondaryActionSwipeToRevealUndoAction.SwipeToReveal Przykłady użycia nowego interfejsu API znajdziesz w przykładowym kodzie. (Ia8943)
  • Flagi animacji PositionIndicator zastąpiliśmy parametrami AnimationSpec. Poszczególne animacje można wyłączyć, przekazując wartość snap jako parametr AnimationSpec. (I6c523)

Poprawki błędów

  • Rozwiązaliśmy błąd wywoływany przez ograniczony tekst zakrzywiony, gdy rozmiar jest ograniczony (I50efe).
  • Rozwiązaliśmy problem z potencjalną awarią związaną z wartością NaN w przypadku curvedComposable (I970eb).
  • Cofnęliśmy usunięcie animacji wyróżniającej zmianę pozycji na stronie PositionIndicator. (Ieb424)
  • Usunęliśmy warstwę materiału z elementu Chip, aby zwiększyć jego wydajność. (If2dcb)

Wersja 1.3.0-alpha08

18 października 2023 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha08 Wersja 1.3.0-alpha08 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaliśmy do przeciążeń PositionIndicator poszczególne flagi, aby sterować różnymi animacjami: showFadeInAnimation, showFadeOutAnimationshowPositionAnimation. Poprzedni interfejs API został wycofany i przekazuje wywołania do nowego interfejsu. Ze względu na wydajność i spójność UX, gdy PositionIndicator jest używany z listą z możliwością przewijania, zalecamy wyłączenie flag showFadeInAnimationshowPositionAnimation. Jeśli symbol 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 wear.compose.foundation wycofaliśmy komponenty Material SwipeToDismissBoxState, SwipeToDismissValueedgeSwipeToDismiss. Zastąp je odpowiednikami wear.compose.foundation. (Iee8c9)

Poprawki błędów

  • Zaktualizowaliśmy profile podstawowe bibliotek Wear Compose Foundation, Material i Navigation. (Idb060)
  • Cofnęliśmy zmianę w zachowaniu elementu PositionIndicator wprowadzoną w poprzednim CL, tak aby element PositionIndicator był animowany, gdy ekran jest wyświetlany po raz pierwszy. 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 korzystała z State<Boolean> zamiast ze stanu pochodnego. (Ieec4d)
  • W przypadku Androida 13 i nowszych ustawiliśmy systemGestureExclusion prostokątów. (Ib1f4b)

Wersja 1.3.0-alpha07

4 października 2023 roku

Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha07 Wersja 1.3.0-alpha07 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaliśmy do parametru PositionIndicator poszczególne flagi, które umożliwiają sterowanie różnymi animacjami: showFadeInAnimation, showFadeOutAnimationshowPositionAnimation. Poprzedni interfejs API został wycofany i przekazuje wywołania do nowego interfejsu. Ze względu na wydajność i spójność UX, gdy PositionIndicator jest używany z listą z możliwością przewijania, zalecamy wyłączenie flag showFadeInAnimationshowPositionAnimation. Jeśli symbol 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 głównego działania oraz zanikanie działania dodatkowego lub zmianę skali ikony po pełnym rozwinięciu przesunięcia. (Ib7223)
  • Zalecamy, aby działania przesuwania w celu wyświetlenia były dostępne. Do naszych przykładów przesuwania w celu wyświetlenia dodaliśmy niestandardowe działania ułatwień dostępu. (I42224)
  • Poprawiliśmy wydajność SwipeToDismissBox, w tym przeprowadziliśmy refaktoryzację, aby mieć pewność, że początkowa logika nie powoduje ponownego komponowania. 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)
  • Poprawiona wydajność PositionIndicator dzięki optymalizacji ponownego komponowania. Później dodaliśmy nowe flagi do sterowania animacjami (fadeIn, fadeOutpositionChange) (patrz Zmiany w interfejsie API) (Ifac7d).
  • Dodaliśmy testy porównawcze dla PositionIndicator (Idf875)

Wersja 1.3.0-alpha06

20 września 2023 r.

Zostanie wycofaneandroidx.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 materiałów SwipeToRevealChipSwipeToRevealCard. (Ieb974)
  • Zaktualizowaliśmy profile bazowe bibliotek Wear Compose Foundation i Material. (I1dd1f)

Wersja 1.3.0-alpha05

6 września 2023 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha05 Wersja 1.3.0-alpha05 zawiera te zmiany.

Poprawki błędów

  • Dodaliśmy obsługę w funkcji Przesuń, aby wyświetlić, dzięki czemu można przesuwać tylko jeden 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.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha04 Wersja 1.3.0-alpha04 zawiera te zmiany.

Nowe funkcje

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.3.0-alpha03

9 sierpnia 2023 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha03 Wersja 1.3.0-alpha03 zawiera te zmiany.

Zmiany w interfejsie API

  • W Material dodaliśmy 2 nowe funkcje kompozycyjne do implementowania SwipeToReveal za pomocą kart i elementów. Te komponenty kompozycyjne są zgodne z zalecanymi wskazówkami dotyczącymi UX 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 elementu ScalingLazyColumn do elementu onGloballyPositioned(). (Ic90f1)
  • W przypadku drawWithCachePositionIndicator, ProgressIndicatorSelectionControls używamy teraz drawWithCache, 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 do niestabilnych testów Placeholder (Idb560).

Wersja 1.3.0-alpha02

26 lipca 2023 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha02 Wersja 1.3.0-alpha02 zawiera te zmiany.

Zmiany w interfejsie API

  • Wprowadziliś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, CompactChipToggleChip (Idbfde).
  • Udostępniliśmy poziome i pionowe dopełnienie dla symboli ChipCompactChip. (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 Wear Compose Foundation. (I4ff8e)

Poprawki błędów

  • Naprawiliśmy błąd kolejności z, który powodował, że po kliknięciu przycisku expandedItem nie wyświetlał prawidłowej treści, gdy zawierał przyciski. (I1899d, b/289991514)
  • Poprawiono obsługę zaznaczenia elementu SwipeToDismissBox (a tym samym SwipeDismissableNavHost) za pomocą elementu 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 elementu ListHeader semantykę nagłówka. (Ic5420)
  • ChipToggleChip będą teraz dostosowywać swoją wysokość do treści, które urosły z powodu dużych czcionek ułatwiających dostęp. (Iaf302)
  • Naprawiliśmy błąd w semantycznej roli obszaru klikalnego SplitToggleChip na potrzeby ułatwień dostępu. (Ieed3a)
  • Ustawienie „Ogranicz ruch” wyłącza teraz efekt migotania i przesuwania na obiektach zastępczych. (I91046)
  • StepperInlineSlider obsługują teraz powtarzane kliknięcia podczas długiego naciśnięcia, dzięki czemu możesz szybko zwiększać lub zmniejszać wartość StepperInlineSlider, przytrzymując przyciski + lub –. (I27359)

Wersja 1.3.0-alpha01

21 czerwca 2023 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zmiany.

Poprawki błędów

  • Zgodnie z informacjami podanymi w 1.2.0-alpha071.2.0-alpha10 zmieniamy teraz DefaultTextStyle, aby wyłączyć dopełnianie czcionek i zapewnić spójność na całej platformie Android. Rozwiązanie to może wpłynąć na przycinanie tekstu przy dużych rozmiarach czcionki, a także na układy ekranu, dlatego testy zrzutów ekranu będą wymagać aktualizacji. Na przykład widzimy tu obcięty tekst (Ic6a86).
Tekst jest ucięty przy dużym rozmiarze czcionki
Ilustracja 1. Tekst jest ucięty.
  • Gdy dopełnienie czcionki jest wyłączone, nie jest już widoczny:
Tekst nie jest obcięty przy dużym rozmiarze czcionki
Ilustracja 2. Tekst nie jest przycięty.
  • Zaktualizowaliśmy wear.compose.foundation, aby była 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 po zmianie treści lub tła tworzone są nowe modyfikatory. (Ib876c, b/280392104)
  • Zaktualizowaliśmy TimeText, aby podczas wybierania formatu czasu 12-godzinnego lub 24-godzinnego korzystać z ustawień regionalnych. (If4a3d)
  • Usunęliś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 wymaganiem dotyczącym ułatwień dostępu. Wiemy, że wielowierszowe elementy Chip mogą powodować przycinanie tekstu, gdy są wyświetlane z dużymi rozmiarami czcionek, 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.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.1 Wersja 1.2.1 zawiera te zmiany.

Poprawki błędów

  • Usunęliśmy błąd, który powodował nieprawidłowe znikanie PositionIndicator. (7a167f)

Wersja 1.2.0

9 sierpnia 2023 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0 Wersja 1.2.0 zawiera te zmiany.

Ważne zmiany od wersji 1.1.0

Wersja 1.2.0-rc01

26 lipca 2023 r.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zmiany.

Poprawki błędów

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

Wersja 1.2.0-beta02

7 czerwca 2023 r.

Zostanie wycofaneandroidx.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.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zmiany.

Nowości 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 funkcji 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 parametr userScrollEnabled, który określa, czy selektor jest aktywny podczas przewijania przez użytkownika.
  • PickerGroup – nowy komponent do obsługi wielu selektorów jednocześnie. Zarządza on fokusem 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 „Wycieranie”. Efekt wycierania jest teraz stosowany natychmiast, gdy treść jest gotowa.
  • ScalingLazyColumn – przenieśliśmy ScalingLazyColumn i powiązane z nim zajęcia z androidx.wear.compose.material.ScalingLazyColumn do androidx.wear.compose.foundation.lazy.ScalingLazyColumn. Aby korzystać z wersji Foundation.Lazy, zaktualizuj aplikację.
  • 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 Wear: 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 funkcji kompozycyjnych na urządzeniu do noszenia z różnymi rozmiarami czcionek, a WearPreviewDevices wyświetla podgląd funkcji kompozycyjnych na różnych urządzeniach do noszenia.
  • Dodaliśmy do Wear Compose wartość DefaultTextStyle, która domyślnie ustawia właściwość PlatformTextStyle.includeFontPadding na wartość „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 angularWidthDpCurvedSize.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.

Zostanie wycofaneandroidx.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ązaliśmy problem z ScalingLazyColumn, który po przesunięciu pozostawał w interfejsie Wear API 33 (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.

  • 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 Poprawianie dopełnienia czcionki w Compose. W wersji alfa 1.3 zmienimy styl 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. Może to też wpłynąć na układy ekranu, więc testy zrzutów ekranu będą wymagać aktualizacji. Na przykład w przypadku dużych rozmiarów czcionki tekst jest tu obcięty:

Tekst jest ucięty przy dużym rozmiarze czcionki
Ilustracja 1. Tekst jest ucięty.
  • Gdy dopełnienie czcionki jest wyłączone, nie jest już widoczny:
Tekst nie jest obcięty 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.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-alpha09 Wersja 1.2.0-alpha09 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaj angularSizeDp do interfejsu 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.

Zostanie wycofaneandroidx.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 element 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.

Zostanie wycofaneandroidx.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

  • Naprawiliśmy błąd powodujący awarię ekranu korzystającego z PickerGroup, zapewniając, ż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 – przejście wprowadzające jest teraz płynniejsze i dopasowane do przejścia końcowego. (Ib5af9)
  • Dodaliśmy do Wear Compose wartość DefaultTextStyle, która domyślnie ustawia właściwość PlatformTextStyle.includeFontPadding na wartość „true” (jest to obecne ustawienie). Pozwoli nam to w przyszłości zsynchronizować domyślne wyłączanie dopełniania czcionki z bibliotekami Compose – więcej informacji znajdziesz w artykule Naprawianie dopełniania czcionki 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.

Zostanie wycofaneandroidx.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 pojedynczy rozwijany element, np. tekst, w którym zwiększa się liczba wierszy. (I95dd5)
  • Dodaliśmy te niestandardowe adnotacje do podglądu funkcji kompozycyjnych na ekranach Wear: 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 funkcji kompozycyjnych na urządzeniu do noszenia z różnymi rozmiarami czcionek, a WearPreviewDevices wyświetla podgląd funkcji kompozycyjnych na różnych urządzeniach do noszenia. Aby korzystać z tych podglądów, musisz używać najnowszej wersji Androida Studio (Giraffe Canary 6) lub nowszej. Pamiętaj, że jeśli te adnotacje nie odpowiadają Twoim potrzebom, możesz nadal używać podglądu i dostosowywać go za pomocą parametrów. (I397ff)
  • Oznaczyliśmy HierarchicalFocusCoordinator jako eksperymentalną, ponieważ ze względu na szerokie zastosowanie jest ona kandydatem do przeniesienia do podstawowych bibliotek Compose. (I3a768)

Poprawki błędów

  • Usunęliśmy błąd w HierarchicalFocusCoordinator. Jeśli lambda przekazana dla parametru focusEnabled zostanie zmieniona, używamy teraz nowej. (Icb353)
  • Zaktualizowaliśmy domyślny kolor wyłączonych treści na kolor tła, gdy jako tło w Button, CompactButton, Chip, CompactChipToggleButton używane są kolory podstawowe. Poprawia to kontrast, co ułatwia korzystanie z usługi osobom z niepełnosprawnościami. (I527cc)

Wersja 1.2.0-alpha05

22 lutego 2023 roku

Zostanie wycofaneandroidx.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 ma wartość „true”, minimalne ograniczenia przekazane z elementu kompozycyjnego nadrzędnego będą dozwolone w przypadku elementu PickerGroup. Jeśli ma wartość „false”, PickerGroup zresetuje minimalne ograniczenia. (I3e046)
  • Dodaliśmy do interfejsu Picker API parametr animateScrollToOption, aby obsługiwać programowe animowanie 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.

Zostanie wycofaneandroidx.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 przeniesienie zaznaczenia z grupy na wybrany selektor. (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.

Zostanie wycofaneandroidx.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 o określonym stylu. Zmiana jest wprowadzana teraz w ramach przygotowań do nowej biblioteki Material3, nad którą będziemy pracować równolegle z obecną biblioteką Material. (I060e7)

W ramach migracji ScalingLazyColumn z Material do Foundation.Lazy wprowadzamy te zmiany:

  • Interfejsy API kierowane na Material ScalingLazyColumn zostały wycofane. Zaktualizuj je do wersji Foundation.Lazy ScalingLazyColumn.PositionIndicator Dodano też pole anchorType do ScalingLazyListLayoutInfo. (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 Dialog API, aby korzystały z ScalingLazyListStateFoundation.Lazy. Wycofaliśmy też przeciążenia, które używały elementu Material ScalingLazyListState (Ic8960).
  • Zaktualizowaliśmy interfejsy Picker API, aby używać ScalingParams zamiast Foundation.Lazy, i wycofaliśmy przeciążenia, które korzystały z 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).
  • Zwiększyliś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).
  • Naprawiliśmy niektóre problemy w testach selektora i dodaliśmy więcej testów sprawdzających przewijanie z przesunięciem (I6ac34).
  • Przenieśliśmy ScalingLazyColumndemonstracje integracjiFoundation.Lazy, aby były zależne od Foundation.Lazy zamiast 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.

Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-alpha02 Wersja 1.2.0-alpha02 zawiera te zmiany.

Zmiany w interfejsie API

  • Testy interfejsu Androida 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 elementu Wear Text dodano parametr minLines, aby zapewnić spójne działanie z parametrem BasicText (I24874).
  • CompactChipTapTargetPadding został udostępniony publicznie, aby pojawiał się w dokumentacji (If1e70, b/234119038).

Poprawki błędów

  • Wyłączanie kompilacji wieloplatformowych dla pakietów wear.compose (Iad3d7)
  • Popraw dokumenty w usłudze KDocs dla 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 po odznaczeniu nie podlegały one zmianom RSB (I4aecb).

Wersja 1.2.0-alpha01

7 grudnia 2022 r.

Zostanie wycofaneandroidx.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 „Wycieranie” 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 HierarchicalFocusCoordinatorkomponent, który 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 pustego elementu 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, 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 obliczenie będzie 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 LazyListStateScalingLazyListState 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.2androidx.wear.compose:compose-navigation:1.1.2 są zwalniane. Wersja 1.1.2 zawiera te zmiany.

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

Wersja 1.1.1

11 stycznia 2023 r.

androidx.wear.compose:compose-foundation:1.1.1, androidx.wear.compose:compose-material:1.1.1androidx.wear.compose:compose-navigation:1.1.1 są zwalniane. Wersja 1.1.1 zawiera te zmiany.

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.0androidx.wear.compose:compose-navigation:1.1.0 są zwalniane. 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 „Wycieranie” 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 elementu 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, 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 obliczenie będzie 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 animacji SwipeToDismiss, aby pasowało do platformy Wear.(I9003e)
  • Naprawiliśmy obsługę PositionIndicator w przypadku LazyListStateScalingLazyListState dla 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-rc01androidx.wear.compose:compose-navigation:1.1.0-rc01 są zwalniane. Wersja 1.1.0-rc01 zawiera te zmiany.

Poprawki błędów

  • Dodaliśmy reguły profilu podstawowego dla tych krajów: Placeholders, ScrollAway, RadioButton, Switch, Checkbox, OutlinedButton, OutlinedCompactButton, OutlinedChip i OutlinedCompactChip. (I8249c)
  • Naprawiliśmy błąd w funkcji Modifier.scrollAway, dzięki czemu jeśli określony element itemIndex jest nieprawidłowy (np. 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 do elementów zastępczych, aby pokazać prawidłową kolejność dla Modifier.placeholderModifier.placeholderShimmer, gdy są one stosowane 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 po zmianach w danych wejściowych funkcje kompozycyjne nie były aktualizowane. (I49ff6, b/255323197)
  • Wprowadziliśmy kilka zmian w interfejsie użytkownika w przypadku elementów zastępczych: 1) zmieniliśmy gradient połysku na 1, 5-krotność rozmiaru ekranu, 2) dodaliśmy efekt wygładzania (krzywa Beziera) do progresji połysku i 3) przyspieszyliśmy animację wymazywania (250 ms). (Id29c1)
  • Naprawiliśmy błąd interfejsu w efekcie wymazywania obiektu 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ł ten, który jest bliżej. (I30709, b/254257769)
  • Naprawiliśmy błąd w ScalingLazyListState.layoutInfo.visibleItemsInfo, który podczas inicjalizacji ScalingLazyColumn raportował nieprawidłowe przesunięcia. 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-beta01androidx.wear.compose:compose-navigation:1.1.0-beta01 są zwalniane. Wersja 1.1.0-beta01 zawiera te zmiany.

Nowości 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 Wear Compose 1.1 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 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 – Dodaliśmy nowy styl konturowy dla elementów Chip i Button oraz nowe funkcje kompozycyjne OutlinedChipOutlinedButton, które zapewniają przezroczysty element Chip/Button z cienką obwódką.
    • Karta – zaktualizowano domyślne gradienty na kartach, aby dostosować je do najnowszej specyfikacji UX. Zaktualizowano CardDefaults.cardBackgroundPainter, aby zaczynał się od 30% koloru podstawowego i kończył na 20% koloru onSurfaceVariant (wcześniej było to 20% do 10% koloru onSurfaceVariant). Zmieniono ToggleChip.toggleChipColors z gradientu liniowego 75% koloru powierzchni na 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ż 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.
    • InlineSlider/Stepper – Dodano role przycisków, aby Talkback mogła rozpoznawać je jako przyciski.
    • Scaffold - 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.
    • CurvedText/TimeText – dodano Modifier.scrollAway, które przewija element w pionie tak, aby był widoczny lub niewidoczny, w zależności od stanu przewijania (z przeciążeniami do pracy z Column, LazyColumnScalingLazyColumn). Funkcja ScrollAway jest zwykle używana do przewijania elementu TimeText tak, aby był niewidoczny, gdy użytkownik zaczyna przewijać listę elementów w górę.
    • CurvedText/TimeText – dodaliśmy obsługę właściwości fontFamily, fontStylefontSynthesisCurvedTextStyle, które można stosować w przypadku curvedTextbasicCurvedText.
    • CurvedText/TimeText – dodano fontWeight do konstruktora i metody kopiowania w CurvedTextStyle
    • ToggleControls – dodano animowane przełączniki Checkbox, SwitchRadioButton do użycia z ToggleChipSplitToggleChip. Można ich używać zamiast statycznych ikon dostarczanych przez ToggleChipDefaults (switchIcon, checkboxIconradioIcon).
    • Obiekt zastępczy – dodano eksperymentalną obsługę obiektów zastępczych. Zawiera 3 różne efekty wizualne, które zostały zaprojektowane tak, aby ze sobą współdziałać.
    • Po pierwsze, efekt pędzla tła zastępczego używany w kontenerach, takich jak Chip i Cards, 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 zsynchronizowane.
  • Zaktualizowano zależności podstawowe Compose z wersji 1.2 do 1.3

Zmiany w interfejsie API

  • Parametry czcionki (fontFamily, fontWeight, fontStylefontSynthesis) można teraz określać bezpośrednio jako parametry elementu curvedText (Idc422).

Poprawki błędów

  • curveTextbasicCurvedText 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 autoCentering w wewnętrznym ScalingLazyColumn selektorów, aby umożliwić przewijanie opcji zerowej 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-alpha07androidx.wear.compose:compose-navigation:1.1.0-alpha07 są zwalniane. Wersja 1.1.0-alpha07 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy eksperymentalną obsługę elementów zastępczych. Zawiera 3 różne efekty wizualne, które zostały zaprojektowane tak, aby ze sobą współdziałać. Po pierwsze, efekt pędzla tła zastępczego używany w kontenerach, takich jak Chip i Cards, 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 zsynchronizowane. (I3c339)

Zmiany w interfejsie API

  • Dodano obsługę fontWeight, fontFamily, fontStyle i fontSynthesis w CurvedTextStyle, z których można korzystać na urządzeniach curvedText i basicCurvedText. Za pomocą tych parametrów możesz określić czcionkę i styl, które mają być używane w zakrzywionym tekście.(Iaa1a8),(I72759)
  • Zaktualizowano parametr przesunięcia Modifier.scrollAway na Dp, aby zachować spójność 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 do sterowania przełącznikami zmieniliśmy nazwę RadioButton’s circleColor na ringColor. (I28fa9)
  • Dodaliśmy animowane przełączniki Checkbox, SwitchRadioButton do użycia z ToggleChipSplitToggleChip. Można ich używać zamiast ikon statycznych udostępnianych przez ToggleChipDefaults (switchIcon, checkboxIconradioIcon). (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-alpha06androidx.wear.compose:compose-navigation:1.1.0-alpha06 są zwalniane. Wersja 1.1.0-alpha06 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy funkcję Modifier.scrollAway, która przewija element w pionie w górę lub w dół w zależności od stanu przewijania (z przeciążeniami do pracy z funkcjami Column, LazyColumnScalingLazyColumn). Funkcja ScrollAway jest zwykle używana do przewijania elementu TimeText w dół, gdy użytkownik zaczyna przewijać listę elementów w górę. (I61766)

Poprawki błędów

  • Element 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-alpha05androidx.wear.compose:compose-navigation:1.1.0-alpha05 są zwalniane. 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-alpha04androidx.wear.compose:compose-navigation:1.1.0-alpha04 są zwalniane. 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ą mieć wpływ 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-alpha03androidx.wear.compose:compose-navigation:1.1.0-alpha03 są zwalniane. Wersja 1.1.0-alpha03 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy nowy styl konturowy dla elementów ChipsButtons oraz nowe komponenty OutlinedChipOutlinedButton, 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 w 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 przełączania 36x24.dp. Spowoduje 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 tekstu, który nie mieści się w polu. 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-alpha02androidx.wear.compose:compose-navigation:1.1.0-alpha02 są zwalniane. 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

  • Animacja widoczności winiety podczas wyświetlania i ukrywania okna została zmieniona, aby była zgodna z dotychczasową animacją skalowania. (Ida33e)
  • Naprawiliśmy błąd, który w niektórych przypadkach powodował dzielenie przez zero podczas przewijania. (I86cb6)
  • Naprawiliśmy błąd w ChipDefaults.childChipColor(), aby kolor tła wyłączonego elementu był całkowicie 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-alpha01androidx.wear.compose:compose-navigation:1.1.0-alpha01 są zwalniane. 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 wartość String z możliwością wartości null (wcześniej konieczne było przekazanie mapowania z opcji na opis treści, ale używana była tylko wybrana opcja). (Ife6a7)
  • W selektorze wprowadziliśmy ulepszenia dotyczące ułatwień dostępu, 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ło od lewego górnego do prawego dolnego rogu, a teraz jest 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 tak, aby zaczynał się od 30% koloru podstawowego i kończył na 20% koloru onSurfaceVariant (wcześniej było to 20% do 10% koloru 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ą gradientowe tło, 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.2androidx.wear.compose:compose-navigation:1.0.2 są zwalniane. Wersja 1.0.2 zawiera te zmiany.

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.1androidx.wear.compose:compose-navigation:1.0.1 są zwalniane. Wersja 1.0.1 zawiera te zmiany.

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. (076c61)

Wersja 1.0.0

27 lipca 2022 roku

androidx.wear.compose:compose-foundation:1.0.0, androidx.wear.compose:compose-material:1.0.0androidx.wear.compose:compose-navigation:1.0.0 są zwalniane. Wersja 1.0.0 zawiera te zmiany.

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 Wear Compose znajdziesz w informacjach o wersji (Compose na Wear OS Beta01).

Poprawki błędów

  • Animacja widoczności winiety podczas wyświetlania i ukrywania okna została zmieniona, aby była zgodna z dotychczasową animacją skalowania. (Ida33e)
  • Naprawiliśmy błąd, który w niektórych przypadkach powodował dzielenie przez zero podczas przewijania. (I86cb6)
  • Naprawiliśmy błąd w ChipDefaults.childChipColor(), aby kolor tła wyłączonego elementu był całkowicie 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-rc02androidx.wear.compose:compose-navigation:1.0.0-rc02 są zwalniane. Wersja 1.0.0-rc02 zawiera te zmiany.

Poprawki błędów

  • Poprawiliśmy kierunek gradientu na kartach 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ła zaktualizowana, aby zaczynać się od 30% koloru podstawowego i kończyć na 20% 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ą gradientowe tło, 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-rc01androidx.wear.compose:compose-navigation:1.0.0-rc01 są zwalniane. Wersja 1.0.0-rc01 zawiera te zmiany.

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 fillMaxWidth() zawiera komponenty ListHeader() i Chip(), ponieważ szerokość będzie się zwiększać lub zmniejszać w miarę przewijania elementów ListHeader.ScalinglazyColumn (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 (w tym dopełnienie) (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ć scalingParamsScalingLazyColumn (Ie375c).
  • Dodaliśmy do ikony CompactChip dopełnienie, aby jej rozmiar docelowy wynosił co najmniej 48 dp wysokości i była zgodna z wytycznymi dotyczącymi ułatwień dostępu w interfejsie Material Design. Może to wpłynąć na wszystkie układy korzystające z CompactChips, ponieważ będą 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-beta03androidx.wear.compose:compose-navigation:1.0.0-beta03 są zwalniane. Wersja 1.0.0-beta03 zawiera te zmiany.

Nowe funkcje

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

Zmiany w interfejsie API

  • Zmieniliśmy domyślną wartość 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 horizontalAlignment = Alignment.Start.(I9ed4b)

Znane problemy

  • Wysokość elementu CompactChip jest mniejsza niż zalecana w wytycznych Material Design 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ż będzie on teraz miał 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 bliższa specyfikacjom 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-beta02androidx.wear.compose:compose-navigation:1.0.0-beta02 są zwalniane. Wersja 1.0.0-beta02 zawiera te zmiany.

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 przez element w gradientColor. (I72925)
  • Zmieniliśmy działanie interfejsu Chip/ToggleChip/CompactChip/SplitToggleChip, aby domyślnie nie wykonywał on fillMaxWidth. Zamiast tego będą się rozszerzać, aby dopasować się do zawartości. Aby zachować poprzednie działanie, dodaj modifier = Modifier.fillMaxWidth()(I60a2c, b/232206371).

Poprawki błędów

  • Konstruktor CurvedTextStyle przyjmujący argument TextStyle uwzględnia teraz też argument fontWeight(może on zostać dodany 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ż zamknięcia po zmianie kierunku przesunięcia na prawo. Wcześniej można było wywołać zamknięcie 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 zachowanie przyciągania na urządzeniach ScalingLazyColumnPicker (I49539)
  • Ulepszenia przesuwania od krawędzi. Gdy używana jest funkcja Modifier.edgeSwipeToDismiss, odrzucanie przez przesunięcie jest aktywowane tylko wtedy, gdy pierwsze dotknięcie nastąpi na krawędzi i przesunięcie zostanie wykonane w prawo. Wcześniej odrzucanie przez przesunięcie można było aktywować, przesuwając palcem z dowolnej części ekranu, jeśli przewijanie osiągnęło początek.(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-beta01androidx.wear.compose:compose-navigation:1.0.0-beta01 są zwalniane. Wersja 1.0.0-beta01 zawiera te zmiany.

Co zawiera Compose na Wear OS 1.0

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

Komponenty Wear Compose Material w wersji 1.0 obejmują:

  • Motyw Material – używany jako zamiennik Compose na urządzenia mobilne MaterialTheme. Zawiera kolory, kształty i typografię do tworzenia komponentów na urządzeniach do noszenia, które od razu implementują wytyczne UX dotyczące Material Design na urządzenia do noszenia.
  • Button, CompactButtonToggleButton – przycisk oferuje jedno miejsce na ikonę, obraz lub krótki tekst (maksymalnie 3 znaki). Mają kształt okrągły i zalecane rozmiary w przypadku przycisków domyślnych, dużych i małych. CompactButton oferuje 1 miejsce na dowolne treści (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 obszar klikalny. 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 umożliwiająca różne zastosowania dzięki elementom AppCardTitleCard, które zapewniają różne układy i obsługę obrazów jako treści kart lub tła.
  • Elementy w kształcie stadionu – komponenty podobne do przycisków, ale o większej powierzchni i z 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 z zaznaczonym lub odznaczonym stanem oraz dodatkowym miejscem ToggleControl na ikonę, np. przełącznik lub przycisk opcji, która wskazuje zaznaczony stan komponentu. Dodatkowo SplitToggleChip ma 2 obszary, które można dotknąć: jeden klikalny i jeden przełączalny.
  • 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 wskaźnik pokazuje nieokreślony postęp w nieokreślonym czasie oczekiwania.
  • curvedText – element języka DSL służący do opisywania CurvedLayouts, wraz z curvedRowcurvedColumn, w celu rozmieszczania komponentów wokół okrągłych urządzeń. Więcej informacji o elementach CurvedLayoutCurvedModifier 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 dialogowe, alert i potwierdzenie – okno dialogowe wyświetla się na pełnym ekranie, nad innymi treściami, i można je zamknąć gestem przesunięcia. Zajmuje jedno miejsce, w którym powinna się znajdować opinia dotycząca treści okna dialogowego Material Design na zegarku, np. alertu lub potwierdzenia. 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ładany pionowo element. Potwierdzenie to opinia w oknie dialogowym, 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 urządzeniach z okrągłym ekranem. Można go używać z przeglądarką strony Accompanist.
  • Ikona – implementacja ikony na Wear, która pobiera kolor i wartość alfa z motywu Material Design na Wear. W przypadku ikony, którą można kliknąć, zobacz sekcję 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 urządzeniach z okrągłym ekranem.
  • 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, PositionIndicatorVignette) 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 – przewijany komponent listy z efektem skalowania lub rybiego oka, który jest kluczowym elementem języka 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 nawigacji Wear Compose poniżej).
  • Text – implementacja komponentu tekstowego Compose Material na Wear, która pobiera kolor i wartość alfa z motywu Wear Material.
  • TimeText – komponent wyświetlający godzinę i stan aplikacji u góry ekranu. Dostosowuje 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 kompozycja układu, która umieszcza elementy podrzędne w łuku i w razie potrzeby je obraca. Jest to podobne do układu wiersza wygiętego w segment pierścienia. Pamiętaj, że zawartość elementu CurvedLayout nie jest funkcją lambda, którą można łączyć, ale językiem DSL (językiem specyficznym dla domeny). Wszystkie elementy w języku DSL CurvedLayout obsługują opcjonalny parametr modyfikatora utworzony na podstawie CurvedModifier.

  • basicCurvedText – element w języku DSL CurvedLayout, basicCurvedText, 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 ramach elementu CurvedLayout, aby zapewnić jak najlepsze wrażenia, np. możliwość określenia pozycji i używania elementu CurvedModifiers. Pamiętaj, że w większości przypadków należy używać elementu curvedText, ponieważ korzysta on z motywów Material.

  • curvedComposable – opakowuje zwykłe treści funkcji kompozycyjnej, 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 poprzedni poziom nawigacji (jeśli istnieje) jest widoczny w tle.

  • Więcej informacji o wprowadzonych zmianach znajdziesz w informacjach o poprzednich wersjach 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, CompactButtonToggleButton, aby ułatwić Ci pracę (I57cab).
  • Dodaj włączony parametr do AppCardTitleCard. Teraz mają podobny interfejs API do kart androidx.compose.material. Jeśli parametr ma wartość „false”, nie będzie można kliknąć karty. (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 AppCardTitleCard (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-alpha21androidx.wear.compose:compose-navigation:1.0.0-alpha21 są zwalniane. Wersja 1.0.0-alpha21 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy nowe modyfikatory zakrzywione, aby określić tło zakrzywionego elementu: CurvedModifier.background, .radialGradientBackground.angularGradientBackground (I8f392)
  • Umożliwia określenie trybu przepełnienia zakrzywionego tekstu (obcinanie, wielokropek, widoczny). (I8e7aa)
  • Dodano modyfikator CurvedModifier.weight, podobny do tego w komponowaniu. 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.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 zajęć. 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 ScalingLazyColumn, zastąpiliśmy autoCenter: Boolean ciągiem autoCenter: AutoCentringParams. (Ia9c90)
  • W całym interfejsie API zmieniliśmy nazwy iconTintColortoggleControlTintColor na iconColortoggleControlColor (Chip/ToggleChip/Dialog/Slider/Stepper/...), ponieważ kolor jest stosowany do gniazda ikony lub elementu przełączającego. (Ied238)
  • Przepisywanie typu wyliczeniowego PageIndicatorStyle na klasę wartości (I2dc72)
  • Do niektórych boksów w naszych komponentach dodaliśmy symbol RowScope/ColumnScope/BoxScope, aby wskazać deweloperom założenia dotyczące układów. Dzięki temu deweloperzy będą mogli używać dodatkowych modyfikatorów w przypadku niektórych treści w miejscu na reklamy 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 timeColorappColor miały kolor contentColor. W razie potrzeby można jednak zastąpić te właściwości. (I26b59)
  • Ustawienie obiektu SwipeToDismissBoxState.Companion jako prywatnego (I39e84)
  • Popraw kolejność parametrów dla InlineSliderStepper. 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 contentPaddingautoCenteringPadding. Mogą 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 wykonywana, 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 komponenty ToggleChipSplitToggleChip 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()RadioIcon()->radioIcon(). Umożliwia to deweloperom tworzenie własnych funkcji kompozycyjnych Icon() z odpowiednim zestawem contentDescription. (I5bb5b)
  • Do parametru 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 adnotacje eksperymentalne (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-alpha20androidx.wear.compose:compose-navigation:1.0.0-alpha20 są zwalniane. 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 CurvedModifiers, a możliwość tworzenia niestandardowych modyfikatorów może być dostępna później) (I9b8df)
  • EdgeSwipeAktualizacja dokumentacji modyfikatorów i wartości domyślnych w celu lepszego zrozumienia .(I6d00d)
  • Dodaj gniazdo PageIndicator do elementu Scaffold. 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. Sposoby użycia domyślnych ikon były prezentowane w wersjach demonstracyjnych i przykładowych. (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 zakresu i informacji ScalingLazyList/Column 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(), aby umożliwić konfigurowanie zachowania przewijania, np. dodawanie obsługi RSB. PickerState implementuje teraz interfejs ScrollableState. (Ib89c7)

Poprawki błędów

  • Zaktualizuj reguły profilu podstawowego Android Runtime (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ść. 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-alpha19androidx.wear.compose:compose-navigation:1.0.0-alpha19 są zwalniane. Wersja 1.0.0-alpha19 zawiera te zmiany.

Zmiany w interfejsie API

  • Zmieniliśmy nazwę CurvedRow na CurvedLayout i przekształciliśmy ją 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 curvedRowcurvedColumn (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 uwzględniający materiał urządzenia). (Ib776a)
  • Umożliwienie konfigurowania strony dla elementu 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 RSB) lub 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 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ło zmodyfikowane, aby ograniczyć zakres ExperimentalWearMaterialApi do Modifier.swipeableSwipeableState, które są teraz używane wewnętrznie. SwipeToDismissBoxState ma teraz currentValue, targetValue, isAnimationRunningsnapTo, aby obsługiwać typowe przypadki użycia. Daj nam znać, jeśli potrzebujesz udostępnienia innych właściwości. Poprawiliśmy też działanie funkcji SwipeableState w sytuacji, gdy przesunięcie gestu jest w zakresie 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 na 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 i odstępów między wierszami. (Ie3077)
  • Dodaliśmy opór 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 UX dotyczących 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 zaktualizowano 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 zaczynają być skalowane bliżej środka listy, ale na jej krawędziach są mniej skalowane niż wcześniej. (Ica8f3)
  • Niektóre korekty ScalingLazyColumnDefaults.snapFlingBehavior, które mają na celu poprawę zakończenia 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-alpha18androidx.wear.compose:compose-navigation:1.0.0-alpha18 są zwalniane. Wersja 1.0.0-alpha18 zawiera te zmiany.

Zmiany w interfejsie API

  • Kilka ulepszeń dotyczących elementu PositionIndicator: ShowResult zmieniono nazwę na PositionIndicatorVisibility. Poprawki wydajności, aby uniknąć ponownych obliczeń, gdy nie są one potrzebne (Iaed9d)
  • Zaktualizowano zalecane kolory dla SplitToggleChip. Komponenty SplitToggleChip mają teraz jednobarwne tło, gdy są zaznaczone lub odznaczone. Kolor komponentu ToggleControl jest głównym wskaźnikiem tego, czy komponent jest zaznaczony. Dodaliśmy nowy element ToggleDefaults.splitToggleChipColors(), aby obsługiwać nową kolorystykę. Uprościliśmy też metody toggleChipColors(), usuwając splitBackgroundOverlayColor (I7e66e).
  • Do elementu ScalingLazyListItemInfo dodaliśmy atrybut unadjustedSize, ponieważ obliczanie pierwotnego 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 realizację 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 PositionIndicatorVignette. Używamy teraz też właściwości ScalingLazyColumn zamiast Column, co oznacza, że zawartość okna dialogowego jest teraz w ScalingLazyListScope (i zwykle musi być ujęta w klamry item { /* content */ }). Okno dialogowe obsługuje parametr verticalArrangement. (Idea13)
  • Zmieniliśmy nazwę właściwości ToggleChipSplitToggleChip toggleIcon na toggleControl, aby lepiej dopasować ją do Material Design i ułatwić projektantom oraz deweloperom korzystanie z interfejsu API. (If5921, b/220129803)
  • Do typologii motywu Material na Wear dodaliśmy nowy wpis caption3. Jest to mała czcionka używana w przypadku bardzo długich tekstów, np. tekstów prawnych. (I74b13, b/220128356)

Poprawki błędów

  • Zatrzymuje animację przyciągania, gdy osiągniemy cel. (Idb69d)
  • Animowanie zmian w PositionIndicator. (I94cb9)
  • Na podstawie opinii dotyczących interfejsu użytkownika zmieniliśmy ScalingLazyColumn autoCentering, tak aby zapewniał tylko tyle miejsca, ile potrzeba, aby elementy o indeksie ScalingLazyListState.initialCenterItemIndex lub wyższym można było w pełni przewinąć na środek obszaru widocznego. Umożliwia to umieszczenie 1 lub 2 elementów nad elementem początkowo znajdującym się 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ć się 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 nie został wyświetlony selektor. (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-alpha17androidx.wear.compose:compose-navigation:1.0.0-alpha17 są zwalniane. Wersja 1.0.0-alpha17 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy obsługę przyciągania, której można używać z 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 formacie 24-godzinnym lub 12-godzinnym. (Ie5552)

Zmiany w interfejsie API

  • Rozwiązaliśmy problem z niestandardowymi czcionkami i stylami TimeText 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 właściwość userScrollEnabled zgodną z właściwością usługi LazyList (I164d0, b/217912513).
  • Selektory mają teraz domyślnie gradient u góry i u dołu (Iab92a).

Poprawki błędów

  • Zmodyfikowaliśmy ScalingLazyColumn, aby nie wypełniał już całego miejsca w elemencie nadrzędnym. Zamiast tego będzie miał rozmiar taki jak jego zawartość. Dzięki temu jest on zgodny 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 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-alpha16androidx.wear.compose:compose-navigation:1.0.0-alpha16 są zwalniane. Wersja 1.0.0-alpha16 zawiera te zmiany.

Nowe funkcje

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

Zmiany w interfejsie API

  • Selektory mają teraz parametr flingBehavior, którego wartość domyślna powoduje przyciąganie do najbliższej opcji podczas przewijania lub przesuwania. (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 ScalingLazyColumndomyślnąextraPadding wartość, aby zapewnić wystarczającą liczbę elementów listy (nawet jeśli niektóre z nich są zmniejszane) z 10% do 5%. Pozwoli to uniknąć tworzenia dodatkowych elementów listy, które mogą nie pojawić się w obszarze widoku. 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 ScalingLazyColumn, aby nie wypełniał już całego miejsca w elemencie nadrzędnym. Zamiast tego będzie miał rozmiar taki jak jego zawartość. Dzięki temu jest ona zgodna z działaniem LazyColumn. Jeśli chcesz przywrócić stare działanie, przekaż wartość Modifier.fillMaxSize() do parametru ScalingLazyColumn. UWAGA: ta zmiana jest niekompletna 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-alpha15androidx.wear.compose:compose-navigation:1.0.0-alpha15 są zwalniane. Wersja 1.0.0-alpha15 zawiera te zmiany.

Zmiany w interfejsie API

  • Do elementu ScalingLazyColumn dodaliśmy nową właściwość autoCentering. Jeśli ta wartość jest prawdziwa (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 będziesz chcieć ustawić pionowy odstęp od treści na 0 dp. Jeśli podasz zarówno autoCentering, jak i vertical content padding, oba te ustawienia spowodują, że przed pierwszym i po ostatnim elementem 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 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 (zmieniono nazwy wcześniejszych komponentów AlertDialogConfirmationDialog) – Alert, ConfirmationDialog 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 kolor onSurfaceVariant2 z motywu Material Compose for WearOS i zastąpiliśmy go w bibliotece kolorem onSurfaceVariant. (Icd592)
  • Dodaliśmy metodę programowego wybierania opcji w PickerState. Podczas tworzenia PickerState można teraz określić opcję, która ma być wybrana na początku. (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()Modifier.onPreRotaryScrollEvent() dla urządzeń 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-alpha14androidx.wear.compose:compose-navigation:1.0.0-alpha14 są zwalniane. Wersja 1.0.0-alpha14 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy do ScalingLazyListState kilka metod, które umożliwiają programistom 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 widocznego elementu ScalingLazyList, 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) lub Edge (ScalingLazyListAnchorType.ItemStart) ma być wyrównany do linii środkowej obszaru wyświetlania.

    W rezultacie wartości ScalingLazyListItemInfo.offsetScalingLazyListItemInfo.adjustedOffset uległy zmianie i odzwierciedlają teraz przesunięcie elementu względem pozycji elementu listy i wartości 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 elementu SwipeDismissableNavHost obsługę przycisku Wstecz, dzięki czemu naciśnięcie tego przycisku powoduje przejście do poprzedniego poziomu 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-alpha13androidx.wear.compose:compose-navigation:1.0.0-alpha13 są zwalniane. Wersja 1.0.0-alpha13 zawiera te zmiany.

Zmiany w interfejsie API

  • Wartość RangeIcons jest wewnętrzna (odwołują się do niej wewnętrznie wartości InlineSliderStepper). (I927ec)

Poprawki błędów

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

  • Dodaliśmy klasę wyliczeniową Drawables, która umożliwia pobieranie zasobów rysowalnych w bibliotece Wear Compose, dzięki czemu nie jest już potrzebne odbicie. Rozwiązuje to błąd, w którym elementy rysowalne biblioteki były usuwane, gdy minifyEnabled=true lub shrinkResources=true). (Ib2a98)

  • Dodano testy dla Stepper w Wear Compose (I2d03a)

  • Dodaliśmy przykłady dla 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-alpha12androidx.wear.compose:compose-navigation:1.0.0-alpha12 są zwalniane. Wersja 1.0.0-alpha12 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy komponent Krokomierz, który umożliwia użytkownikom wybór z zakresu wartości. Element 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 funkcje kompozycyjne do wyświetlania okien: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-alpha11androidx.wear.compose:compose-navigation:1.0.0-alpha11 są zwalniane. Wersja 1.0.0-alpha11 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy komponent selektora, który umożliwia użytkownikowi wybór 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ę cylindra widzianego z boku. W późniejszych wersjach zostaną dodane 2 funkcje: przyciąganie do wartości po przesunięciu i dodanie do PickerState funkcji ustawiania lub 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 funkcję, która jest już dostępna w przypadku elementó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-alpha10androidx.wear.compose:compose-navigation:1.0.0-alpha10 są zwalniane. Wersja 1.0.0-alpha10 zawiera te zmiany.

Nowe funkcje

  • Dodano element 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)

  • Wypróbuj nowe ćwiczenia z programowania dotyczące Compose na WearOS.

Zmiany w interfejsie API

  • Test porównawczy makro ma teraz minSdkVersion o wartości 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 roku

androidx.wear.compose:compose-foundation:1.0.0-alpha09, androidx.wear.compose:compose-material:1.0.0-alpha09androidx.wear.compose:compose-navigation:1.0.0-alpha09 są zwalniane. Wersja 1.0.0-alpha09 zawiera te zmiany.

Nowe funkcje

  • Udostępniliśmy wersję deweloperską Compose na Wear OS. Zapoznaj się z naszym postem na blogu, w którym omawiamy główne komponenty 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 przez programistów 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)
  • Dodaliśmy linki do przewodników na developer.android.com z KDocs 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 narzędzia wear.compose.navigation.composable) (I91403).
  • Dodaliśmy dodatkową dokumentację i przykłady użycia źródła czasu w 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-alpha08androidx.wear.compose:compose-navigation:1.0.0-alpha08 są zwalniane. Wersja 1.0.0-alpha08 zawiera te zmiany.

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 lambda końcowa. 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 stronie developer.android.com z dokumentacji KDoc dla komponentów przycisku, karty, elementu, motywu, wskaźnika pozycji i skalowanej kolumny leniwej. (I22428)
  • Naprawiono problem z tym, że komponent SwipeToDismissBox w WearOS czasami nie obsługiwał gestów przesuwania. (I9387e)
  • Dodano przykłady dla elementów Button, CompactButton, Chip, CompactChip, AppCard, TitleCard, ToggleButton, ToggleChip i SplitToggleChip (Iddc15).
  • Dodano 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-alpha07androidx.wear.compose:compose-navigation:1.0.0-alpha07 są zwalniane. Wersja 1.0.0-alpha07 zawiera te zmiany.

Nowe funkcje

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

Zmiany w interfejsie API

  • Dodano testy dla TimeText (Idfead)
  • Przekształć ArcPaddingValues w interfejs. (Iecd4c)
  • Dodano animację do SwipeToDismissBox (I9ad1b)
  • Dodano parametr hasBackground do interfejsu SwipeToDismissBox API, 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 biblioteki navigation-common i usuń kopię z biblioteki 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 elementu CurvedRow podczas aktualizacji treści i zapewniono ponowny pomiar zakrzywionego wiersza (Ie4e06).
  • Funkcja ChipDefaults.gradientBackgroundChipColors() została zaktualizowana zgodnie ze zmianami w specyfikacji UX. Gradient zaczyna się teraz 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 Material Design na Wear. Po wybraniu przełączniki mają teraz tło gradientowe z MaterialTheme.color.surface o 0% przezroczystości w lewym górnym rogu do MaterialTheme.color.primary o 32% przezroczystości w prawym dolnym rogu na tle MaterialTheme.color.surface o 75% przezroczystości. Dzięki temu różnica między zaznaczonym a niezaznaczonym 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-alpha06androidx.wear.compose:compose-navigation:1.0.0-alpha06 są zwalniane. Wersja 1.0.0-alpha06 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy komponent kompozycyjny Scaffold aplikacji najwyższego poziomu, który zapewnia strukturę do obsługi pozycji wskaźników pozycji (takich jak przewijanie lub głośność), obszaru u góry ekranu do wyświetlania czasu i stanu aplikacji, a także obsługuje winietę do rozmycia górnej i dolnej krawędzi ekranu w przypadku treści, które można przewijać. 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:

    • Funkcja SwipeDismissableNavHost, która zawiera wykres nawigacji i umożliwia nawigację wstecz za pomocą gestów przesuwania.
    • NavGraphBuilder.composable rozszerzenie ułatwiające tworzenie wykresów nawigacji.
    • rememberSwipeDismissableNavController(), aby zezwolić na przenoszenie stanu.
  • Przykładowe użycie, 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ą 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 funkcje performGestureGestureScope, które zostały zastąpione przez performTouchInputTouchInjectionScope. (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. Zmniejszyliśmy 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

androidx.wear.compose:compose-foundation:1.0.0-alpha05androidx.wear.compose:compose-material:1.0.0-alpha05 zostały opublikowane. Wersja 1.0.0-alpha05 zawiera te zmiany.

Zmiany w interfejsie API

  • Oznaczanie ArcPaddingValues jako @Stable (I57deb)
  • ScalingLazyColumnState implementuje teraz interfejs ScrollableState, co zapewnia programistom programowy 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 zmian w specyfikacji UX. (I83802)

Wersja 1.0.0-alpha04

18 sierpnia 2021 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha04androidx.wear.compose:compose-material:1.0.0-alpha04 zostały opublikowane. Wersja 1.0.0-alpha04 zawiera te zmiany.

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 deweloperzy mogli poznać rzeczywiste pozycje i rozmiary 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 deweloperzy mogli poznać rzeczywiste pozycje i rozmiary 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)
  • Dodano @ExperimentalWearMaterialApi do wyliczenia SwipeDismissTarget, które jest częścią interfejsu SwipeToDismissBox API. (I48b5e)

Poprawki błędów

  • Dodano materiały testowe dla komponentu SwipeToDismissBox (I9febc)

Wersja 1.0.0-alpha03

4 sierpnia 2021 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha03androidx.wear.compose:compose-material:1.0.0-alpha03 zostały opublikowane. Wersja 1.0.0-alpha03 zawiera te zmiany.

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 siatkę. (I53206)
  • Dodanie komponentu ScalingLazyColumn, który udostępnia komponent listy dla Wear Material, który zapewnia widok rybiego oka z zawartością listy zmniejszającą się i stającą się przezroczystą w miarę zbliżania 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.

androidx.wear.compose:compose-foundation:1.0.0-alpha02androidx.wear.compose:compose-material:1.0.0-alpha02 zostały opublikowane. Wersja 1.0.0-alpha02 zawiera te zmiany.

Nowe funkcje

  • Dodaliśmy nową klasę CurvedRow do kompozycji układanych w łuku (I29941).
  • Dodano nowy typ karty do użytku 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 obsługi wyrównania radialnego w komponencie CurvedRow (podobnie jak wyrównanie pionowe w wierszu) (Id9de5)
  • Dodawanie nowej klasy CurvedRow do ułożonych komponentów kompozycyjnych w łuku (I29941)
  • Dodano nowy typ karty do użytku w aplikacjach (TitleCard), a także obsługę obrazów jako tła kart, aby podkreślić ich zawartość (I53b0f).
  • Dodano ikony przełączników (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 renderowania 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 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.

androidx.wear.compose:compose-foundation:1.0.0-alpha01androidx.wear.compose:compose-material:1.0.0-alpha01 zostały opublikowane. Wersja 1.0.0-alpha01 zawiera te zmiany.

Nowe funkcje

Wear Compose to biblioteka oparta na języku Kotlin 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ć ikony, etykiety i etykiety dodatkowe.
  • – ToggleChip, SplitToggleChip – specjalny rodzaj elementu, który zawiera miejsce na ikonę przełącznika dwustanowego, np. przycisku opcji lub pola wyboru. Dodatkowo element SplitToggleChip ma 2 obszary, które można kliknąć: jeden klikalny i jeden przełączany.
  • Button, CompactButton – przyciski mają okrągły kształt i jedno miejsce na ikonę lub krótki tekst (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 dialogowych, 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 dodają bibliotekę Compose Material do zależności, oznacza to, że a) w bibliotece Wear Compose Material brakuje komponentów – daj nam znać, czego potrzebujesz, lub b) używają komponentu, którego nie zalecamy do używania na urządzeniu do noszenia.