Wear Compose

  
Pisanie aplikacji Jetpack Compose na urządzenia z Wear OS przez udostępnianie funkcji obsługujących różne rozmiary urządzeń i gesty nawigacyjne.
Ostatnia aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja Beta Wersja alfa
4 czerwca 2025 r. 1.4.1 - 1.5.0-beta03 -

Deklarowanie zależności

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

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

Odlotowe

dependencies {
    implementation "androidx.wear.compose:compose-foundation:1.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 zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk z gwiazdką.

Tworzenie nowego zgłoszenia

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

Wear Compose w wersji 1.5

Wersja 1.5.0-beta03

4 czerwca 2025 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.5.0-beta02

20 maja 2025 r.

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

Poprawki błędów

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

Wersja 1.5.0-beta01

7 maja 2025 r.

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

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

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

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

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

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.5.0-alpha14

23 kwietnia 2025 r.

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

Zmiany w interfejsie API

  • Wszystkie zależności SwipeToReveal w bibliotece Material, które zależą od biblioteki 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 funkcji HierarchicalFocusCoordinator, aby zamiast kompozytowych używać modyfikatorów.
  • Informacje o migracji:
    • HierarchicalFocusCoordinator(function, content) może zostać zastąpiony przez dodanie Modifier.hierarchicalFocus(function()) do content lub do otaczającego elementu składanego.
    • 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że być zastąpiony przez hierarchicalFocusRequester()
    • val focusRequester = rememberActiveFocusRequester() może zostać zastąpiony przez remember { FocusRequester() } i dodany Modifier.hierarchicalFocusRequester(focusRequester). (Ie319a)

Poprawki błędów

  • W przypadku tych komponentów: SwipeToReveal, BasicSwipeToDismissBoxSwipeDismissableNavHost (w przypadku SwipeDismissableNavHost tylko w wersji API 35 i starszych) zwiększono próg prędkości, który gesty przesuwania muszą przekroczyć, aby wywołać zmianę stanu. (If47bf)
  • Rozwiązaliśmy problem z animacją podczas dodawania nowych elementów do TransformingLazyColumn. (I589b2)

Wersja 1.5.0-alpha13

9 kwietnia 2025 r.

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

Zmiany w interfejsie API

  • Projekty opublikowane z Kotlin 2.0 wymagają KGP 2.0.0 lub nowszej wersji (Idb6b5).
  • Do właściwości PagerState dodano usługę targetPage (I4de8b).

Poprawki błędów

  • Zapobieganie niepotrzebnemu przekształceniu podczas odtwarzania z wykorzystaniem przewidywania. (Iecd6d)
  • Naprawiono właściwość isScrollable obiektu ScrollInfoProvider, aby zwracała bieżącą wartość. (Icbfb8)

Wersja 1.5.0-alpha12

26 marca 2025 r.

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

Zmiany w interfejsie API

  • Ulepszona domyślna implementacja SwipeToReveal gestureInclusion, która ignoruje gesty tylko wtedy, gdy stan komponentu to Covered (Zakryte). (I7e3d6)
  • W funkcji SwipeToReveal zmienna bidirectionalGestureInclusion jest teraz wartością zamiast funkcją, a do parametru edgeZoneFraction w funkcji gestureInclusion dodano parametr @FloatRange. (Ica7c3)

Poprawki błędów

  • Zmień SwipeToReveal bidirectionalGestureInclusion, aby zwracać obiekt zamiast klasy. (I29597)
  • Wyłączenie korzystania z wibracji podczas przeprowadzania testów w ramach RoboElectric. (I58bd1)
  • Zaktualizuj SwipeToRevealdopełnienie między treścią a przyciskami akcji, a także dopełnienie między ikoną a tekstem przycisków akcji. (Ic46cb)

Wersja 1.5.0-alpha11

12 marca 2025 r.

Element androidx.wear.compose:compose-*:1.5.0-alpha11 został zwolniony. Wersja 1.5.0-alpha11 zawiera te komisy.

Zmiany w interfejsie API

  • Zaktualizowano klasę PagerState, usuwając z niej klasę podstawową Compose Foundation PagerState i dodając właściwości currentPage, currentPageOffsetFraction oraz pageCount. Zaktualizowaliśmy interfejs GestureInclusion, zmieniając nazwę metody na ignoreGestureStart. (I4ae07)
  • Dodaj requireOffset do SwipeToDismissBoxState jako zalecany sposób uzyskania przesunięcia SwipeToDismissBoxState. (I21042)
  • Dodano CurvedModifier.semantics, początkowo obsługując opis treści i indeks przejścia (I0b093).
  • Dodaliśmy opcję CurvedModifier.clearAndSetSemantics, aby umożliwić wyłączenie wygiętej semantyki. CurvedText nadal domyślnie ustawia opis treści jako tekst, ale timeTextCurvedText i timeTextSeparator nie ogłaszają już treści. (I4b568)
  • Domyślne obsługiwanie gestów przesuwania przez HorizontalPager zostało przemianowane na PagerDefaults.gestureInclusion. Domyślnie gesty przesuwania są ignorowane tylko wtedy, gdy zaczynają się od lewej krawędzi pierwszej strony i tylko wtedy, gdy Talkback jest wyłączony. W innych przypadkach domyślnie gesty przesuwania nie są ignorowane przez przeglądarkę, więc nie są dostępne dla obsługi gestów przesuwania w celu zamknięcia. (Iee486)
  • Dodano przewijanie obrotowe w interfejsie API rotaryScrollable. Do działania rotaryScrollable dodaliśmy przewijanie ponad ekran i przewijanie zagnieżdżone. Ta zmiana powinna zapewnić równorzędną funkcjonalność przewijania i przewijania zagnieżdżonego między przewijaniem dotykowym a przewijaniem obrotowym. (I71926)
  • Dodano obsługę strefy przesunięcia palcem po krawędzi w funkcji SwipeToReveal. Domyślne działanie przeglądarki Foundation SwipeToReveal polega teraz na niedopuszczaniu do przesuwania, gdy gest rozpoczyna się od krawędzi. Domyślne zachowanie Material3 SwipeToReveal polega teraz na niedopuszczaniu do przesuwania, gdy gest rozpoczyna się od krawędzi, gdy SwipeDirection jest ustawiony na jeden kierunek. (I32ef0)
  • TLC używa teraz domyślnie pustego contentPadding zamiast umieszczania pierwszych i ostatnich elementów w środku. (I77ab7)

Poprawki błędów

  • Biblioteki Wear Compose zostały zaktualizowane do kompilatora Kotlin 2.0. (I2de79)
  • Naprawiono wygięty LetterSpacing w przypadku próbki w modelu podstawowym. (Iebf7c)

Wersja 1.5.0-alpha10

26 lutego 2025 r.

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

Zmiany w interfejsie API

  • Ustaw SwipeToRevealDefaults jako publiczną. (I0c34c)
  • Parametr swipeToDismissEdgeZoneFraction został zastąpiony parametrem HorizontalPager. Zamiast tego wprowadzono nowy parametr gestureInclusion, który można wykorzystać do uzyskania odpowiedniego zachowania polegającego na przesunięciu w celu zamknięcia. gestureInclusion przyjmuje instancję GestureInclusion, która decyduje, czy kolejne zdarzenie przewijania powinno być wykonane. Dopuszczanie gestu oznacza, że jest on obsługiwany przez pager. W przeciwnym razie będzie obsługiwany gdzie indziej, np. przez element obsługujący gest przesunięcia w dół. Nowe domyślne działanie polega na niedopuszczaniu do gestów na lewym skraju pierwszej strony w pagerze, a także na umożliwieniu usuwania elementów przez przesunięcie w tym obszarze. Na wszystkich pozostałych stronach pager może obsługiwać wszystkie gesty, co oznacza, że nie można na nich używać funkcji przesunięcia w bok, aby zamknąć. Aby uzyskać działanie funkcji „przesuń, aby zamknąć” na wszystkich stronach, po prostu podaj niestandardowy element GestureInclusion (patrz PagerDefaults.disableLeftEdgeOnFirstPage), który ignoruje bieżącą stronę. Kolejną wprowadzoną tutaj zmianą jest to, że komponent Pager nie jest już domyślnie wyświetlany na pełnym ekranie. Aby uzyskać takie działanie, dodaj element Modifier.fillMaxSize(). (I9d3aa)
  • Zmieniliśmy nazwę interfejsu API przesuń, aby wyświetlić na createAnchors na createRevealAnchors(If5999).
  • Usunęliśmy RevealScope z interfejsu API do wyświetlania treści po przesunięciu palcem. (Ie4ad5)
  • Usunęliśmy z interfejsu API przesuń, aby wyświetlić wartości RevealValue i Revealing (Odsłanianie) oraz Revealed (Odsłonięty). (I8dbc5)
  • Zmieniliśmy nazwę interfejsu API przesuń, aby wyświetlić na SwipeDirection na RevealDirection. (I7472f)
  • Zmieniliśmy podpis parametru positionalThreshold w funkcji rememberRevealState w modułu SwipeToReveal. (I29c0a)
  • Dodaliśmy nowy parametr overscrollEffect do wersji ScalingLazyColumn, TransformingLazyColumnScreenScaffold. (I0cee8)
  • W przypadku korzystania z funkcji PagerDefaults#snapFlingBehaviour parametr pagerSnapDistance został zastąpiony parametrem Int maxFlingPages, który umożliwia określenie maksymalnej liczby stron, do których ma przenosić użytkownika funkcja Pager. (I8cfc0)
  • Wear Pager ma teraz własną PagerScope zamiast korzystać z Compose Foundation PagerScope. (I9195b)
  • Dodaliśmy obsługę lineHeight w przypadku krzywych tekstów (I1c936).
  • Dodaliśmy właściwości initialAnchorItemIndexinitialAnchorItemOffset do właściwości TransformingLazyColumnStaterememberTransformingLazyColumnState, aby można było określać początkową pozycję przewijania w elementach TransformationLazyColumn. (I0a0d5)
  • Wycofaj parametr runWithTimingDisabled i zastąp go parametrem runWithMeasurementDisabled, który lepiej opisuje zachowanie – wszystkie dane są wstrzymane. Dodatkowo udostępnij superklasę MicrobenchmarkScope, ponieważ ponowne zadeklarowanie funkcji runWithMeasurementDisabled do otwartego dostępu jest niemożliwe, ponieważ jest ona wbudowana. (I9e23b, b/389149423, b/149979716)
  • Aby uniknąć ograniczania się do TransformingLazyColumnItemScrollProgress, dodaliśmy do interfejsu API parametr TransformingLazyColumnItemScrollProgress.Unspecified. (I0835d)

Poprawki błędów

  • Ulepszanie Kdoc w przypadku CurvedTextStyle (Id45e3)
  • Funkcja SwipeableV2 (część implementacji SwipeToReveal) jest teraz wewnętrzna, a nie publiczna, ale jest dostępna tylko dla grupy bibliotek. (Idbb94)
  • Dodaliśmy testy do projektu HierarchicalFocusCoordinator (I1ce54, b/395548918).
  • Wprowadziliśmy ulepszenia dotyczące SwipeToReveal w próbkach skomponowanej podstawy pod makijaż. (I5f307)
  • Naprawić dane semantyczne osi przewijania w komponencie verticalScrollAxisRange w komponencie TransformingLazyColumn w celu zwiększenia dostępności (I68123)
  • Zwiększenie wydajności haptycznych przycisków obrotowych w Wear4+ przez usunięcie niepotrzebnych wątków w tle (I39cfe)
  • Zmień SwipeDismissableNavHost na PredictiveBackNavHost tylko w przypadku wersji API 36 i późniejszych. (I59bed)
  • Dodaliśmy zabezpieczenie przed awarią podczas korzystania z ustawienia zmniejszania ruchomości. (I01e2c)
  • Wprowadziliśmy pobieranie z wyprzedzeniem w przypadku TransformingLazyColumn, aby zmniejszyć zacięcia (Icca88)

Wersja 1.5.0-alpha09

29 stycznia 2025 r.

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

Zmiany w interfejsie API

  • W CurvedTextStyle odstępy między literami zostały podzielone na odstępy w lewo i w prawo. Jest to wymagane, ponieważ litery w kierunku zgodnym z kierunkiem ruchu wskazówek zegara rozchodzą się od linii bazowej, a litery w kierunku przeciwnym do ruchu wskazówek zegara – zbliżają się do niej (potrzebne jest więc większe odstępowanie liter) (I4b848)
  • Funkcja CompositionLocal LocalReduceMotion została uproszczona, aby zwracać wartość logiczną zamiast obiektu ReduceMotion. Interfejs ReduceMotion został wycofany. Poprzednie wywołania, takie jak LocalReduceMotion.current.enabled(), można zastąpić wywołaniem LocalReduceMotion.current (I4937f)
  • W języku PagerDefaults element snapAnimationSpec został przemianowany na SnapAnimationSpec. (I20c9a)

Wersja 1.5.0-alpha08

15 stycznia 2025 r.

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

Zmiany w interfejsie API

  • Zaktualizowaliśmy wszystkie biblioteki Wear Compose do trybu „wyraźnego interfejsu API”. (Iebf9f)
  • Parametr animacji przyciągania pager'a został włączony do PagerDefaults. (Ifff64)
  • Dodaliśmy parametr offset do SwipeToDismissBoxState. (I586bd)

Poprawki błędów

  • Reakcje haptyczne pokrętła są teraz wywoływane w wersjach Wear OS po V (Idb03e).

Wersja 1.5.0-alpha07

11 grudnia 2024 r.

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

Zmiany w interfejsie API

  • TransformingLazyColumnState umożliwia teraz obserwowanie bieżącego postępu przewijania na podstawie indeksów elementów kotwicy. (I72b01)
  • Dodaliśmy animacje do TransformingLazyColumn podczas dodawania, usuwania i przenoszenia elementów, jeśli mają one nowe Modifier.animateItem. (Iecb9c)
  • TransformingLazyColumn udostępnia teraz wartości beforeContentPaddingafterContentPadding. (Iccd5f)
  • TransformingLazyColumn udostępnia teraz kompozycję lokalną LocalTransformingLazyColumnItemScope, której komponenty (takie jak CardButton w Material3) mogą używać do automatycznego przekształcania się po umieszczeniu w komponencie TransformingLazyColumn. Rozmówcy mogą wyłączyć automatyczne przekształcanie za pomocą nowego opakowania TransformExclusion. (I1652f)

Poprawki błędów

  • Zaktualizowaliśmy minimalną i maksymalną prędkość rzutu dla urządzeń z ukierunkowaniem na U i nowszych. (I33559)
  • Rozwiązaliśmy problem, który powodował awarię, jeśli element w TransformingLazyColumn nie zawierał żadnych komponentów (Idb99d).
  • Dodaliśmy obsługę ScrollFeedbackProvider dla haptycznych przycisków obrotowych w Androidzie Vanilla Ice Cream. (Ibc553)
  • W celu zmniejszenia prawdopodobieństwa przypadkowego wywołania przesunięcia podczas przewijania pionowego zwiększyliśmy wartość „slop” (siła dotyku) w przypadku SwipeToReveal. (Ic0672)
  • W wersji 35 i nowszych interfejsu API zaktualizowaliśmy funkcję SwipeDismissableNavHost, aby używała funkcji PredictiveBackHandler, gdy jest dostępna. W takim przypadku zostaną zastosowane nowe animacje. (I08c11)

Wersja 1.5.0-alpha06

13 listopada 2024 r.

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

Zmiany w interfejsie API

  • Uprościliśmy funkcję ScrollInfoProvider, zmieniając ją w funkcję PagerState, i usunęliśmy parametr orientation, który nie jest już potrzebny. Nowe zachowanie polega na tym, że TimeText pozostaje na swoim miejscu zarówno w przypadku przewijania poziomego, jak i pionowego. (I71767)
  • TransformingLazyColumn została wprowadzona we wcześniejszych wersjach. Usuwamy aliasy LazyColumn (które przekierowywały do TransformingLazyColumn) na rzecz nowej nazwy TransformingLazyColumn. Usunęliśmy też właściwość height w tagu TransformingLazyColumnVisibleItemInfo. Zamiast niej użyj właściwości measuredHeight. (I0ea1e)
  • Zmieniliśmy specyfikację PagerDefaults.snapFlingBehavior snapAnimationSpecTween na Spring.(I10d02, b/349781047, b/303807950)
  • Przekształciliśmy wersję LocalReduceMotion CompositionLocal w wersję stabilną (Ia6f32).

Poprawki błędów

  • Zaktualizowaliśmy Modifier.rotaryScrollable, aby używać focusTargetWithSemantics na potrzeby lepszej obsługi semantyki w przypadku funkcji obrotowej. (Ief0a0)
  • W przypadku bibliotek Compose zaktualizowaliśmy minimalną wersję interfejsu API do 1.7.4. (I88b46)
  • Aby obejść błąd związany z przycinaniem, wyłączyliśmy w TransformingLazyColumn przekształcanie szerokości. (I3dfb8)
  • Naprawiliśmy błąd powodujący znikanie elementów po przewinięciu za pomocą TransformingLazyColumn (Id7668).
  • Dodano LazyLayoutSemantics dla TransformingLazyColumn. (Ia8f56)

Wersja 1.5.0-alpha05

30 października 2024 r.

Element androidx.wear.compose:compose-*:1.5.0-alpha05 został zwolniony. Wersja 1.5.0-alpha05 zawiera te komisy.

Zmiany w interfejsie API

  • Dodaliśmy obsługę animateScrollTo w TransformingLazyColumnState, aby umożliwić animację przewijania do elementu. (I4097d)
  • Dodaliśmy requestScrollTo w przypadku TransformingLazyColumnState, aby opóźnić przewijanie do następnego pomiaru. (I20a5e)
  • Dodaliśmy obsługę właściwości contentPadding w przypadku właściwości TransformingLazyColumn. (I3a69c)

Poprawki błędów

  • Usunęliśmy błąd związany z renderowaniem TransformingLazyColumn, gdy wysokość treści jest krótsza niż wysokość ekranu. (I6c3e1)
  • Funkcja ScrollInfoProvder w elementach TransformingLazyColumn teraz prawidłowo śledzi pierwszy element. (I1e4a3)
  • TransformingLazyColumnState zapisuje teraz stan (anchorItemIndexanchorItemScrollOffset). (I3d265)

Wersja 1.5.0-alpha04

16 października 2024 r.

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

Zmiany w interfejsie API

  • Zmieniliśmy nazwę projektu Compose Foundation na Wear LazyColumn na TransformingLazyColumn, aby odróżnić go od projektu Compose Foundation LazyColumn. (I0608b)
  • Dodano obsługę przycisków obrotowych w przyciskach poziomych/pionowych, aby umożliwić użytkownikom poruszanie się po przyciskach za pomocą urządzeń z klawiaturą obrotową. (I9770d)
  • Zaktualizowaliśmy nową wersję PagerDefaults, aby było jasne, że przewijanie będzie domyślnie dopasowywało się do strony. (Iff7d0)
  • TransformingLazyColumnItemScrollProgress jest teraz klasą wartości, która powinna zwiększyć skuteczność. (Ic399e)
  • TransformingLazyColumn obsługuje teraz bezpłatnie sterowanie obrotowe. (I05206)
  • Usługa TransformingLazyColumnState obsługuje teraz scrollToItem. (I507b3)
  • Usunięcie interfejsu API @ExperimentalWearFoundationApi z interfejsu SwipeToReveal (I34a66)

Wersja 1.5.0-alpha03

2 października 2024 r.

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

Zmiany w interfejsie API

  • Dodaliśmy obsługę dwukierunkowego przesuwania w aplikacji SwipeToReveal na wypadek rzadkich sytuacji, w których bieżący ekran nie obsługuje funkcji usuwania przez przesunięcie. . Domyślnie przewijanie w celu wyświetlenia jest nadal możliwe tylko przy przesuwaniu od prawej do lewej. Zdecydowanie zalecamy zachowanie domyślnego zachowania, aby uniknąć konfliktu z przesuwaniem w celu zamknięcia. (Ifac04)
  • Zaktualizowaliśmy LazyColumnState, aby zastąpić canScrollForwardcanScrollBackward – teraz przewijanie zostaje zatrzymane, 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 fokusa i interakcja z systemem przesuwania w stronę, które mogą wystąpić na Wear. (I2902b)
  • Dodaliśmy obsługę LazyColumn, aby udostępnić dane keycontentType klienta za pomocą layoutItems. (I1bd9c)

Poprawki błędów

  • Zaktualizowaliśmy animacje wygiętego tekstu, aby były płynniejsze, przy użyciu flag malowania. (I73a15)
  • Zaktualizowaliśmy dokumentację Material Dialog, aby odzwierciedlić fakt, że funkcja onDismissRequest nie jest wywoływana, gdy flaga wyświetlania ma wartość false. (Ifd8d6)
  • Naprawiliśmy błąd animacji winiety w oknie dialogowym Material (I126bf).

Wersja 1.5.0-alpha02

18 września 2024 r.

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

Zmiany w interfejsie API

  • Dodaliśmy obsługę LazyColumn w komponencie Wear Compose w komponencie ScreenScaffold (i dodaliśmy implementację ScrollInfoProvider w komponencie LazyColumnState). (Ib8d29)
  • Dodano viewportSize do LazyColumnLayoutInfo. (I4187f)

Poprawki błędów

  • Naprawiliśmy błąd, dzięki czemu przewijanie za pomocą pokrętła jest teraz wyłączone w ScalingLazyColumn, gdy flaga userScrollEnabled ma wartość false. (I490ab, b/360295825)
  • Wprowadziliśmy poprawkę, która rozwiązuje problem z nieoczekiwanym wypełnieniem pionowym w przypadku wygiętego tekstu. Wysokość wygiętego tekstu jest teraz lepiej dopasowana do rzeczywistej przestrzeni zajmowanej przez tekst. Pamiętaj, że może to spowodować nieprawidłowe działanie testów zrzutów ekranu, które obejmują wygięty tekst (Iaa6ef).
  • Wprowadziliśmy cofnięcie poprawki Dialog, w której wywoływana była funkcja onDismissRequest callback, gdy showDialog była ustawiona na wartość false, ponieważ w niektórych przypadkach powodowało to wielokrotne wywoływanie funkcji onDismissRequest. (I64656)

Wersja 1.5.0-alpha01

4 września 2024 r.

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

Zmiany w interfejsie API

  • Dodaliśmy do biblioteki Wear Compose Foundation nowy komponent LazyColumn z powiązanymi interfejsami API LazyColumnStateLazyColumnScope. Stanowi on podstawę do tworzenia efektów skalowania i przekształcania za pomocą Wear Compose. (Ib3b22)
  • W ramach nowego interfejsu API LazyColumn dodaliśmy do interfejsu itemsIndexed jego wersję z indeksem.LazyColumnScope (Ib4a57)
  • Dodaliśmy modyfikatory LazyColumn, aby umożliwić skalowanie i przekształcanie. (Ie229a)
  • HierarchicalFocusCoordinator została przeniesiona do wersji stabilnej. (I31035)
  • Dodaliśmy obsługę odstępów między literami w tekstach zakrzywionych. (I3c740)
  • Dodaliśmy parametr rotationLocked do CurvedLayout.curvedComposable, aby zatrzymać rotację komponentów. (I66898)
  • Tymczasowo usunięto interfejs API LocalUseFallbackRippleImplementation z wear material i wear material3 (I62282)
  • Usunięto WearDevices.SQUARE z wielopoziomowego podglądu @WearPreviewDevices (I11c02).

Poprawki błędów

  • SwipeToReveal umieszcza teraz odkryte elementy w widocznej części ekranu. Jest to przydatne, gdy SwipeToReveal jest używany na liście, ponieważ elementy są zawsze dostępne i nigdy nie wypadają poza ekran. (I38929)
  • Funkcja SwipeToReveal zeruje teraz wartość lastActionType na „Brak”, gdy funkcja animatedTo zakończy działanie. (I59b03)
  • Ulepszona dokumentacja nowego parametru rotationLocked w przypadku curvedComposable. (Ifbd57)
  • Naprawiono awarię podczas przekazywania wartości NaN do argumentu performFling w funkcji performFling.ScalingLazyColumnSnapFlingBehavior (Ic13da)
  • Poprawiono błąd związany z modyfikatorem rozmiaru wygiętego układu (I0fedf).
  • Dodaliśmy obsługę odstępów między literami określonych w sposób podany w parametrze „sp”. (I9f6e3)
  • Usunęliśmy błąd w Material2 Dialog, który powodował, że funkcja onDismissRequest nie była wywoływana, gdy okno dialogowe stał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ła współrzędne na podstawie tej flagi. (I3a330)

Wersja 1.4

Wersja 1.4.1

12 lutego 2025 r.

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

Poprawki błędów

  • Zapobiegliśmy awarii podczas korzystania z ustawienia globalnego zmniejszenia ruchu, które było wywoływane na niektórych platformach, na których to ustawienie nie było dostępne. (I01e2c)

Wersja 1.4.0

4 września 2024 r.

Element androidx.wear.compose:compose-*:1.4.0 został zwolniony. Wersja 1.4.0 zawiera te komitowane zmiany.

Ważne zmiany od wersji 1.3.0

  • ScalingLazyColumnPicker obsługują teraz domyślnie wejście obrotowe – zalecamy usunięcie jawnego obsługiwania obrotu i przejście na domyślne zachowanie systemu. W razie potrzeby użyj parametru rotaryScrollableBehavior, aby skonfigurować zachowanie przewijania lub przyciągania. W przypadku przyciągania zalecamy użycie parametru flingBehavior, aby zapewnić obsługę przyciągania i przewijania dotykiem.
  • Modifier.rotaryScrollable to nowy modyfikator, który łączy zdarzenia obrotowe z przewijalnymi kontenerami, umożliwiając użytkownikom przewijanie za pomocą pierścienia lub obramowania na urządzeniu z Wear OS.
  • SwipeDismissableNavHost zawiera teraz animację wejścia dla przejść w aplikacji.
  • PositionIndicator jest teraz domyślnie wyświetlany podczas pierwszego wyświetlania ekranu.

Dodatkowe zmiany

Wersja 1.4.0-rc01

21 sierpnia 2024 r.

Element androidx.wear.compose:compose-*:1.4.0-rc01 został zwolniony. Wersja 1.4.0-rc01 zawiera te komisy.

  • Zaktualizowaliśmy zależności Compose do wersji 1.7.0-rc01 i przypiąć nawigację Compose na Wear do androidx.lifecycle 2.8.3.

Wersja 1.4.0-beta03

12 czerwca 2024 r.

Element androidx.wear.compose:compose-*:1.4.0-beta03 został zwolniony. Wersja 1.4.0-beta03 zawiera te komity.

Poprawki błędów

  • Zaktualizowaliśmy Modifier.rotaryScrollable, aby zastąpić atrybut „focusable” atrybutem „focusTarget”, co zwiększa skuteczność. (Id294b)
  • Rozwiązaliśmy problem, który powodował, że ProgressIndicator powtarzał swoje ogłoszenie w TalkBack. (I94563)
  • Zaktualizowaliśmy profile bazowe biblioteki Compose na Wear. (I3cbc3)

Wersja 1.4.0-beta02

29 maja 2024 r.

Element androidx.wear.compose:compose-*:1.4.0-beta02 został zwolniony. Wersja 1.4.0-beta02 zawiera te komity.

Poprawki błędów

  • Aby rozwiązać problemy z obcinaniem tekstu, zwiększyliśmy szerokość granicy przekazywaną czytnikom ekranu z tekstu wygiętego (Id865f).
  • Ograniczyliśmy granicę HorizontalPageIndicator przekazywaną czytnikom ekranu – wcześniej wskaźnik zajmował cały ekran (Id8d7a).

Wersja 1.4.0-beta01

14 maja 2024 r.

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

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

  • Dodaliśmy Modifier.rotaryScrollable, nowy modyfikator, który łączy zdarzenia obrotowe z przewijalnymi kontenerami, umożliwiając użytkownikom przewijanie za pomocą pierścienia lub obramowania na urządzeniu z Wear OS. Dodatkowo ScalingLazyColumnPicker obsługują teraz domyślnie wejście obrotowe. Aby skonfigurować przewijanie lub przyciąganie, użyj parametru rotaryScrollableBehavior. W przypadku zachowania przyciągania zalecamy użycie parametru flingBehavior również do przewijania dotykiem.
  • SwipeDismissableNavHost zawiera teraz animację wejścia dla przejść w aplikacji.
  • PositionIndicator jest teraz domyślnie wyświetlany podczas pierwszego wyświetlania ekranu.
  • Dodano SelectableChipSplitSelectableChip jako wariant ToggleChip. Użyj ich z opcją RadioButton, aby zapewnić semantyczne opcje wyboru zamiast przełączania opcji semantycznych na potrzeby ułatwień dostępu.
  • ListHeader obsługuje teraz dostosowywanie wysokości, gdy treść wymaga dodatkowej wysokości, aby dopasować duże rozmiary czcionki.

Poprawki błędów

  • Naprawiliśmy błąd polegający na tym, że elementy do wyboru wyświetlały komunikat o kliknięciu dwukrotnie, aby je zaznaczyć, gdy były już zaznaczone. (I7ed88)

Wersja 1.4.0-alpha08

1 maja 2024 r.

Element androidx.wear.compose:compose-*:1.4.0-alpha08 został zwolniony. Wersja 1.4.0-alpha08 zawiera te komisy.

Zmiany w interfejsie API

  • Wprowadziliśmy następujące zmiany w nowym interfejsie API rotary: zmieniliśmy nazwę interfejsu Modifier.rotary na Modifier.rotaryScrollable, zmieniliśmy nazwę interfejsu RotaryBehavior na RotaryScrollableBehavior, a funkcję 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 rotary: zmieniliśmy nazwę RotaryScrollableLayoutInfoProvider na RotarySnapLayoutInfoProvider (ten dostawca jest potrzebny tylko w przypadku rotary z snapem); zmieniliśmy typ parametru snapOffsetRotaryScrollableDefaults.snapBehavior snapOffset z Int na Dp. (Iddebe)
  • Zmieniliśmy nazwę parametru clickInteractionSource w pliku SplitSelectableChip na containerInteractionSource. (Ia8f84)
  • Zmieniliś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 margines PositionIndicator do 2 pikseli (było 5 pikseli), aby naprawić błąd polegający na tym, że PositionIndicator (pasek przewijania) nakłada się na przewijane treści. Pamiętaj, że ta zmiana może spowodować nieprawidłowe wyświetlanie dotychczasowych zrzutów ekranu zawierających PositionIndicator ze względu na zmianę odstępów. (I57472)
  • Ulepszamy dokumentację nowego interfejsu API obrotowego, opisując różnice między urządzeniami obrotowymi o niskiej i wysokiej rozdzielczości. (I63abe)
  • Usunęliśmy błąd związany z wartością poza zakresem w funkcji 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.

Element androidx.wear.compose:compose-*:1.4.0-alpha07 został zwolniony. Wersja 1.4.0-alpha07 zawiera te komity.

Zmiany w interfejsie API

  • Dodaliśmy Modifier.rotary, nowy modyfikator, który łączy zdarzenia obrotowe z przewijalnymi kontenerami, umożliwiając użytkownikom przewijanie za pomocą pierścienia lub obramowania na urządzeniu z Wear OS. Dodatkowo komponenty ScalingLazyColumn i Picker obsługują teraz domyślnie wejście obrotowe z nowymi przeciążeniami, które obejmują parametr rotaryBehavior umożliwiający określenie konfiguracji przewijania lub przyciągania. Jeśli parametr rotaryBehavior ma wartość snap, zalecamy też podanie wartości snap w parametrze flingBehavior, aby umożliwić przewijanie dotykiem. (I2ef6f)
  • Źródła NestedScroll Drag i Fling są zastępowane przez UserInputSideEffect, aby uwzględnić rozszerzoną definicję tych źródeł, która obejmuje teraz animacje (Side Effect) oraz koło myszy i klawiaturę (UserInput). (I40579)
  • Dodaliśmy SelectableChipSplitSelectableChip, aby wyraźniej odróżnić przełączniki, takie jak Switch/Checkbox, od elementów sterujących, które można wybrać, takich jak RadioButton. Spowoduje to zastąpienie wcześniej dodanych przeciążeń funkcji ToggleChip/SplitToggleChip parametrami selectionControl. (Ia0217)
  • Zmieniono modyfikator widoczności IndeterminateStrokeWidth w ProgressIndicatorDefaults na publiczny. (I5b5a4)

Wersja 1.4.0-alpha06

3 kwietnia 2024 r.

Element androidx.wear.compose:compose-*:1.4.0-alpha06 został zwolniony. Wersja 1.4.0-alpha06 zawiera te komisy.

Poprawki błędów

  • Dodaliśmy wewnętrzny projekt obsługi urządzeń z klawiaturą obrotową w ramach większego projektu przenoszenia zachowania takich urządzeń do Androida X z Horologist. (I617d1)
  • Dodaliśmy wewnętrzny projekt obsługi haptycznej w ramach większego projektu przenoszenia działania kółka z Horologist do AndroidX. (I5568a)

Wersja 1.4.0-alpha05

20 marca 2024 r.

Element androidx.wear.compose:compose-*:1.4.0-alpha05 został zwolniony. Wersja 1.4.0-alpha05 zawiera te komity.

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.4.0-alpha04

6 marca 2024 roku

Element androidx.wear.compose:compose-*:1.4.0-alpha04 został zwolniony. Wersja 1.4.0-alpha04 zawiera te komisy.

Zmiany w interfejsie API

  • Dodaliśmy nową przeciążenie funkcji ToggleChipSplitToggleChip, która zamiast parametru toggleControl przyjmuje parametr selectionControl. Należy go używać z elementem RadioButton, aby zapewnić możliwość wyboru semantyki zamiast przełączania semantyki na potrzeby ułatwień dostępu (I1d6d9)
  • Zaktualizowaliśmy nazwy parametrów nowej funkcji przeciążenia selectionControlonSelected na onSelect w przypadku zdarzeń ToggleChipSplitToggleChip (I1a971).

Wersja 1.4.0-alpha03

21 lutego 2024 r.

Element androidx.wear.compose:compose-*:1.4.0-alpha03 został zwolniony. Wersja 1.4.0-alpha03 zawiera te commity.

Zmiany w interfejsie API

  • Opakowanie Modifier.inspectable zostało wycofane. Ten interfejs API spowoduje więcej niepotrzebnych unieważnień modyfikatora, dlatego nie zalecamy jego używania. Jeśli deweloperzy chcą udostępnić właściwości modyfikatora narzędziom, zachęcamy ich do implementowania metody inspectableProperties() w obiekcie ModifierNodeElement. (Ib3236)

Poprawki błędów

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

Wersja 1.4.0-alpha02

7 lutego 2024 r.

Element androidx.wear.compose:compose-*:1.4.0-alpha02 został zwolniony. Wersja 1.4.0-alpha02 zawiera te commity.

Poprawki błędów

  • Naprawiliśmy błąd związany z funkcją przesuwania w celu wyświetlenia, w której można było wchodzić w interakcje z wykonywanym działaniem dotyczącym jednego elementu (i go anulować) przez rozpoczęcie przesuwania innego elementu (Ide059).
  • Zaktualizowaliśmy funkcję ListHeader, aby umożliwić dostosowywanie wysokości, gdy treści wymagają dodatkowej wysokości, aby pomieścić duże rozmiary czcionki. (I7290c, b/251166127)

Wersja 1.4.0-alpha01

24 stycznia 2024 r.

Element androidx.wear.compose:compose-*:1.4.0-alpha01 został zwolniony. Wersja 1.4.0-alpha01 zawiera te commity.

Nowe funkcje

  • Dodaliśmy animację wejścia do aplikacji SwipeDismissableNavHost (cfeb79a).
  • PositionIndicator jest teraz domyślnie wyświetlany podczas pierwszego wyświetlania ekranu. Ta zmiana została wprowadzona, aby ułatwić spełnienie wytycznych dotyczących jakości na Wear. Oznacza to, że testy zrzutów ekranu będą musiały zostać zaktualizowane na ekranach, które zawierają PositionIndicator, ponieważ PositionIndicator nie były wcześniej wyświetlane. (419cef7)

Zmiany w interfejsie API

  • Dodaliśmy nowy interfejs API ripple do bibliotek wear:compose-materialwear:compose-material3, który zastępuje wycofany interfejs rememberRipple. Dodaje też tymczasowy CompositionLocal, LocalUseFallbackRippleImplementation, aby przywrócić komponentom Material Design korzystanie z wycofanych interfejsów API rememberRipple/RippleTheme. Zostanie on usunięty w kolejnych stabilnych wersjach. Jest to tylko tymczasowe ułatwienie migracji w przypadku, gdy używasz niestandardowego RippleTheme. Więcej informacji o migracji i tłumaczenie tej zmiany znajdziesz na stronie developer.android.com. (af92b21)
  • Zmieniliśmy właściwości ColorScheme, aby były niezmienne, co zmniejsza efektywność zmian poszczególnych kolorów, ale zwiększa efektywność częstszego ich używania. Powodem tej zmiany jest fakt, że większość aplikacji nie ma potrzeby aktualizowania poszczególnych kolorów. Nadal jest to możliwe, ale będzie wymagać większej liczby ponownych kompilacji niż wcześniej. W związku z tym znacznie zmniejszyliśmy liczbę subskrypcji stanu we wszystkich plikach kodu źródłowego. Spowoduje to wzrost kosztów inicjalizacji i kosztów działania w przypadku standardowych zastosowań. (f5c48b7)
  • Komponenty Wear Material i Wear Material 3, które w swoim interfejsie API udostępniają wartość MutableInteractionSource, zostały zaktualizowane, aby udostępniać wartość opcjonalną MutableInteractionSource, która domyślnie jest ustawiana na null. Nie ma tu żadnych zmian semantycznych: przekazanie wartości null oznacza, że nie chcesz podnosić MutableInteractionSource, i w razie potrzeby zostanie on utworzony wewnątrz komponentu. Ustawienie wartości null pozwala niektórym komponentom nigdy nie przydzielać MutableInteractionSource, a innym pozwala tworzyć instancję tylko wtedy, gdy jest to konieczne, co zwiększa wydajność tych komponentów. Jeśli nie używasz wartości MutableInteractionSource przekazywanej do tych komponentów, zalecamy przekazanie zamiast niej wartości null. Zalecamy też wprowadzenie podobnych zmian w własnych komponentach. (f8fa920)
  • Zaktualizowaliśmy rememberExpandableState, aby zapisywać stan rozwinięcia. Dzięki temu dane są przechowywane podczas przechodzenia na inny ekran i przywracane po powrocie do pierwotnego ekranu. (5c80095)

Poprawki błędów

  • Zaktualizowaliśmy ustawienie ReduceMotion, aby używać odtwarzacza z uwzględnieniem cyklu życia. (7c6b122)
  • Zaktualizowaliśmy listenera TouchExplorationStateProvider, aby uwzględniał cykl życia (be28b01).
  • Usunęliśmy warstwę materialcore w przypadku CompactButton, aby poprawić wydajność (25db8e9)
  • Ulepszyliśmy odporność funkcji BasicSwipeToDismissBox na przesunięcia NaN, aby 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 zapobiec powtarzaniu się komunikatów ułatwień dostępu (wcześniej dublowały się role semantyczne) (d11eeb7)

Wersja 1.3

Wersja 1.3.1

3 kwietnia 2024 r.

Element androidx.wear.compose:compose-*:1.3.1 został zwolniony. Wersja 1.3.1 zawiera te komitowane zmiany.

Poprawki błędów

  • Naprawiliśmy błąd związany z funkcja wyświetlania po przesunięciu, w którym można było wchodzić w interakcje z wykonywanym działaniem dotyczącym jednego elementu (i go anulować) przez rozpoczęcie przesuwania innego elementu. (Ide059)

Wersja 1.3.0

24 stycznia 2024 r.

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

Ważne zmiany od wersji 1.2.0

  • Klasa SwipeToDismissBoxState, enumeracja SwipeToDismissValue i funkcja rozszerzenia Modifier.edgeSwipeToDismiss są teraz częścią pakietu androidx.wear.compose.foundation, a nie androidx.wear.compose.material. Ta zaktualizowana architektura umożliwia implementowanie obsługi gestów niezależnie od innych kwestii projektowych. Procesy związane z Material Design, takie jak stosowanie kolorów z skonfigurowanego motywu, są obsługiwane osobno.
  • Zajęcia SwipeToRevealCard i SwipeToRevealChip pomogą Ci wdrożyć 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 są wyższe, aby lepiej obsługiwać skalowanie czcionek wybrane przez użytkownika. Może to spowodować przycięcie. Aby rozwiązać ten problem, kształt large dla MaterialTheme wykorzystuje teraz większy promień narożnika (26 dp zamiast 24 dp). Obiekty Chip i ToggleChip używają nowego promienia zaokrąglenia rogów, aby uniknąć przycinania treści w rogach elementu Chip i ToggleChip.

    • Większość elementów ChipsToggleChips pozostaje niezmieniona, ponieważ ich wysokość wynosi domyślnie 52 piksele. Jednak obiekty ChipToggleChip zawierające kilka wierszy tekstu etykiety głównej lub dodatkowej albo takie, których wysokość została zastąpiona, mogą spowodować niepowodzenie testów zrzutów ekranu.

Dodatkowe zmiany

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

Rekomendacje dotyczące implementacji

  • Jeśli Twoja aplikacja umożliwia użytkownikom przesuwanie zawartości na ekranie, na przykład w aplikacji opartej na mapach, wyłącz obsługę przesuwania, ustawiając wartość userSwipeEnabled na false w komponencie SwipeDismissableNavHost, i dodaj przycisk, który umożliwia użytkownikom przejście do poprzedniego ekranu.
  • Aby wyłączyć animacje wskaźnika pozycji podczas animacji łagodnego pojawiania się i zmieniania pozycji na liście przewijanej, użyj obiektu SnapSpec.
  • Podczas oczekiwania na załadowanie treści do odtworzenia w aplikacji multimedialnej wyświetl pustą kompozycję Placeholder.
  • Aby utworzyć kolekcję elementów, które można rozwinąć na żądanie, użyj eksperymentalnej klasy ExpandableStateMapping.

Wersja 1.3.0-rc01

10 stycznia 2024 r.

Element androidx.wear.compose:compose-*:1.3.0-rc01 został zwolniony. Wersja 1.3.0-rc01 zawiera te commity.

Poprawki błędów

  • Zaktualizowaliśmy duży kształt MaterialTheme, aby miał zaokrąglone rogi o promieniu 26 dp. Będzie on teraz używany przez element Chip i ToggleChip. Ta zmiana jest potrzebna, aby umożliwić dostosowanie wysokości, gdy treści wymagają dodatkowej wysokości, aby pomieścić duże rozmiary czcionek. W przeciwnym razie istniejący kształt stadionu będzie przycinać niektóre treści.

    Obcięty tekst w rogach
    Rysunek 1. Tekst przycięty w rogu.
    Tekst nie został obcięty
    Rysunek 2.: tekst nie został obcięty.

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

Wersja 1.3.0-beta02

13 grudnia 2023 r.

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

Poprawki błędów

  • Przywróciliśmy domyślne przesuwanie w aplikacji BasicSwipeToDismissBox. W poprzedniej wersji ta funkcja została zmieniona, tak aby przesuwanie było możliwe tylko wtedy, gdy palec dotyka ekranu. (Id8e76)

Wersja 1.3.0-beta01

15 listopada 2023 r.

Element androidx.wear.compose:compose-*:1.3.0-beta01 został zwolniony. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.

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

  • Funkcje SwipeToDismissBoxState, SwipeToDismissValueModifier.edgeSwipeToDismiss zostały przeniesione z wersji androidx.wear.compose.material do wersji androidx.wear.compose.foundation, wraz z podstawową implementacją funkcji przesunięcia w poziomie, aby zamknąć, w wersji BasicSwipeToDismissBox. Dzięki temu gest przesunięcia w bok do zamknięcia może być używany niezależnie od Material Design, np. z elementu SwipeDismissableNavHost w komponencie androidx.wear.compose.navigation. W przypadku Material Design zalecamy nadal korzystanie z elementu SwipeToDismissBox z poziomu androidx.wear.compose.material, ponieważ pobiera on kolory z poziomu MaterialTheme, a potem deleguje pozostałą implementację do elementu 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 poprawiło obsługę fokusa za pomocą HierarchicalFocusCoordinator.
  • SwipeToReveal zawiera nowe komponenty SwipeToRevealCardSwipeToRevealChip w Material Design, które są zgodne z zaleceniami dotyczącymi UX w przypadku CardChip. Obsługuje też cofanie w przypadku działania dodatkowego.
  • DefaultTextStyle wyłącza teraz wypełnienie czcionki, aby zachować spójność na platformie Android.
  • Elementy Chip i ToggleChip mają teraz regulowaną wysokość, aby uwzględnić treści, które zostały powiększone ze względu na duże czcionki ułatwiające dostępność.
  • PositionIndicator ma teraz osobne specyfikacje animacji dla animacji w pojawianiu się, znikania i zmiany pozycji. Ze względu na wydajność zalecamy wyłączenie efektów łagodnego pojawiania się i zmiany pozycji, gdy są one używane w przypadku list przewijanych.
  • ExpandableStateMapping udostępnia nowy sposób generowania ExpandableStates, gdy trzeba je tworzyć na żądanie, a niekoniecznie w zakresie @Composable.
  • Placeholder umożliwia teraz zresetowanie treści, jeśli nie są już w stanie gotowości. Ustawienie zmniejszania ruchu dotyczy teraz efektu migotania i ruchu wycierania w filmach Placeholder.

Znane problemy

  • PositionIndicator nie jest wyświetlany, gdy pojawia się ekran. Zamierzamy wprowadzić zmianę w wersji 1.4 alpha, aby wyświetlała się ona początkowo, ale bez animacji.

Zmiany w interfejsie API

  • Zmieniliśmy nazwę poziomu Podstawy SwipeToDismissBox na BasicSwipeToDismissBox. Dzięki temu komponent na poziomie Foundation wyraźniej odróżnia się od komponentu na poziomie Material.SwipeToDismissBox Drugi z nich pobiera kolory z poziomu MaterialTheme, aby wykorzystać je w przesłonach, a pozostałe elementy implementuje w poziomie BasicSwipeToDismissBox. (Ibecfc)
  • Oznaczyliśmy model rememberExpandableStateMapping jako eksperymentalny i poprawiliśmy skuteczność modelu expandableItem. (I5f6bc)
  • Klasę SwipeToRevealAction w interfejsach API karty i elementu karty Material SwipeToReveal zastąpiliśmy interfejsem API opartym na slotach, który korzysta z komponentów SwipeToRevealPrimaryAction, SwipeToRevealSecondaryActionSwipeToRevealUndoAction. Przykłady korzystania z nowego interfejsu API znajdziesz w przykładowym kodzie. (Ia8943)
  • Flagi animacji PositionIndicator zostały zastąpione parametrami AnimationSpec. Poszczególne animacje można wyłączyć, przekazując wartość snap jako parametr AnimationSpec. (I6c523)

Poprawki błędów

  • Naprawiliśmy błąd powodowany przez ograniczony tekst zakrzywiony, gdy rozmiar jest ograniczony (I50efe)
  • Rozwiązaliśmy problem z potencjalnym błędem NaN związanym z urządzeniem curvedComposable (I970eb).
  • Cofnęliśmy usunięcie animacji podświetlenia zmiany pozycji w wersji PositionIndicator. (Ieb424)
  • Aby zwiększyć wydajność komponentu Chip, usunęliśmy warstwę material-core. (If2dcb)

Wersja 1.3.0-alpha08

18 października 2023 r.

Element androidx.wear.compose:compose-*:1.3.0-alpha08 został zwolniony. Wersja 1.3.0-alpha08 zawiera te commity.

Zmiany w interfejsie API

  • Do funkcji PositionIndicator dodaliśmy osobne flagi, aby umożliwić kontrolowanie różnych animacji: showFadeInAnimation, showFadeOutAnimationshowPositionAnimation. Poprzedni interfejs API został wycofany i przekierowuje wywołania do nowego. Ze względu na wydajność i spójność interfejsu użytkownika, gdy element PositionIndicator jest używany z listą przewijalną, zalecamy wyłączenie flag showFadeInAnimationshowPositionAnimation. Jeśli PositionIndicator jest używany jako samodzielny wskaźnik, np. do zmiany głośności, zalecamy włączenie wszystkich 3 animacji. (I44294)
  • Materiały SwipeToDismissBoxState, SwipeToDismissValueedgeSwipeToDismiss zostały wycofane po przeniesieniu funkcji przesuwania w bok do wear.compose.foundation. Zastąp je odpowiednikami z poziomu wear.compose.foundation. (Iee8c9)

Poprawki błędów

  • Zaktualizowaliśmy profile bazowe dla bibliotek komponentów, materiałów i nawigacji w komponentach Wear Compose. (Idb060)
  • Wprowadziliśmy cofnięcie zmiany zachowania PositionIndicator wprowadzonej w poprzedniej wersji CL, tak aby PositionIndicator była animowana podczas początkowego wyświetlania ekranu. Zamierzamy wprowadzić podobną zmianę w wersji 1.4 alpha, aby PositionIndicator była wyświetlana na początku, ale bez animacji. (I41843)
  • Rozwiązaliśmy kilka problemów z wydajnością w wersji PositionIndicator. (I1c654, b/302399827)
  • Zoptymalizowaliśmy wydajność domyślnej implementacji dostawcy stanu eksploracji dotykiem, aby polegała ona na State<Boolean>, a nie na stanie pochodnej. (Ieec4d)
  • W przypadku Androida 13 i nowszych ustawiliśmy systemGestureExclusion prostokąty. (Ib1f4b)

Wersja 1.3.0-alpha07

4 października 2023 roku

Element androidx.wear.compose:compose-*:1.3.0-alpha07 został zwolniony. Wersja 1.3.0-alpha07 zawiera te commity.

Zmiany w interfejsie API

  • Do PositionIndicator dodaliśmy osobne flagi, aby umożliwić sterowanie różnymi animacjami: showFadeInAnimation, showFadeOutAnimationshowPositionAnimation. Poprzedni interfejs API został wycofany i przekierowuje wywołania do nowego. Ze względu na wydajność i spójność interfejsu użytkownika, gdy element PositionIndicator jest używany z listą przewijalną, zalecamy wyłączenie flag showFadeInAnimationshowPositionAnimation. Jeśli PositionIndicator jest używany jako samodzielny wskaźnik, np. do zmiany głośności, zalecamy włączenie wszystkich 3 animacji. (Ia2d63)

Poprawki błędów

  • Wprowadziliśmy ulepszenia w przypadku animacji odsłaniania treści po przesunięciu, dodając animację znikania tekstu głównego działania oraz znikającego działania dodatkowego lub zmieniając skalę ikony po pełnym rozwinięciu. (Ib7223)
  • Zalecamy, aby działania „Przesuń, aby wyświetlić” były dostępne. W naszych przykładach działania „Przesuń, aby wyświetlić” dodaliśmy niestandardowe działania ułatwień dostępu. (I42224)
  • Zwiększyliśmy wydajność funkcji SwipeToDismissBox, m.in. dzięki refaktoryzacji, która ma zapewnić, że początkowa logika nie spowoduje ponownego skompilowania. Element SwipeToDismissBox jest teraz wyświetlany w rozmiarze pełnego ekranu. (Ie0aa2)
  • Naprawiliśmy błąd, który powodował nieprawidłowe znikanie PositionIndicator. (I2091a)
  • Poprawiona skuteczność PositionIndicator dzięki optymalizacji rekompozycji. Dodano nowe flagi do sterowania animacjami (fadeIn, fadeOutpositionChange) (patrz Zmiany w interfejsie API) (Ifac7d)
  • Dodaliśmy testy mikrobenchmarków dla PositionIndicator (Idf875)

Wersja 1.3.0-alpha06

20 września 2023 r.

Element androidx.wear.compose:compose-*:1.3.0-alpha06 został zwolniony. Wersja 1.3.0-alpha06 zawiera te commity.

Poprawki błędów

  • Dodaliśmy obsługę właściwości Modifier.edgeSwipeToDismiss w przypadku właściwości SwipeToReveal. (I95774, b/293444286)
  • Dodaliśmy próbki materiałów SwipeToRevealChipSwipeToRevealCard. (Ieb974)
  • Zaktualizowaliśmy profile bazowe dla bibliotek Wear Compose Foundation i Material. (I1dd1f)

Wersja 1.3.0-alpha05

6 września 2023 r.

Element androidx.wear.compose:compose-*:1.3.0-alpha05 został zwolniony. Wersja 1.3.0-alpha05 zawiera te commity.

Poprawki błędów

  • Dodaliśmy obsługę funkcji Przesuń, aby wyświetlić, aby można było przesuwać tylko jeden element naraz. (I3cd7a)
  • Ulepszona dokumentacja funkcji ScalingLazyColumnDefaults, aby lepiej odzwierciedlała jej rzeczywiste działanie. (I886d3)

Wersja 1.3.0-alpha04

23 sierpnia 2023 r.

Element androidx.wear.compose:compose-*:1.3.0-alpha04 został zwolniony. Wersja 1.3.0-alpha04 zawiera te commity.

Nowe funkcje

  • Dodaliśmy obsługę cofnięcia dla działania wtórnego SwipeToReveal. (I7a22d)

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.3.0-alpha03

9 sierpnia 2023 r.

Element androidx.wear.compose:compose-*:1.3.0-alpha03 został zwolniony. Wersja 1.3.0-alpha03 zawiera te commity.

Zmiany w interfejsie API

  • Dodaliśmy do Material 2 nowe komponenty do implementacji SwipeToReveal za pomocą kart i elementów. Te komponenty są zgodne ze sprawdzonymi metodami dotyczącymi interfejsu użytkownika i ułatwiają deweloperom implementowanie SwipeToReveal za pomocą dotychczasowych komponentów w Material Design na Wear OS. (I7ec65)
  • Włączyliśmy adnotacje FloatRange jako ograniczenia interfejsu API, które zostały wcześniej podane w komentarzach. (Icb401)

Poprawki błędów

  • Przemieściliśmy początkową logikę przewijania z funkcji ScalingLazyColumn do funkcji onGloballyPositioned(). (Ic90f1)
  • Aby zoptymalizować przydziały skrótów, używamy teraz w plikach PositionIndicator, ProgressIndicatorSelectionControls wartości drawWithCache. (I5f225, b/288234617)
  • Rozwiązaliśmy problem z widokością pola wyboru w wyłączonych stanach. (Ib25bf)
  • Zaktualizowaliśmy Placeholder, aby umożliwić zresetowanie i wyświetlenie placeholdera, jeśli treści nie są już gotowe. (Ibd820)
  • Wprowadziliśmy poprawki dotyczące testów Placeholder (Idb560), które nie zawsze działały prawidłowo.

Wersja 1.3.0-alpha02

26 lipca 2023 r.

Element androidx.wear.compose:compose-*:1.3.0-alpha02 został zwolniony. Wersja 1.3.0-alpha02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Udostępniliśmy ExpandableStateMapping, nowy sposób generowania ExpandableStates na potrzeby przypadków, w których muszą one być tworzone na żądanie, niekoniecznie w zakresie @Composable (Iff9e0).
  • SwipeToDismissBox został przeniesiony z pakietu androidx.wear.compose.material do pakietu androidx.wear.compose.foundation. (I275fb)
  • zaktualizowane pliki interfejsu API, aby dodać adnotacje do pomijania zgodności; (I8e87a, b/287516207)
  • Stałe wysokości Chip, CompactChipToggleChip są teraz publicznie dostępne (Idbfde).
  • Opublikowaliśmy poziome i pionowe wypełnienie dla elementów ChipCompactChip. (Ieeaf7)
  • Dodano funkcję wyłączania obsługi przesuwania w elementach SwipeDismissableNavHost za pomocą nowego parametru userSwipeEnabled. (Id2a0b, b/230865655)
  • Zaktualizowaliśmy bibliotekę nawigacji Compose na Wear, aby używała nowego komponentu SwipeToDismissBox z fundacji Wear Compose. (I4ff8e)

Poprawki błędów

  • Naprawiliśmy błąd związany z z-order, który powodował, że expandedItem nie wyświetlał prawidłowej treści po kliknięciu przycisku. (I1899d, b/289991514)
  • Poprawa obsługi zaznaczenia SwipeToDismissBox (a tym samym SwipeDismissableNavHost) za pomocą HierarchicalFocusCoordinator (I45362, b/277852486)
  • Wprowadziliśmy poprawkę dotyczącą obsługi gestów w grze SwipeableV2 . (I89737)
  • Sfinalizowaliśmy profile bazowe dla wersji 1.2. (Id5740)
  • Po przeniesieniu SwipeToDismissBox do Foundation implementacja Material SwipeToDismissBox jest teraz przekazywana do Foundation i zawiera domyślne wartości kolorów z jej motywu (If8451).
  • Dodaliśmy do ListHeader semantyczne nagłówki. (Ic5420)
  • Elementy Chip i ToggleChip będą teraz dostosowywać swoją wysokość do treści, które zostały powiększone ze względu na duże czcionki, aby zapewnić ułatwienia dostępu. (Iaf302)
  • Naprawiono błąd związany z rolą semantyczną obszaru dotykowego SplitToggleChip, aby ułatwić dostępność. (Ieed3a)
  • Ustawienie „Ogranicz ruch” wyłącza teraz efekt migotania i wymazywania obiektów zastępczych. (I91046)
  • StepperInlineSlider obsługują teraz powtarzane kliknięcia przy długim naciśnięciu, dzięki czemu możesz szybko zwiększać lub zmniejszać wartość StepperInlineSlider, przytrzymując przyciski + lub -. (I27359)

Wersja 1.3.0-alpha01

21 czerwca 2023 r.

Element androidx.wear.compose:compose-*:1.3.0-alpha01 został zwolniony. Wersja 1.3.0-alpha01 zawiera te commity.

Poprawki błędów

  • Zgodnie z informacjami podanymi w artykułach 1.2.0-alpha071.2.0-alpha10 zmieniamy teraz DefaultTextStyle, aby wyłączyć wypełnienie czcionki, co zapewni spójność na platformie Android. Rozwiązanie to pozwoli rozwiązać niektóre przypadki przycinania tekstu przy dużych rozmiarach czcionki i może też wpłynąć na układy ekranu, dlatego testy zrzutów ekranu trzeba będzie zaktualizować. Tutaj widzimy obcięty tekst (Ic6a86)
przycięty tekst przy dużym rozmiarze czcionki
Rysunek 1. Tekst jest przycięty.
  • Nie jest już widoczny, gdy wyłączysz wypełnienie czcionki:
Tekst nie jest przycinany przy dużym rozmiarze czcionki
Rysunek 2.: tekst nie został obcięty.
  • Zaktualizowaliśmy usługę wear.compose.foundation, aby była zależna od interfejsu API usługi wear.compose.material (I72004, b/285404743).
  • Naprawiliśmy błąd w SwipeToDismissBox. Klucze tła i treści są teraz przekazywane do bloku zapamiętaj, aby podczas zmiany treści lub tła były tworzone nowe modyfikatory. (Ib876c, b/280392104)
  • Zaktualizowaliśmy usługę TimeText, aby używała lokalizacji przy wyborze formatu czasu 12- lub 24-godzinnego. (If4a3d)
  • Naprawiliśmy niespójność w parametrach domyślnych SwipeToDismissBox contentScrimColor. (I2d70f)
  • Ulepszono obsługę ruchu w aplikacji SwipeToReveal. (I28fb7)

Znane problemy

  • Obsługa rozmiarów czcionek konfigurowanych przez użytkownika jest wymagana ze względu na ułatwienia dostępu. Wiemy, że elementy wielowierszowe mogą powodować przycinanie tekstu, gdy są wyświetlane z dużymi rozmiarami czcionek. W związku z tym zaktualizujemy element Chip w wersji alfa 1.3, aby w takich przypadkach dokonywać korekt wysokości.

Wersja 1.2

Wersja 1.2.1

18 października 2023 r.

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

Poprawki błędów

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

Wersja 1.2.0

9 sierpnia 2023 r.

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

Ważne zmiany od wersji 1.1.0

Wersja 1.2.0-rc01

26 lipca 2023 r.

Element androidx.wear.compose:compose-*:1.2.0-rc01 został zwolniony. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

  • Sfinalizowaliśmy profile bazowe dla wersji 1.2 (Id5740).

Wersja 1.2.0-beta02

7 czerwca 2023 r.

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

Nowe funkcje

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

Poprawki błędów

  • Zaktualizowaliśmy profile bazowe dla podstawy i bibliotek materiałów do tworzenia aplikacji na Wear(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.

Element androidx.wear.compose:compose-*:1.2.0-beta01 został zwolniony. Wersja 1.2.0-beta01 zawiera te commity.

Co zawiera Compose w wersji 1.2 na Wear OS

Wersja 1.2-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest kompletna pod względem funkcji, a interfejs API jest zablokowany (z wyjątkiem wersji oznaczonych jako eksperymentalne). Wersja 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, który można rozwinąć, np. tekstu, w którym liczba wierszy. Użyj elementu expandableItems dla grupy elementów, które można rozwinąć, a elementu expandableButton, aby ułatwić tworzenie przycisku, który zwija się po rozwinięciu treści.
  • HierarchicalFocusCoordinator – ta eksperymentalna kompozycja umożliwia oznaczenie poddrzewi kompozycji jako włączone lub wyłączone.
  • Picker – interfejs API zawiera teraz parametr userScrollEnabled, który umożliwia określenie, czy selektor jest aktywny podczas przewijania przez użytkownika.
  • PickerGroup – nowy element kompozytowy do obsługi wielu selektorów jednocześnie. Obsługuje fokus między selektorami za pomocą interfejsu API HierarchicalFocusCoordinator i umożliwia automatyczne wyśrodkowanie elementów selektora.
  • Placeholder – wprowadziliśmy aktualizacje animacji migotania i „wymazywania”. Efekt wymazywania jest teraz stosowany natychmiast po tym, jak treści są gotowe.
  • ScalingLazyColumn – przeniesiono użytkownika ScalingLazyColumn i powiązane z nim klasy z androidx.wear.compose.material.ScalingLazyColumn do androidx.wear.compose.foundation.lazy.ScalingLazyColumn. Zaktualizuj aplikację do wersji Foundation.Lazy.
  • SwipeToReveal – dodaliśmy eksperymentalne wsparcie dla funkcji przesuwania w celu wyświetlenia jako sposobu dostępu do działań dodatkowych, uzupełniając istniejący schemat „długiego naciśnięcia”.
  • Stepper – teraz ma przeciążenie z dodatkowym parametrem enableRangeSemantics, aby ułatwić wyłączenie domyślnej semantyki zakresu.
  • Previews – dodaliśmy te niestandardowe adnotacje do wyświetlania kompozytowych na ekranach Wear: WearPreviewSmallRound – podgląd kompozytowego na małym, okrągłym urządzeniu; WearPreviewLargeRound – podgląd kompozytowego na dużym, okrągłym urządzeniu; WearPreviewSquare – podgląd kompozytowego na kwadratowym urządzeniu. Dostępne są też te adnotacje i adnotacje dotyczące podglądu wielu elementów: WearPreviewFontScales wyświetla elementy na urządzeniu Wear OS z różnymi rozmiarami czcionki, a WearPreviewDevices – na różnych urządzeniach Wear OS.
  • Do Wear Compose dodaliśmy parametr DefaultTextStyle, który domyślnie ustawia wartość właściwości PlatformTextStyle.includeFontPadding na „prawda” (jest to bieżące ustawienie). Umożliwi nam to zsynchronizowanie domyślnego wyłączania wypełnienia czcionki z bibliotekami w Compose w wczesnej wersji 1.3 w wersji alfa. Więcej informacji znajdziesz w 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. Ma to na celu zapobieganie nieoczekiwanym awariom spowodowanym przez IllegalArgumentException, które wystąpiło, gdy stos wsteczny był pusty. (I04a81, b/277700155)

Wersja 1.2.0-alpha10

10 maja 2023 r.

Element androidx.wear.compose:compose-*:1.2.0-alpha10 został zwolniony. Wersja 1.2.0-alpha10 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy obsługę funkcji Przesuń, aby wyświetlić, która umożliwia dostęp do działań dodatkowych. Ten wzór uzupełnia wzór „długiego naciśnięcia”, czyli dotychczasowy sposób wyświetlania (różnych) działań dodatkowych. (I60862)

Zmiany w interfejsie API

  • Dodaliśmy RevealScope do komponentów akcji w komponencie SwipeToReveal, co umożliwia dostęp do przesunięcia, przy którym pojawiają się dodatkowe działania. (I3fd56)

Poprawki błędów

  • Rozwiązano problem z ScalingLazyColumn, który po przesunięciu zatrzymywał się na Wear API 33 (Ic4599).
  • Wprowadziliśmy kilka ulepszeń dotyczących szybkości działania PositionIndicator, aby zmniejszyć zacięcia. (I35e92)
  • Naprawiliśmy błąd w elementach typu chip i CompactChip, w których rola semantyczna nie była już ustawiona na Role.Button. (I93f91, b/277326264)

Znane problemy

  • Wykryliśmy błąd w Android Studio, który powoduje problemy z renderowaniem podglądu, gdy jest on opatrzony adnotacjami @WearPreviewDevices i @WearPreviewFontScales. Wkrótce udostępnimy rozwiązanie. Pamiętaj, że inne adnotacje podglądu na Wear OS działają zgodnie z oczekiwaniami w Android Studio Giraffe 2022.3.1 i nowszych wersjach.

  • W wersji 1.2.0-alpha07 dodaliśmy do usługi Compose na Wear DefaultTextStyle, zachowując dotychczasową wartość PlatformTextStyle.includeFontPadding jako true. W przypadku tła zobacz artykuł Poprawka marginesu czcionki w Compose. W pierwszej wersji alfa 1.3 zmienimy wartość DefaultTextStyle, aby wyłączyć wypełnienie czcionki, co zapewni spójność na platformie Android. Rozwiązanie to pozwoli rozwiązać niektóre przypadki przycinania tekstu przy dużych rozmiarach czcionki i może też wpłynąć na układy ekranu, dlatego testy zrzutów ekranu wymagają aktualizacji. Na przykład w przypadku dużych rozmiarów czcionki tekst jest przycinany:

przycięty tekst przy dużym rozmiarze czcionki
Rysunek 1. Tekst jest przycięty.
  • Nie jest już widoczny, gdy wyłączysz wypełnienie czcionki:
Tekst nie jest przycinany przy dużym rozmiarze czcionki
Rysunek 2.: tekst nie został obcięty.

Nowe ustawienie można zastosować, zastępując typografię w motywie. W tym celu użyj przykładowego kodu.

Wersja 1.2.0-alpha09

19 kwietnia 2023 r.

Element androidx.wear.compose:compose-*:1.2.0-alpha09 został zwolniony. Wersja 1.2.0-alpha09 zawiera te commity.

Zmiany w interfejsie API

  • Dodanie do interfejsu API CurvedModifier wartości angularSizeDp, która służy do ustawiania szerokości kątowej w DP (I89a52).

Poprawki błędów

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

Wersja 1.2.0-alpha08

5 kwietnia 2023 r.

Element androidx.wear.compose:compose-*:1.2.0-alpha08 został zwolniony. Wersja 1.2.0-alpha08 zawiera te zatwierdzenia.

Zmiany w interfejsie API

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

Poprawki błędów

  • Ulepszone przykłady z możliwością rozwinięcia, które pokazują więcej możliwości. Zmodyfikowana animacja expandableItem, aby jej zawartość była wyśrodkowana. (I2f637)
  • Zaktualizowano ToggleControls, aby uniknąć dodatkowych przekształceń podczas ręcznej animacji kolorów za pomocą stanu. (I5d319)

Wersja 1.2.0-alpha07

22 marca 2023 r.

Element androidx.wear.compose:compose-*:1.2.0-alpha07 został zwolniony. Wersja 1.2.0-alpha07 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Komponenty elementów rozszerzalnych (dodane w wersji 1.2.0-alpha06) zostały przeniesione z kategorii „Materiały” do kategorii „Podstawy”, ponieważ nie odwoływały się w żaden znaczący sposób do MaterialTheme. (Ib0525)

Poprawki błędów

  • Rozwiązaliśmy problem z zawieszaniem się aplikacji, który występował na ekranie z użyciem komponentu PickerGroup. Upewniliśmy się, że komponent PickerGroup poprawnie obsługuje fokus, gdy żaden selektor nie ma fokusu. Dodaliśmy też obsługę przewijania RSB w demo selektorów. (If8c19)
  • Poprawiliśmy przejścia między dialogami – przejście w intronie jest teraz płynniejsze, aby pasowało do zakończenia. (Ib5af9)
  • Do Wear Compose dodaliśmy parametr DefaultTextStyle, który domyślnie ustawia wartość właściwości PlatformTextStyle.includeFontPadding na „prawda” (jest to bieżące ustawienie). Dzięki temu będziemy mogli w przyszłości zsynchronizować wyłączenie wyrównywania czcionki z bibliotekami w edytorze – więcej informacji znajdziesz w artykule Poprawka wyrównywania czcionki w edytorze. (I2aee8)
  • Przywróciliśmy zależność od podglądu UpsideDownCake za pomocą funkcji activity-compose, która blokowała publikowanie aplikacji w Sklepie Google Play. (I6443d)

Wersja 1.2.0-alpha06

8 marca 2023 r.

Element androidx.wear.compose:compose-*:1.2.0-alpha06 został zwolniony. Wersja 1.2.0-alpha06 zawiera te commity.

Zmiany w interfejsie API

  • Dodaj komponent CurvedBox, który umieszcza komponenty jeden na drugim w krzywoliniowym świecie. (I29200)
  • Dodano elementy, które można rozwijać – 2 nowe komponenty obsługujące grupę elementów do rozwinięcia w elementach ScalingLazyColumn lub pojedynczy element do rozwinięcia, np. tekst, w którym można zwiększać liczbę wierszy. (I95dd5)
  • Dodaliśmy te niestandardowe adnotacje do podglądu kompozytów na ekranach Wear: WearPreviewSmallRound wyświetla podgląd kompozytu na małym, okrągłym urządzeniu; WearPreviewLargeRound wyświetla podgląd kompozytu na dużym, okrągłym urządzeniu; WearPreviewSquare wyświetla podgląd kompozytu na kwadratowym urządzeniu. Dostępne są też te adnotacje i adnotacje dotyczące podglądu wielu elementów: WearPreviewFontScales wyświetla elementy na urządzeniu Wear OS z różnymi rozmiarami czcionki, a WearPreviewDevices – na różnych urządzeniach Wear OS. Aby korzystać z tych wersji, musisz mieć zainstalowaną najnowszą wersję Android Studio (Giraffe Canary 6) lub nowszą. Jeśli te adnotacje nie spełniają Twoich oczekiwań, możesz nadal korzystać z podglądu, który umożliwia dalsze dostosowywanie za pomocą parametrów. (I397ff)
  • Oznaczyliśmy HierarchicalFocusCoordinator jako funkcję eksperymentalną, ale ze względu na jej szerokie zastosowanie rozważamy przeniesienie jej do głównych bibliotek compose. (I3a768)

Poprawki błędów

  • Usunęliśmy błąd w funkcji HierarchicalFocusCoordinator. Gdy zmieni się wartość parametru lambda przekazywanego do funkcji focusEnabled, będziemy teraz prawidłowo używać nowej wartości. (Icb353)
  • Zaktualizowaliśmy domyślny kolor wyłączonej zawartości na tło, gdy w usługach Button, CompactButton, Chip, CompactChipToggleButton używane są kolory podstawowe. Dzięki temu poprawisz kontrast w celu ułatwienia dostępu. (I527cc)

Wersja 1.2.0-alpha05

22 lutego 2023 roku

Element androidx.wear.compose:compose-*:1.2.0-alpha05 został zwolniony. Wersja 1.2.0-alpha05 zawiera te commity.

Zmiany w interfejsie API

  • Zaktualizowano interfejs API PickerGroup, aby umożliwić opcjonalne propagowanie minimalnych ograniczeń do komponentu. Gdy ma wartość Prawda, minimalne ograniczenia przekazane z elementu kompozytowego nadrzędnego będą dozwolone w komponencie PickerGroup. Jeśli opcja PickerGroup ma wartość Fałsz, spowoduje to zresetowanie minimalnych ograniczeń. (I3e046)
  • Dodaliśmy do interfejsu Picker API parametr animateScrollToOption, aby umożliwić programową animację konkretnej 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 do SwipeDismissableNavHostTest kolejne testy korzystające z TestNavHostController (I61d54)

Wersja 1.2.0-alpha04

8 lutego 2023 r.

Element androidx.wear.compose:compose-*:1.2.0-alpha04 został zwolniony. Wersja 1.2.0-alpha04 zawiera te commity.

Nowe funkcje

  • PickerGroup do obsługi wielu selektorów jednocześnie za pomocą interfejsu Focus API. Obsługuje fokus między różnymi selektorami, umożliwia automatyczne wyśrodkowanie selektorów na podstawie parametrów i umożliwia deweloperom zmianę fokusu między różnymi selektorami podczas obsługi zdarzeń z grupy. W trybie TalkBack element PickerGroup obsługuje TalkBack, przenosząc zaznaczenie na wybrany selektor z grupy. (I60840)

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.2.0-alpha03

25 stycznia 2023 r.

Element androidx.wear.compose:compose-*:1.2.0-alpha03 został zwolniony. Wersja 1.2.0-alpha03 zawiera te komisy.

Zmiany w interfejsie API

  • Z poziomu androidx.wear.compose.material.ScalingLazyColumn do andrdoidx.wear.compose.foundation.lazy.ScalingLazyColumn przeniesiono ScalingLazyColumn (i powiązane z nim klasy) (patrz ten przykład migracji). Nowa lokalizacja jest bardziej zbliżona do compose.foundation.lazy.LazyColumn i bardziej naturalna, ponieważ nie jest elementem Material Design. Zmiana ta jest wprowadzana 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 Materialu do Foundation.Lazy wprowadzamy te zmiany:

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

Poprawki błędów

  • Naprawiliśmy błąd, który powodował niepotrzebne zmiany w komponowaniu w funkcji ScalingLazyListState.centerItemIndex, tak aby aktualizacje były wysyłane tylko wtedy, gdy wartość się zmieniła (Ia9f38).
  • Zwiększyliśmy wydajność urządzenia SwipeToDismissBox (I3933b).
  • Dodano testy porównawcze dla ScalingLazyColumn w komponencie Compose Foundation na Wear (Ie00f9).
  • Zaktualizowaliśmy niektóre wewnętrzne metody klas ScalingLazyColumn w Material, aby używały ich odpowiedników z Foundation.Lazy (I38aab)
  • Naprawiliśmy kilka problemów w testach selektora i dodaliśmy więcej testów sprawdzających przewijanie z odstępem (I6ac34).
  • Demonstracje integracji ScalingLazyColumn zostały przeniesione do Foundation.Lazy zamiast do Materiału ScalingLazyColumn (Ic6caa).
  • Dodaliśmy opcjonalne parametry fromDate/toDate do wersji demonstracyjnej DatePicker (I961cd).

Wersja 1.2.0-alpha02

11 stycznia 2023 r.

Element androidx.wear.compose:compose-*:1.2.0-alpha02 został zwolniony. Wersja 1.2.0-alpha02 zawiera te commity.

Zmiany w interfejsie API

  • Testy interfejsu użytkownika w Android Compose będą teraz wykonywać przejścia układu dla każdej ramki podczas wykonywania ramek, aby przejść do stanu bezczynności (np. za pomocą waitForIdle). Może to mieć wpływ na testy, które sprawdzają poszczególne ramki animacji układu. (I8ea08, b/222093277)
  • Parametr minLines został dodany do Wear Text, aby zapewnić spójne działanie z parametrem BasicText (I24874)
  • Funkcja CompactChipTapTargetPadding została udostępniona publicznie, aby była widoczna w dokumentacji (If1e70, b/234119038).

Poprawki błędów

  • Wyłączanie kompilacji wieloplatformowych w przypadku pakietów wear.compose (Iad3d7)
  • Napraw kdocs dla scrollToOption (I6f9a0)
  • Zmiana funkcji PlaceholderState.rememberPlaceholderState() na rememberUpdatedState, aby stan się aktualizował, jeśli funkcja lambda onContentReady. (I02635, b/260343754)
  • Poprawiliśmy problem z drżeniem tekstu w komponencie Picker, wykorzystując nową strategię kompozytowania dodaną do Modifier.graphicsLayer. (I99302)
  • Naprawiliśmy błąd, który powodował migotanie w wersji demonstracyjnej DatePicker (I660bd).
  • Ulepszyliśmy ułatwienia dostępu w przypadku prezentacji selektora daty i czasu w systemie 12-godzinnym (I05e12).
  • Zaktualizowaliśmy nasze demonstracje selektorów daty i godziny, aby zmiany w pliku RSB nie wpływały na selektory, gdy są niewybrane (I4aecb).

Wersja 1.2.0-alpha01

7 grudnia 2022 r.

Element androidx.wear.compose:compose-*:1.2.0-alpha01 został zwolniony. Wersja 1.2.0-alpha01 zawiera te commity.

Nowe funkcje

  • Zaktualizowaliśmy eksperymentalną funkcję placeholdera, aby efekt „wymazywania” był stosowany natychmiast po przygotowaniu treści, zamiast czekać na rozpoczęcie następnej pętli animacji. Wprowadziliśmy też kilka zmian w animacji migotania i wymazywania. (I5a7f4)

Zmiany w interfejsie API

  • Dodaliśmy kompozyt HierarchicalFocusCoordinator, aby umożliwić oznaczanie poddrzew kompozycji jako włączone lub wyłączone w trybie pełnej koncentracji (I827cb).
  • Dodaliśmy nową właściwość, aby zastąpić semantyczną rolę 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 API TimeText. (I1eb7f)
  • Rozszerzyliśmy interfejs Picker API, aby ułatwić dostęp do ekranów z wielokrotnie wyświetlanymi elementami. Dodano nową właściwość userScrollEnabled, która pozwala określić, czy selektor jest aktywny podczas przewijania przez użytkownika. (I3c3aa)

Poprawki błędów

  • Zmieniliśmy domyślną szerokość obramowania OutlinedButton/OutlinedCompactButton z 2 pikseli na 1 piksel, aby dostosować się do ostatecznych specyfikacji interfejsu użytkownika. (Icf84d)
  • Aby zmniejszyć efekt przesuwania się pierwszego elementu dodanego do pustego ScalingLazyColumn, dodaliśmy szacowany autoCentering topPadding, gdy zawartość jest pusta. Ta zmiana oblicza ilość wypełnienia u góry, zakładając, że początkowa wysokość elementu to 0 dp. W przypadku ScalingLazyListAnchorType.ItemStart zostanie obliczone prawidłowe wypełnienie góry, a w przypadku ScalingLazyListAnchorType.ItemCenter obliczenie będzie nieprawidłowe, ponieważ wysokość elementów jest potrzebna do prawidłowego dopasowania rozmiaru zawartości, co powoduje niewielki efekt przewijania na miejsce na podstawie rzeczywistej wysokości elementów (I239a4).
  • Zaktualizowaliśmy tło stosowane w animacji SwipeToDismiss, aby pasowało do platformy Wear. (I9003e)
  • Poprawiono obsługę funkcji PositionIndicator w przypadku funkcji LazyListStateScalingLazyListState w przypadku elementów listy o rozmiarze 0, aby uniknąć błędów dzielenia przez 0.(Ic28dd)

Wersja 1.1

Wersja 1.1.2

8 lutego 2023 r.

Funkcje androidx.wear.compose:compose-foundation:1.1.2, androidx.wear.compose:compose-material:1.1.2androidx.wear.compose:compose-navigation:1.1.2 są dostępne. Wersja 1.1.2 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiliśmy błąd, który powodował niepotrzebne zmiany w komponowaniu w funkcji ScalingLazyListState.centerItemIndex, tak aby aktualizacje były wysyłane tylko wtedy, gdy wartość się zmieniła (Ia9f38).

Wersja 1.1.1

11 stycznia 2023 r.

Funkcje androidx.wear.compose:compose-foundation:1.1.1, androidx.wear.compose:compose-material:1.1.1androidx.wear.compose:compose-navigation:1.1.1 są dostępne. Wersja 1.1.1 zawiera te zatwierdzenia.

Poprawki błędów

  • Zmiana funkcji PlaceholderState.rememberPlaceholderState() na rememberUpdatedState, aby stan się aktualizował, jeśli funkcja lambda onContentReady. (I02635, b/260343754)

Wersja 1.1.0

7 grudnia 2022 r.

Funkcje androidx.wear.compose:compose-foundation:1.1.0, androidx.wear.compose:compose-material:1.1.0androidx.wear.compose:compose-navigation:1.1.0 są dostępne. Wersja 1.1.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.0.0

Nowe funkcje

  • Zaktualizowaliśmy eksperymentalną funkcję placeholdera, aby efekt „wymazywania” był stosowany natychmiast po przygotowaniu treści, zamiast czekać na rozpoczęcie następnej pętli animacji. Wprowadziliśmy też kilka zmian w animacji migotania i wymazywania. (I5a7f4)

Poprawki błędów

  • Zmieniliśmy domyślną szerokość obramowania OutlinedButton/OutlinedCompactButton z 2 pikseli na 1 piksel, aby dostosować się do ostatecznych specyfikacji interfejsu użytkownika. (Icf84d)
  • Aby zmniejszyć efekt przesuwania się pierwszego elementu dodanego do pustego ScalingLazyColumn, dodaliśmy szacowany autoCentering topPadding, gdy zawartość jest pusta. Ta zmiana oblicza ilość wypełnienia u góry, zakładając, że początkowa wysokość elementu wynosi 0 dp. W przypadku ScalingLazyListAnchorType.ItemStart zostanie obliczone prawidłowe wypełnienie góry, a w przypadku ScalingLazyListAnchorType.ItemCenter obliczenie będzie nieprawidłowe, ponieważ wysokość elementów jest potrzebna do prawidłowego dopasowania rozmiaru zawartości, co powoduje niewielki efekt przewijania na miejsce na podstawie rzeczywistej wysokości elementów (I239a4).
  • Zaktualizowaliśmy tło stosowane w animacji SwipeToDismiss, aby pasowało do platformy Wear.(I9003e)
  • Poprawiono obsługę funkcji PositionIndicator w przypadku funkcji LazyListStateScalingLazyListState w przypadku elementów listy o rozmiarze 0, aby uniknąć błędów dzielenia przez 0.(Ic28dd)

Wersja 1.1.0-rc01

9 listopada 2022 r.

Funkcje 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ą dostępne. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

  • Dodaliśmy reguły profilu podstawowego dla Placeholders, ScrollAway, RadioButton, Switch, Checkbox, OutlinedButton, OutlinedCompactButton, OutlinedChipOutlinedCompactChip. (I8249c)
  • Naprawiliśmy błąd w funkcji Modifier.scrollAway, dzięki czemu jeśli podana wartość itemIndex jest nieprawidłowa (np. indeks elementu jest poza zakresem), funkcja TimeText będzie nadal wyświetlana. (I2137a)
  • Zaktualizowaliśmy animację SwipeToDismissBox, aby pasowała do implementacji na platformie. Po początkowej animacji ściskania ekran przesuwa się w prawo, gdy zostanie wywołana funkcja odrzucenia. (I41d34)
  • W ramach optymalizacji zaktualizowaliśmy funkcję Modifier.scrollAway, aby odczytywała tylko wartość scrollState w bloku pomiaru, co pozwoli uniknąć ponownego tworzenia modyfikatora po każdym pomiarze. (I4c6f1)
  • Dodaliśmy dokumentację i przykłady do obiektów zastępczych, aby pokazać prawidłową kolejność Modifier.placeholderModifier.placeholderShimmer w przypadku zastosowania ich do tego samego komponentu. (Ie96f4, b/256583229)
  • Zmieniliśmy domyślną szerokość obramowania OutlinedCompactChip/OutlinedChip z 2 pikseli na 1 piksel, aby dostosować się do ostatecznych specyfikacji interfejsu użytkownika. (Ib3d8e)
  • Naprawiliśmy błąd w rememberPickerState, który powodował, że zaktualizowane dane wejściowe nie były zapisywane, przez co komponenty nie były aktualizowane po zmianie danych wejściowych. (I49ff6, b/255323197)
  • Wprowadziliśmy kilka zmian w interfejsie zastępników: 1) zmieniliśmy gradient migotania na 1, 5 x rozmiar ekranu, 2) dodaliśmy łagodne przejście (cubic bezier) dla migotania i 3) przyspieszyliśmy animację wymazywania (250 ms). (Id29c1)
  • Poprawiliśmy błąd interfejsu użytkownika w przypadku efektu usuwania obiektu zastępczego, w którym tło elementu Elementu i Karty było usuwane nieco za wcześnie, ponieważ nie uwzględniano pozycji komponentu na ekranie. (I2c7cb)
  • Zaktualizowaliśmy rysunek tła w miejscu zastępczym, aby w miarę możliwości łączyć kolory zamiast je układać na warstwach. Dzięki temu zmniejszyliśmy ryzyko, że łączenie przezroczystości różnych przyciętych warstw spowoduje przenikanie kolorów z podległych warstw przez krawędzie tła w miejscu zastępczym. (I2ea26)
  • Poprawiliśmy obliczenie ScalingLazyListState.centerItemIndex/centerItemOffset, aby w przypadku 2 elementów po obu stronach linii środkowej widoku urządzenia mobilnego centerItem był tym, który jest najbliżej. (I30709, b/254257769)
  • Naprawiliśmy błąd w funkcji ScalingLazyListState.layoutInfo.visibleItemsInfo, która raportowała nieprawidłowe przesunięcia podczas inicjalizacji funkcji ScalingLazyColumn. Teraz zwracana jest pusta lista, dopóki wszystkie elementy listy nie będą widoczne i nie będą mieć prawidłowych przesunięć. Sprawdzanie ScalingLazyListState.layoutInfo.visibleItemsInfo.isNotEmpty() potwierdzi, że inicjalizacja ScalingLazyColumn została zakończona i że elementy są widoczne. (I3a3b8)

Wersja 1.1.0-beta01

24 października 2022 r.

Funkcje 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ą dostępne. Wersja 1.1.0-beta01 zawiera te commity.

Co zawiera Compose w wersji 1.1 na Wear OS

Wersja 1.1.0-beta01 biblioteki Compose na Wear OS wskazuje, że ta wersja biblioteki jest kompletna i interfejs API jest zablokowany.

  • Wersja Wear Compose 1.1 zawiera te nowe funkcje:
    • Selektor – ulepszenia dotyczące ułatwień dostępu w selektorze, dzięki którym można poruszać się po ekranach selektora za pomocą czytników ekranu, a opis treści jest dostępny dla osób z niepełnosprawnością
    • Parametr Picker contentDescription jest teraz używany tylko w przypadku wybranej opcji selektora i przyjmuje typ String z możliwością wartości null (w poprzednim commitie konieczne było przekazanie mapowania z opcji do opisu treści, ale używana była tylko wybrana opcja).
    • Elementy selektora są teraz zawsze wyrównane do środka. Rozwiązaliśmy błąd, który powodował, że zmiana wartości gradientRatio na 0 zmieniała wyrównanie.
    • Chip/ToggleChip – zaktualizowaliśmy domyślne gradienty w Chip/ToggleChip, aby dostosować je do najnowszej specyfikacji UX. ChipDefaults.gradientBackgroundChipColors został zaktualizowany, aby zacząć od 50% koloru podstawowego zamiast 32,5%.
    • Chip/ToggleChip – dodano przeciążenia umożliwiające modyfikowanie kształtów elementów
    • Chip/Button/ToggleButton – dodaliśmy nowy styl z obwódką dla elementów typu „elementy do kliknięcia” i przycisków oraz nowe elementy kompozytowe OutlinedChipOutlinedButton, które zapewniają przezroczysty Chip/Button z cienką ramką.
    • Karta – zaktualizowano domyślne gradienty kart, aby dostosować je do najnowszej specyfikacji UX. CardDefaults.cardBackgroundPainter zaczyna się teraz od 30% wartości podstawowej i kończy na 20% wartości onSurfaceVariant (wcześniej było to 20%–10% onSurfaceVariant). ToggleChip.toggleChipColors zmienia się z gradientu liniowego 75% powierzchni na 32,5% powierzchni podstawowej na 0% powierzchni podstawowej na 50% powierzchni.
    • Button/ToggleButton – dodano właściwości umożliwiające modyfikowanie kształtów przycisków.
    • Motyw – zaktualizowano kilka domyślnych kolorów w MaterialTheme, aby ułatwić dostępność. Pierwotne kolory nie miały wystarczającego kontrastu, przez co użytkownicy mieli trudności z odróżnieniem tła elementów sterujących od tła motywu.
    • InlineSlider/Stepper – dodano role przycisków, aby Talkback mogła je rozpoznać jako przyciski.
    • Scaffold – PositionIndicator ma teraz pozycję i rozmiar, które zajmują tylko potrzebną przestrzeń. Jest to przydatne, gdy do obrazu dodawane są informacje semantyczne, ponieważ TalkBack może teraz uzyskać prawidłowe granice PositionIndicator na ekranie.
    • CurvedText/TimeText – dodano Modifier.scrollAway, która przewija element w górę lub w dół, zależnie od stanu przewijania (z przeciążeniami do pracy z funkcjami Column, LazyColumnScalingLazyColumn). ScrollAway jest zwykle używana do przewijania elementu TimeText poza widok, gdy użytkownik zaczyna przewijać listę elementów w górę.
    • CurvedText/TimeText – dodano obsługę właściwości fontFamily, fontStyle i fontSynthesis w CurvedTextStyle, które można stosować w curvedText i basicCurvedText
    • CurvedText/TimeText – do konstruktora i metody kopiowania obiektu CurvedTextStyle dodano fontWeight
    • ToggleControls – dodano animowane przełączniki Checkbox, SwitchRadioButton do użycia z elementami ToggleChipSplitToggleChip. Można ich używać zamiast ikon statycznych udostępnianych przez ToggleChipDefaults (switchIcon, checkboxIconradioIcon).
    • Obiekt zastępczy – dodano eksperymentalną obsługę obiektów zastępczych. Zawiera on 3 różne efekty wizualne, które zostały zaprojektowane tak, aby działać razem.
    • Po pierwsze, efekt pędzla tła zastępczego używany w kontenerach takich jak chipy i karty, aby nakładać go na normalne tło podczas oczekiwania na załadowanie treści.
    • Po drugie, modyfikator (Modifier.placeholder()) do rysowania widżetu zastępczego w kształcie stadionu nad wczytywanymi treściami.
    • Po trzecie, efekt gradientu modyfikującego lub migotania (Modifier.placeholderShimmer()), który jest nakładany na inne efekty, aby poinformować użytkowników, że czekamy na załadowanie danych.
      • Wszystkie te efekty są zsynchronizowane i migają oraz znikają w zaplanowany sposób.
  • Zaktualizowano zależności Compose Core z wersji 1.2 na 1.3

Zmiany w interfejsie API

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

Poprawki błędów

  • curveTextbasicCurvedText będą teraz prawidłowo działać z talkback (mają prawidłowo umieszczony i wymiarowo dopasowany (ale pusty) węzeł interfejsu tworzenia, który używa tekstu jako opisu treści) (I7af7c, b/210721259)
  • Poprawka błędu w Picker, gdy PickerState.repeatedItems = false, aby dodać jawne ustawienie parametrów autoCentering w Pickers wewnętrznym ScalingLazyColumn, aby umożliwić przewijanie opcji zerowej do środka widoku. (I8a4d7)

Wersja 1.1.0-alpha07

5 października 2022 r.

Funkcje 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ą dostępne. Wersja 1.1.0-alpha07 zawiera te commity.

Nowe funkcje

  • Dodaliśmy eksperymentalną obsługę obiektów zastępczych. Zawiera on 3 różne efekty wizualne, które zostały zaprojektowane tak, aby działać razem. Po pierwsze, efekt pędzla tła zastępczego używany w kontenerach takich jak chipy i karty, aby nakładać go na normalne tło podczas oczekiwania na załadowanie treści. Po drugie, modyfikator (Modifier.placeholder()) do rysowania widżetu zastępczego w kształcie stadionu nad wczytywanymi treściami. Po trzecie, efekt gradientu modyfikującego lub migotania (Modifier.placeholderShimmer()), który jest nakładany na inne efekty, aby poinformować użytkowników, że czekamy na załadowanie danych. Wszystkie te efekty są zsynchronizowane i migają oraz znikają w zaplanowany sposób. (I3c339)

Zmiany w interfejsie API

  • Dodano obsługę funkcji fontWeight, fontFamily, fontStyle i fontSynthesis w CurvedTextStyle, które można używać w curvedText i basicCurvedText. Parametry te można wykorzystać do określenia czcionki i stylu, które mają być używane w przypadku wygiętego tekstu.(Iaa1a8),(I72759)
  • Zaktualizowano parametr offset w funkcji Modifier.scrollAway, aby był zgodny z parametrem Modifier.offset (wcześniej był w pikselach). Zoptymalizowano też kod w funkcji LayoutModifier. (I9f94b)
  • W ramach nowego interfejsu API przemianowaliśmy interfejs RadioButton’s circleColor na ringColor. (I28fa9)
  • Dodaliśmy animowane przełączniki Checkbox, SwitchRadioButton do stosowania w przypadku właściwości ToggleChipSplitToggleChip. Można ich używać zamiast statycznych ikon udostępnianych przez ToggleChipDefaults (switchIcon, checkboxIcon i radioIcon). (I8a8c4)

Wersja 1.1.0-alpha06

21 września 2022 r.

Funkcje 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ą dostępne. Wersja 1.1.0-alpha06 zawiera te commity.

Nowe funkcje

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

Poprawki błędów

  • Element PositionIndicator ma teraz odpowiedni rozmiar i położenie, dzięki czemu zajmuje tylko potrzebną przestrzeń. Jest to przydatne, gdy do obrazu dodawane są informacje semantyczne, ponieważ TalkBack może teraz uzyskać prawidłowe granice PositionIndicator na ekranie. (Ie6106, b/244409133)

Wersja 1.1.0-alpha05

7 września 2022 roku

Funkcje 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ą dostępne. Wersja 1.1.0-alpha05 zawiera te commity.

Poprawki błędów

  • Do InlineSliderStepper dodano role przycisków, aby Talkback mógł je rozpoznawać jako przyciski. (Icb46c, b/244260275)
  • Poprawiliśmy kolejność pozycji i wskaźników strony w Scaffold. Wskaźniki będą teraz znajdować się na wierzchu winiety, więc nie będą zasłonięte przez winietę, jeśli taka występuje. (Ib988f, b/244207528)

Wersja 1.1.0-alpha04

24 sierpnia 2022 r.

Funkcje 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ą dostępne. Wersja 1.1.0-alpha04 zawiera te commity.

Zmiany w interfejsie API

  • Zaktualizowaliśmy kilka domyślnych kolorów w MaterialTheme, aby ulepszyć dostępność. Pierwotne kolory nie miały wystarczającego kontrastu, przez co użytkownicy mieli trudności z odróżnieniem tła elementów takich jak elementy sterujące, karty czy przyciski od 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 funkcji ScalingLazyColumn, który mógł powodować, że listy z małą (zazwyczaj dokładnie 2) liczbą elementów nie kończyły inicjalizacji i w konsekwencji były przezroczyste. (504347)

Wersja 1.1.0-alpha03

10 sierpnia 2022 r.

Funkcje 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ą dostępne. Wersja 1.1.0-alpha03 zawiera te commity.

Nowe funkcje

  • Dodaliśmy nowy styl z obrysem dla Chips i Buttons oraz nowe komponenty OutlinedChip i OutlinedButton, które zapewniają przezroczyste Chip/Button z cienką ramką. (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 odpowiadał on specyfikacji UX. Specyfikacja UX wymaga 4 dp odstępu między etykietą a obszarem ikony przełącznika o wymiarach 24 x 24 dp, co daje w sumie 28 dp szerokości. Jednak implementacja nieprawidłowo wyświetla obszar przełącznika 36x24.dp. W efekcie zmniejsza to użyteczną powierzchnię etykiety tekstowej o 8 dp. UWAGA: ta poprawka zapewnia dodatkową przestrzeń na etykietę tekstową, co może pozytywnie wpłynąć na układ tekstu, który się wylewa. Jeśli masz testy zrzutów ekranu, które zawierają ToggleChips, może być konieczne ich zaktualizowanie. (I514c8, b/240548670)

Wersja 1.1.0-alpha02

27 lipca 2022 roku

Funkcje 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ą dostępne. Wersja 1.1.0-alpha02 zawiera te commity.

Nowe funkcje

  • Zmiana zależności Compose na Wear OS z wersji 1.2.0 na 1.3.0-alpha0X w bibliotekach podstawowych Compose

Zmiany w interfejsie API

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

Poprawki błędów

  • Wprowadziliśmy animację widoczności winiety podczas wyświetlania lub ukrywania okna dialogowego, aby była ona spójna z istniejącą animacją skalowania. (Ida33e)
  • Naprawiliśmy błąd, który powodował dzielenie przez 0 podczas przewijania. (I86cb6)
  • Naprawiliśmy błąd w ChipDefaults.childChipColor(), aby wyłączony kolor tła był całkowicie przezroczysty. (I2b3c3, b/238057342)

Wersja 1.1.0-alpha01

29 czerwca 2022 r.

Funkcje 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ą dostępne. Wersja 1.1.0-alpha01 zawiera te commity.

Zmiany w interfejsie API

  • Parametr contentDescription selektora jest teraz używany tylko w przypadku wybranej opcji selektora i przyjmuje typ String z możliwością wartości null (wcześniej konieczne było przekazanie mapowania z opcji do opisu treści, ale używana była tylko wybrana opcja). (Ife6a7)
  • Wprowadziliśmy ułatwienia dostępu w selektorze, aby można było poruszać się po ekranach selektora za pomocą czytników ekranu i aby opis treści był dostępny (I64edb)

Poprawki błędów

  • Zaktualizowaliśmy reguły profilu bazowego w bibliotece Compose na Wear (I9c694).
  • Poprawiliśmy kierunek gradientu w przypadku elementów interfejsu w trybie od prawej do lewej. Domyślny kierunek przesuwania to teraz od prawego górnego do lewego dolnego rogu (wcześniej odwrotnie). (Ic2e77)
  • Zaktualizowaliśmy domyślne gradienty w Chip/ToggleChip/Card, aby dostosować je do najnowszej specyfikacji UX. ChipDefaults.gradientBackgroundChipColors zaczyna się teraz od 50% koloru podstawowego zamiast 32,5%. CardDefaults.cardBackgroundPainter został zaktualizowany, aby zaczynać się od 30% powierzchni podstawowej i kończyć na 20% powierzchni onSurfaceVariant (wcześniej 20% do 10% onSurfaceVariant). ToggleChip.toggleChipColors zmienia się z gradientu liniowego 75% powierzchni na 32,5% powierzchni podstawowej na 0% powierzchni do 50% powierzchni podstawowej. (I43bbd)
  • Dodaliśmy kolor tła (MaterialTheme.color.surface) za elementami Chip/ToggleChips, które mają tło z gradientem, aby były one dobrze widoczne w nieprawdopodobnej sytuacji, gdy tło będzie jasne. (Ibe1a4, b/235937657)
  • Elementy selektora są teraz zawsze wyrównane do środka. Rozwiązaliśmy błąd, który powodował, że po ustawieniu wartości gradientRatio na 0 zmieniało się wyrównanie. (I712b8)

Wersja 1.0

Wersja 1.0.2

7 września 2022 roku

Funkcje androidx.wear.compose:compose-foundation:1.0.2, androidx.wear.compose:compose-material:1.0.2androidx.wear.compose:compose-navigation:1.0.2 są dostępne. Wersja 1.0.2 zawiera te zatwierdzenia.

Poprawki błędów

  • Poprawiliśmy kolejność pozycji i wskaźników strony w Scaffold. Wskaźniki będą teraz znajdować się na wierzchu winiety, więc nie będą zasłonięte przez winietę, jeśli taka występuje. (Ib988f, b/244207528)

Wersja 1.0.1

24 sierpnia 2022 r.

Funkcje androidx.wear.compose:compose-foundation:1.0.1, androidx.wear.compose:compose-material:1.0.1androidx.wear.compose:compose-navigation:1.0.1 są dostępne. Wersja 1.0.1 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiono błąd logiczny w funkcji ScalingLazyColumn, który mógł powodować, że listy z małą (zazwyczaj dokładnie 2) liczbą elementów nie kończyły inicjalizacji i w konsekwencji były przezroczyste. (076c61)

Wersja 1.0.0

27 lipca 2022 roku

Funkcje androidx.wear.compose:compose-foundation:1.0.0, androidx.wear.compose:compose-material:1.0.0androidx.wear.compose:compose-navigation:1.0.0 są dostępne. Wersja 1.0.0 zawiera te zatwierdzenia.

Najważniejsze funkcje wersji 1.0.0

  • To pierwsza stabilna wersja Compose na Wear OS (więcej informacji).
  • Compose na Wear OS opiera się na podstawowych bibliotekach Compose i zawiera dodatkowe komponenty przeznaczone do noszenia, a także, w stosownych przypadkach, alternatywne implementacje podstawowych komponentów Compose dostosowanych do urządzeń do noszenia.
  • Listę najważniejszych komponentów w Compose na Wear OS znajdziesz w informacjach o wersji (Compose na Wear OS Beta01).

Poprawki błędów

  • Wprowadziliśmy animację widoczności winiety podczas wyświetlania lub ukrywania okna dialogowego, aby była ona spójna z istniejącą animacją skalowania. (Ida33e)
  • Naprawiliśmy błąd, który powodował dzielenie przez 0 podczas przewijania. (I86cb6)
  • Naprawiliśmy błąd w ChipDefaults.childChipColor(), aby wyłączony kolor tła był całkowicie przezroczysty. (I2b3c3, b/238057342)

Wersja 1.0.0-rc02

22 czerwca 2022 r.

Funkcje 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ą dostępne. Wersja 1.0.0-rc02 zawiera te zatwierdzenia.

Poprawki błędów

  • Wprowadziliśmy poprawki kierunku gradientu w przypadku kart w trybie od prawej do lewej. Domyślny kierunek przesuwania to od lewego górnego do prawego dolnego rogu, a teraz jest odwrotnie. (Ic2e77)
  • Zaktualizowaliśmy domyślne gradienty Chip/ToggleChip/Card, aby dostosować je do najnowszej specyfikacji UX. ChipDefaults.gradientBackgroundChipColors został zaktualizowany, aby zacząć od 50% koloru podstawowego zamiast 32,5%. Wartość CardDefaults.cardBackgroundPainter została zaktualizowana, aby zaczynała się od 30% wartości podstawowej i kończyła się na 20% wartości onSurfaceVariant (wcześniej było to 20%–10% w SurfaceVariant). ToggleChip.toggleChipColors zmienia się z gradientu liniowego od 75% powierzchni do 32,5% powierzchni podstawowej do 0% powierzchni podstawowej do 50% powierzchni. (I43bbd)
  • Dodaliśmy kolor tła (MaterialTheme.color.surface) za elementami Chip/ToggleChips, które mają tło z gradientem, aby były one dobrze widoczne w nieprawdopodobnej sytuacji, gdy tło będzie jasne. (Ibe1a4, b/235937657)
  • Zaktualizowaliśmy reguły profilu bazowego w bibliotece Compose na Wear (I9c694).

Wersja 1.0.0-rc01

15 czerwca 2022 r.

Funkcje 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ą dostępne. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Interfejsy w bibliotekach compose są teraz tworzone za pomocą domyślnych metod interfejsu JDK 8 (I5bcf1).

Poprawki błędów

  • Usunęliśmy wyraźne odwołanie do fillMaxWidth() w nagłówku listy, ponieważ jest ono zbędne i może powodować problemy, jeśli ScalinglazyColumn zawiera elementy ListHeader()Chip(), ponieważ szerokość będzie się zwiększać lub zmniejszać wraz z przewijaniem elementów ListHeader. (I37144, b/235074035)
  • Naprawiliśmy błąd w ScalingLazyColumn, który powodował, że elementy listy nie były wyświetlane prawidłowo, dopóki nie przewinięto listy, jeśli 0 element listy był wystarczająco duży (w tym wypełnienie) (Ic6159, b/234328517)
  • Wprowadziliśmy niewielką zmianę w ScalingLazyColumn, aby dopasować animację 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 wypełnienie do elementu CompactChip, aby jego rozmiar docelowy do kliknięcia wynosił co najmniej 48 dp, co jest zgodne z wytycznymi dotyczącymi ułatwień dostępu w interfejsie Material. Może to mieć wpływ na układy, w których używasz elementu CompactChips, ponieważ będą one zajmować dodatkowe miejsce. (I3d57c)

Wersja 1.0.0-beta03

1 czerwca 2022 r.

Funkcje 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ą dostępne. Wersja 1.0.0-beta03 zawiera te komitowane zmiany.

Nowe funkcje

  • Funkcja ScalingLazyColumn działa w trybie tworzenia @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, są wyrównane w celu zapewnienia maksymalnej widoczności. Aby wrócić do poprzedniego zestawu zachowań horizontalAlignment = Alignment.Start.(I9ed4b)

Znane problemy

  • Wysokość dotknięcia przycisku CompactChip jest mniejsza niż wymagana w wytycznych dotyczących ułatwień dostępu w Material Design. Naprawimy to w kolejne aktualizacji (15 czerwca). Jeśli używasz elementu CompactChip, wpłynie to na Twoje układy, ponieważ elementy CompactChip będą teraz miały dodatkowy margines u góry i u dołu. Dostosuj i przetestuj układy lub zapoznaj się z komentarzami dotyczącymi błędów, aby dowiedzieć się, jak zachować dotychczasowe działanie. (b/234332135)

Poprawki błędów

  • Nowe demo do animowania dodawania lub usuwania tekstu startowego na TimeText. (I16d75)
  • Dodawanie testów dla HorizontalPageIndicator.PagesState (I64ed0)
  • Aktualizacja TimeText w celu dostosowania go do specyfikacji UX (Ib7ea1)

Wersja 1.0.0-beta02

18 maja 2022 r.

Funkcje 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ą dostępne. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.

Nowe funkcje

  • Selektor zawsze reaguje na zdarzenia przewijania, nawet w trybie tylko do odczytu. Dzięki temu użytkownicy nie muszą najpierw kliknąć selektora, aby móc przewijać. W trybie tylko do odczytu opcje inne niż wybrana są zaciemnione (gradientColor). (I72925)
  • Zmieniliśmy zachowanie interfejsu Chip/ToggleChip/CompactChip/SplitToggleChip, aby domyślnie nie wykonywał on czynności fillMaxWidth. Zamiast tego będą się rozszerzać, aby dopasować się do zawartości. Aby zachować poprzednie działanie, po prostu dodaj modifier = Modifier.fillMaxWidth()(I60a2c, b/232206371).

Poprawki błędów

  • Konstruktor CurvedTextStyle przyjmujący argument TextStyle uwzględnia teraz także parametr fontWeight(może on zostać dodany do konstruktora i metod kopiowania w przyszłych wersjach interfejsu API) (Ieebb9)
  • Ulepszenia dotyczące przesuwania krawędzi. Gdy używasz Modifier.edgeSwipeToDismiss i przesunięcie w lewo jest wywoływane z obszaru krawędzi, nie powoduje już usunięcia po przesunięciu w prawo. Wcześniej można było uruchomić funkcję przesuwania, aby zamknąć, przesuwając palcem w lewo, a potem w prawo (I916ea).
  • HorizontalPageIndicator wyświetla teraz maksymalnie 6 stron na ekranie. Jeśli jest ich więcej niż 6, po lewej lub prawej stronie wyświetla się wskaźnik o połowie wielkości, a strony przechodzą płynnie jedna w drugą (I2ac29).
  • Ulepszone domyślne zachowanie funkcji snap w ScalingLazyColumn i Picker (I49539)
  • Ulepszenia dotyczące przesuwania krawędzi. Gdy używasz Modifier.edgeSwipeToDismiss, funkcja przesuwania w bok, aby zamknąć, jest uruchamiany tylko wtedy, gdy pierwszy dotyk nastąpi na krawędzi i przesunięcie jest w prawo. Wcześniej można było go aktywować, przesuwając palcem w dowolnym miejscu ekranu, jeśli przewijanie docierało do początku.(I8ca2a)

Wersja 1.0.0-beta01

11 maja 2022 roku

Funkcje 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ą dostępne. Wersja 1.0.0-beta01 zawiera te commity.

Co zawiera Compose w wersji 1.0 na Wear OS

Wersja 1.0.0-beta01 biblioteki Compose na Wear OS to ważny kamień milowy, ponieważ biblioteka jest już kompletna, a interfejs API jest zamknięty.

Komponenty Material Design w wersji 1.0 dla Wear Compose:

  • Motyw Material Design – służy jako zamiennik Compose for Mobile MaterialTheme. Zawiera kolory, kształty i typografię do tworzenia komponentów na urządzeniach noszonych, które od razu implementują wytyczne UX w stylu Material Design na Wear.
  • Button, CompactButtonToggleButton – przycisk zawiera 1 miejsce na ikonę, obraz lub krótki tekst (maksymalnie 3 znaki). okrągłe, w zalecanych rozmiarach: domyślnym, dużym lub małym; CompactButton zawiera 1 miejsce na dowolne treści (ikonę, obraz lub tekst) i ma okrągły kształt z bardzo małym tłem. CompactButton ma opcjonalne przezroczyste wypełnienie wokół tła, które zwiększa obszar klikalny. ToggleButton to przycisk, który ma 1 miejsce na dowolne treści (krótki tekst, ikonę lub obraz) i stan włączony/wyłączony (zaznaczony/niezaznaczony) z kolorem i różnymi ikonami, które wskazują, czy jest włączony czy wyłączony.
  • Karty – służą do wyświetlania informacji o aplikacjach, np. powiadomień. Elastyczny projekt do różnych zastosowań z użyciem AppCardTitleCard, który umożliwia tworzenie różnych układów i obsługę obrazów jako zawartości karty lub tła.
  • Elementy typu „chip” – elementy w kształcie stadionu podobne do przycisków, ale o większej powierzchni i z większą liczbą slotów, co umożliwia umieszczanie etykiet, etykiet pomocniczych i ikon. w różnych rozmiarach i z obsługą obrazów jako tła;
  • ToggleChips i SplitToggleChips – element ToggleChips to element z opcją zaznaczania/odznaczania, a SplitToggleChips to element z opcją zaznaczania/odznaczania oraz dodatkowym slotem ToggleControl, w którym można umieścić ikonę, np. przełącznik lub przycisk radiowy, aby pokazać zaznaczony stan komponentu. Dodatkowo SplitToggleChip ma 2 obszary, które można dotykać: jeden klikalny i jeden przełączalny.
  • CircularProgressIndicator – wskaźnik postępu w stylu Material Design z 2 wariantami. Pierwszy z nich wyraża proporcję ukończenia bieżącego zadania i obsługuje przerwę w okresie kołowego między kątami początkowym i końcowym. Drugi wskazuje nieokreślony postęp w nieokreślonym czasie oczekiwania.
  • curvedText – stanowi część języka DSL służącego do opisywania CurvedLayouts (wraz z elementami curvedRowcurvedColumn), aby rozmieszczać komponenty wokół urządzeń o kształcie koła. Więcej informacji o elementach CurvedLayoutCurvedModifier znajdziesz poniżej w sekcji poświęconej komponentom podstawowym Wear. Elementy te pełnią podobną rolę jak modyfikatory w przypadku niekrzywych komponentów i umożliwiają konfigurowanie różnych aspektów układu, wypełnienia, gradientów itp.
  • Dialog, alert i potwierdzenie – dialog wyświetla się na pełnym ekranie, nałożony na inne treści, i umożliwia odrzucenie przez przesunięcie. Zajmuje 1 miejsce i ma zawierać treści w formacie Wear Material, takie jak alert lub potwierdzenie. Alert to treści dialogowe z opiniami z miejscami na ikonę, tytuł i wiadomość. Zawiera ona przeciążenia dla 2 przycisków (ujemnego i dodatniego) wyświetlanych obok siebie lub gniazdo na co najmniej 1 układany pionowo element. Potwierdzenie to treści dialogowe z opinią, które wyświetlają wiadomość przez określony czas. Ma miejsce na ikonę lub obraz (który może być animowany).
  • HorizontalPageIndicator – pokazuje pozycję poziomą strony w sposób odpowiedni dla formatu urządzenia do noszenia. Zaprojektowane tak, aby zajmowały cały ekran i wyświetlały zaokrąglony 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 przezroczystość z motywu Material na Wear. Informacje o klikalnej ikonie znajdziesz w sekcji przycisk lub element.
  • Selektor – wyświetla listę elementów, z których można wybierać. Domyślnie elementy będą powtarzane „nieskończenie” w obu kierunkach. Można wyświetlać w trybie tylko do odczytu, aby ukryć niewybrane opcje.
  • PositionIndicator – służy do wyświetlania pozycji przewijania lub innych wskazań pozycji w sposób odpowiedni dla urządzeń noszonych. Zajmuje cały ekran i pokazuje zaokrąglony wskaźnik na urządzeniach z okrągłym ekranem.
  • Scaffold – implementuje podstawową strukturę układu wizualnego w stylu Material Design na Wear. Ten komponent udostępnia interfejs API, który pozwala połączyć kilka komponentów w ramach Wear Material (takich jak TimeText, PositionIndicatorVignette), aby utworzyć ekran. Zapewnia on odpowiednią strategię układu dla tych komponentów i zbiera niezbędne dane, dzięki którym będą one ze sobą współpracować.
  • ScalingLazyColumn – komponent listy z przewijaniem i powiększeniem/efektem rybiego oka, który stanowi kluczowy element języka Material Design na Wear. Umożliwia skalowanie i dodawanie efektów przezroczystości do 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 wtedy, gdy jest to konieczne.
  • Suwak – pozwala użytkownikom na wybór spośród zakresu wartości. Zakres wyboru jest wyświetlany jako słupek, który może być opcjonalnie wyświetlany z separatorami.
  • Stepper – komponent pełnoekranowy, który umożliwia użytkownikom wybór spośród zakresu wartości za pomocą przycisków zwiększania/zmniejszania u góry i u dołu ekranu. W środku znajduje się pole na tekst lub element.
  • SwipeToDismissBox – obsługuje gest przesuwania w celu zamknięcia. Zajmuje jeden slot na tło (wyświetlany tylko podczas przesuwania) i treści na pierwszym planie. Opcjonalnie można go połączyć z biblioteką nawigacji androidx, używając SwipeDismissableNavHost (patrz poniżej biblioteka nawigacji Compose na Wear).
  • Text – implementacja na Wear komponentu Compose Material Text, która pobiera kolor i wartość alfa z motywu Material na Wear.
  • TimeText – komponent do wyświetlania czasu i stanu aplikacji u góry ekranu. Dostosowuje się do kształtu ekranu, wyświetlając tekst wygięty na okrągłych ekranach.
  • Vignette – element graficzny do użycia w ramce, który zaciera górną i dolną część ekranu, gdy użytkownik korzysta z przewijanych treści.

  • Z komponentów z wersji Wear Compose Foundation są też dostępne te komponenty:

  • CurvedLayout – Wear Foundation CurvedLayout to kompozyt układu, który umieszcza swoje elementy podrzędne w łuku, obracając je w razie potrzeby. Jest to podobne do układu wiersza wygiętego w sekcji pierścienia. Pamiętaj, że zawartość funkcji CurvedLayout nie jest kompozycją funkcji lambda, lecz językiem do zastosowań w danej domenie (DSL). Wszystkie elementy w DSL komponentu CurvedLayout obsługują opcjonalny parametr modyfikatora utworzony z poziomu CurvedModifier.

  • basicCurvedText – element w języku CurvedLayout DSL, basicCurvedText, który pozwala deweloperom na łatwe pisanie wygiętego tekstu zgodnie z krzywizną koła (zwykle na krawędzi okrągłego ekranu). Aby zapewnić najlepszą jakość, basicCurvedText można tworzyć tylko w ramach CurvedLayout. Dotyczy to na przykład określania pozycji i używania CurvedModifiers. Pamiętaj, że w większości przypadków należy użyć elementu curvedText, ponieważ korzysta on z motywu Material.

  • curvedComposable – owija normalne treści kompozycyjne, aby można było ich używać z elementem CurvedLayout. Jeśli curvedComposable zawiera kilka elementów, będą one nakładać się na siebie (jak w przypadku elementu Box). Aby umieścić kilka elementów na krzywej, owiń każdy z nich elementem curvedComposable.

  • curvedRow i curvedColumn – podobnie jak Row i Column, curvedRowcurvedColumn mogą być zagnieżdżone w elementach CurvedLayout, aby w razie potrzeby układać elementy w odpowiedniej kolejności. W przypadku curvedRow można określić kierunek układu kątowego i wyrównanie promieniowe. W przypadku curvedColumn można określić kierunek kątowy i kierunek promieniowy.

  • CurvedModifier – wszystkie komponenty zakrzywione akceptują parametr modyfikatora, który można utworzyć za pomocą CurvedModifier: obsługiwane są opcje background, size, weight i padding.

  • W ramach nawigacji w komponencie na Wear dodano też ten komponent:

  • SwipeDismissableNavHost – zapewnia miejsce w hierarchii Compose, w którym może odbywać się nawigacja samodzielna, z możliwością cofnięcia za pomocą gestów przesuwania. Treści są wyświetlane w ramach SwipeToDismissBox, co wskazuje bieżący poziom nawigacji. Podczas gestu przesunięcia w bok w tle jest widoczny poprzedni poziom nawigacji (jeśli istnieje).

  • Aby dowiedzieć się więcej o tym, co zostało dostarczone, zapoznaj się z informacjami o poprzednich wersjach alfa.

Zmiany w interfejsie API

  • Dodano funkcje CurvedModifier.padding*. Służy do określenia dodatkowej przestrzeni wokół zakrzywionego elementu. (I4dbb4)
  • Usunięto klasę wewnętrzną CompositionLocal (I42490)
  • Dodaliśmy stałe wartości rozmiarów ikon Button, CompactButtonToggleButton jako wskazówki. (I57cab)
  • Dodaj parametr enabled do elementów AppCardTitleCard. Teraz mają interfejs API podobny do androidx.compose.materialCards. Jeśli parametr ma wartość Fałsz, karty nie będzie można kliknąć. (Idc48d, b/228869805)

Poprawki błędów

  • Po osiągnięciu dolnego lub górnego limitu suwak wyłącza przyciski zmniejszania i zwiększania (i zastosuje ContentAlpha.disabled do iconColor) (I4be9f)
  • Dodaliśmy 1 dp odstępu wokół elementów selektora, gdy są one rysowane z gradientem, aby zapobiec drżeniu tekstu podczas przesuwania. (I0b7b9)
  • Dodaj testy zrzutów ekranu dla PositionIndicator (I5e8bc)
  • Dodaj więcej testów dla AppCard i TitleCard (I85391, b/228869805)

Wersja 1.0.0-alpha21

20 kwietnia 2022 r.

Funkcje 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ą dostępne. Wersja 1.0.0-alpha21 zawiera te commity.

Nowe funkcje

  • Dodaliśmy nowe modyfikatory krzywych, aby określić tło elementu krzywego: CurvedModifier.background, .radialGradientBackground i .angularGradientBackground (I8f392)
  • Umożliwia określenie trybu przepełnienia krzywizny tekstu (przycięty/kropka wielokropka/widoczny). (I8e7aa)
  • Dodano modyfikator CurvedModifier.weight podobny do tego w sekcji „Tworzenie”. Można go używać w przypadku elementów podrzędnych curvedRow i CurvedLayout (w przypadku szerokości) oraz elementów podrzędnych curvedColumn (w przypadku wysokości). (I8abbd)
  • Dodano modyfikatory CurvedModifier.size, .angularSize.radialSize, aby określić rozmiar elementu zakrzywionego. (I623c7)

Zmiany w interfejsie API

  • Zmień kolejność parametrów, aby zapewnić spójność w przypadku parametrów tła i kolorów w interfejsie Compose API na Wear (I43208)
  • Usunięto parametry clockwise & insideOut i zastąpiono je bardziej precyzyjnymi stałymi w przypadku nowych klas. Kierunek wygiętego układu może teraz uwzględniać LayoutDirection, a jeśli nie zostanie określony, jest dziedziczony (If0e6a)
  • Aby rozwiązać problem z interfejsem API w usłudze ScalingLazyColumn, zastąpiliśmy interfejs autoCenter: Boolean interfejsem autoCenter: AutoCentringParams. (Ia9c90)
  • W całym interfejsie API (elementy typu Chip/ToggleChip/Dialog/Slider/Stepper itp.) zmieniliśmy nazwy elementów iconTintColortoggleControlTintColor na iconColortoggleControlColor, ponieważ kolor jest stosowany w przypadku ikony lub elementu typu toggleControl. (Ied238)
  • Przepisanie typu wyliczeniowego PageIndicatorStyle na klasę wartości (I2dc72)
  • Dodaliśmy RowScope/ColumnScope/BoxScope do niektórych slotów w naszych komponentach, aby poinformować deweloperów o założeniach dotyczących układów. Umożliwi to deweloperom używanie dodatkowych modyfikatorów w przypadku niektórych treści w miejscu reklamy i uniknięcie konieczności dodawania dodatkowych elementów układu. Dodatkowo wprowadziliśmy drobne zmiany w kolorach kart aplikacji i kart tytułowych, tak aby domyślnie timeColorappColor miały kolor contentColor. W razie potrzeby wszystkie te właściwości można zastąpić indywidualnie. (I26b59)
  • obiekt SwipeToDismissBoxState.Companion został oznaczony jako prywatny (I39e84);
  • Popraw kolejność parametrów InlineSliderStepper. Prosta zmiana zgodna z wytycznymi dotyczącymi interfejsu API (I11fec)
  • Usunęliśmy obiekt oszczędzania danych dla SwipeToDismissBoxState, ponieważ nie był używany. (Ifb54e)
  • Zaktualizowaliśmy CompactChip, aby był zgodny z najnowszą specyfikacją UX. Odstęp został zmniejszony do 12 dp w poziomie i 0 dp w pionie. Czcionka etykiety została zmieniona z przycisku na caption1. Zalecane rozmiary ikony to 20 x 20 pikseli, gdy obecne są zarówno ikona, jak i etykieta, oraz 24 x 24 piksele w przypadku tylko ikony. W przypadku użycia tylko ikony upewniliśmy się też, że jest ona wyśrodkowana. (Iea2be)
  • Dodaliśmy do ScalingLazyListLayoutInfo kilka nowych pól, aby umożliwić deweloperom poznanie zastosowanych wartości contentPaddingautoCenteringPadding. Mogą być one przydatne deweloperom przy obliczaniu przewijania/przesuwania (I7577b).
  • Wprowadziliśmy przejścia do i z dialogu. Dodano parametr showDialog, dzięki któremu Dialog może kontrolować własną widoczność (umożliwia to odtwarzanie przez Dialog animacji wstępu i outro, gdy Dialog jest widoczny lub ukryty). Pamiętaj, że animacja outro nie jest wykonywana, gdy użytkownik zamyka okno za pomocą gestu przesunięcia. Dodaliśmy też domyślną wartość stanu w niedawno dodanej funkcji SwipeToDismissBox. (I682a0)
  • Aby lepiej obsługiwać i18n i a11y, zmieniliśmy elementy ToggleChipSplitToggleChip, tak aby nie miały już domyślnej wartości w miejscu toggleControl. Zmieniliśmy też ToggleChipDefaults, aby podawane przez te metody wartości były typu ImageVector, a nie Icon (ponieważ nie zwracają już @Composables, zmieniliśmy je na wartości zaczynające się od małych liter), SwitchIcon()->switchIcon(), CheckboxIcon->checkboxIcon()RadioIcon()->radioIcon(). Pozwala to deweloperom tworzyć własne komponenty Icon() z odpowiednim zestawem contentDescription. (I5bb5b)
  • Dodaliśmy parametr SwipeDismissableNavHostState do SwipeDismissableNavHost. Umożliwia to używanie przesuwania palcem po krawędzi na ekranach używanych jako miejsca docelowe nawigacji, ponieważ SwipeToDismissBoxState może teraz być podnoszone i używane do inicjowania zarówno SwipeDismissableNavHostState, jak i Modifier.edgeSwipeToDismiss na ekranach, które wymagają przesuwania po krawędzi. (I819f5, b/228336555)

Poprawki błędów

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

Wersja 1.0.0-alpha20

6 kwietnia 2022 roku

Funkcje 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ą dostępne. Wersja 1.0.0-alpha20 zawiera te commity.

Nowe funkcje

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

Zmiany w interfejsie API

  • Podstawowa implementacja CurvedModifiers otwiera drogę do wprowadzenia sposobów dostosowywania krzywych treści (ale CurvedModifiers nie są jeszcze dostępne, a możliwość tworzenia niestandardowych modyfikatorów może być dostępna w przyszłości) (I9b8df)
  • Zaktualizowano dokumentację i wartości domyślne modyfikatora EdgeSwipe, aby ułatwić jego zrozumienie (I6d00d).
  • Dodaj slot PageIndicator do Scaffold. Dodanie PageIndicator bezpośrednio do Scaffold zapewni prawidłowe wyświetlanie na urządzeniach z ekranem okrągłym. (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 dostępności. Domyślne ikony zostały użyte w prezentacjach i próbkach. (I7e6fd)
  • Zastępowanie nazw parametrów końcowych i wstępnych parametrami Start i End w elementach TimeText (Iaac32)
  • Dodaliśmy funkcję SwipeToDismissBox z parametrem onDismissed, aby umożliwić częste wywoływanie zdarzenia nawigacji po zakończeniu przesuwania. (I50353, b/226565726)
  • Usunięto adnotacje ExperimentalWearMaterialApi z elementu TimeText (Ide520)
  • Oznaczyliśmy interfejsy zakresu i informacji ScalingLazyList/Column jako zamknięte, ponieważ nie są one przeznaczone do implementacji przez zewnętrznych deweloperów. Pozwoli nam to w przyszłości dodawać do nich nowych członków bez wprowadzania zmian w plikach binarnych. (I7d99f)
  • Dodaliśmy do selektora nową właściwość flingBehaviour i metodę PickerDefaults.flingBehaviour(), aby umożliwić konfigurowanie zachowania gestu przesunięcia, na przykład dodanie obsługi RSB. PickerState korzysta teraz z interfejsu ScrollableState. (Ib89c7)

Poprawki błędów

  • Zaktualizuj reguły profilu bazowego środowiska wykonawczego Androida (ART) dla bibliotek Compose na Wear. ART może wykorzystywać reguły profilu na urządzeniach, aby z wyprzedzeniem skompilować określony podzbiór aplikacji i w ten sposób zwiększyć jej wydajność. Pamiętaj, że nie będzie to miało wpływu na aplikacje z możliwością debugowania. (Iaa8ef)
  • Ulepszona dokumentacja (I2c051)

Wersja 1.0.0-alpha19

23 marca 2022 r.

Funkcje 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ą dostępne. Wersja 1.0.0-alpha19 zawiera te commity.

Zmiany w interfejsie API

  • Zmieniliśmy nazwę CurvedRow na CurvedLayout i przekształciliśmy ją w zakres z DSL. Za pomocą tego języka można określać bardziej złożone wygięte układy za pomocą serii zagnieżdżonych elementów curvedRowcurvedColumn (które są odpowiednikami elementów wiersza i kolumny w wygiętym układzie). W tych elementach układu można używać 3 elementów: curvedComposable (dodawanie dowolnego elementu @Composable), basicCurvedText (zaokrąglony tekst w fundamentach) i curvedText (zaokrąglony tekst uwzględniający materiał Wear). (Ib776a)
  • Umożliw konfigurowanie strony PositionIndicator. Podstawową pozycję PositionIndicator można teraz skonfigurować jako End (zorientowaną na kierunek układu), OppositeRsb (uwzględniającą obrót ekranu, aby ustawić się naprzeciwko fizycznego przycisku RSB) lub Left & Right (zorientowaną na pozycję bezwzględną). (I2f1f3)
  • W przypadku wersji SwipeToDismissBox zmieniliśmy nazwę pliku SwipeDismissTarget.Original na SwipeToDismissValue.Default, a SwipeDismissTarget.Dismissal na SwipeToDismissValue.Dismissed. Przemieściliśmy też SwipeToDismissBoxDefaults.BackgroundKeySwipeToDismissBoxDefaults.ContentKey odpowiednio do SwipeToDismissKeys.BackgroundSwipeToDismissKeys.Content. (I47a36)
  • Dodaliśmy tryb tylko do odczytu w selektorze na potrzeby ekranów z kilkoma selektorami, na których można edytować tylko jeden selektor naraz. Gdy selektor jest tylko do odczytu, wyświetla aktualnie wybraną opcję i etykietę, jeśli została podana. (I879de)
  • Usługa SwipeToDismissBoxState została przebudowana, aby ograniczyć zakres usługi ExperimentalWearMaterialApi do usług Modifier.swipeable i SwipeableState, które są teraz używane wewnętrznie. Usługa SwipeToDismissBoxState obsługuje teraz użytkowników z poziomów currentValue, targetValue, isAnimationRunningsnapTo, aby obsługiwać typowe przypadki użycia. Daj nam znać, jeśli chcesz, abyśmy udostępnili dodatkowe poziomy. Poprawiliśmy też działanie funkcji SwipeableState w przypadku, gdy przesunięcie przesunięcia mieści się w błędach zaokrągleń w przypadku punktu zakotwiczonego. (I58302)

Poprawki błędów

  • Uproszczony i naprawiony kod służący do wykrywania, czy można przewijać zawartość ScalingLazyColumn (używany do podejmowania decyzji, czy wyświetlić pasek przewijania) (I7bce0)
  • Usunęliśmy błąd wskaźnika pozycji, który występował podczas używania więcej niż jednego stanu i przełączania się między nimi (I320b5).
  • Zaktualizowaliśmy domyślną typografię/czcionki motywu aplikacji Compose na Wear OS, aby była zgodna z najwcześniejszymi wskazówkami dotyczącymi UX. Wartości display1 (40.sp) i display2 (34.sp) są teraz mniejsze niż ich poprzednie wartości. Wprowadziliśmy też kilka drobnych zmian wysokości i interlinii. (Ie3077)
  • Dodaliśmy opór do SwipeToDismissBox, aby ruch odbywał się tylko podczas przesuwania w celu zamknięcia, a nie w ogóle w przeciwnym kierunku. (Ifdfb9)
  • Zmieniliśmy niektóre domyślne wartości parametrów funkcji CircularProgressIndicator, aby były zgodne ze wskazówkami dotyczącymi interfejsu użytkownika w ramach Material Design na Wear OS. W wersji spinnera/nieokreślonego zaktualizowano rozmiar (40 >24 dp), kolor wskaźnika (primary->onBackground), przezroczystość koloru ścieżki (30%->10%) i szerokość obrysu (4 >3 dp). W wersji z wskaźnikiem postępu lub wskaźnikiem określania przejrzystość koloru ścieżki (30% >10%) została zaktualizowana. (I659cc)
  • Zaktualizowaliśmy domyślne parametry skalowania ScalingLazyColumn zgodnie z najnowszymi specyfikacjami interfejsu użytkownika Material Design na Wear. W efekcie elementy listy zaczynają być skalowane bliżej środka listy, ale mniej niż wcześniej przy krawędzi. (Ica8f3)
  • Niektóre korekty w ScalingLazyColumnDefaults.snapFlingBehavior, aby ulepszyć koniec animacji (If3260)

Wersja 1.0.0-alpha18

9 marca 2022 r.

Funkcje 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ą dostępne. Wersja 1.0.0-alpha18 zawiera te commity.

Zmiany w interfejsie API

  • Kilka ulepszeń funkcji PositionIndicator: ShowResult zmieniono na PositionIndicatorVisibility. Niektóre ulepszenia wydajności, aby uniknąć ponownych obliczeń, gdy nie są potrzebne (Iaed9d)
  • Zalecana kolorystyka dla SplitToggleChip została zaktualizowana. Elementy typu SplitToggleChip mają teraz jednolite tło, gdy są zaznaczone lub niezaznaczone. Kolor elementu ToggleControl jest głównym wskaźnikiem tego, czy komponent jest zaznaczony. Dodaliśmy nową opcję ToggleDefaults.splitToggleChipColors(), aby umożliwić korzystanie z nowego schematu kolorów. Uprościliśmy też metody toggleChipColors(), usuwając parametr splitBackgroundOverlayColor (I7e66e).
  • Do atrybutu ScalingLazyListItemInfo dodaliśmy atrybut unadjustedSize, ponieważ ze względu na precyzję obliczeń typu float nie jest bezpieczne obliczanie oryginalnego rozmiaru produktu za pomocą skalowanego rozmiaru i współczynnika skalowania. (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 ma być on wizualnie przedstawiany. (Iac898)
  • Zaktualizowaliśmy element PickerState, aby można było zaktualizować element numberOfOptions. Umożliwia to obsługę takich przypadków użycia 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 pasek przewijania i nie można przewijać. (Id0a7f)
  • W trosce o spójność z Scaffold nasz komponent Dialog na pełnym ekranie wyświetla teraz PositionIndicatorVignette. Zamiast Column używamy teraz ScalingLazyColumn, co oznacza, że zawartość dialogu jest teraz w ScalingLazyListScope (i zwykle musi być ujęta w element { /* content */ }). Dialog obsługuje odpowiednio parametr verticalArrangement. (Idea13)
  • Zmieniliśmy nazwę właściwości ToggleChipSplitToggleChip toggleIcon na toggleControl, aby lepiej dostosować ją do projektu Material Design. Ma to ułatwić projektantom i programistom poruszanie się po interfejsie API. (If5921, b/220129803)
  • Dodaliśmy nowy wpis caption3 do Typologii motywów Material na Wear.Caption3 to mała czcionka używana do bardzo długich tekstów, takich jak teksty prawne. (I74b13, b/220128356)

Poprawki błędów

  • Zatrzymaj animację przyciągania. (Idb69d)
  • Animowanie zmian w elementach PositionIndicator. (I94cb9)
  • Na podstawie opinii dotyczących interfejsu użytkownika i doświadczeń użytkownika zmieniliśmy automatyczne wyśrodkowywanie ScalingLazyColumn, tak aby zajmowało tylko tyle miejsca, aby elementy o indeksie ScalingLazyListState.initialCenterItemIndex lub wyższym można było w pełni przewinąć do środka widoku. Umożliwia to programistom umieszczenie 1 lub 2 elementów dotyczących danego elementu na środku, które nie mogą być przewijane. Oznacza to, że automatyczne wyśrodkowywanie ScalingLazyColumn nie będzie mogło przewijać powyżej initialCenterItemIndex/initialCenterItemScrollOffset (I22ee2)
  • Dodaliśmy demonstrację selektora daty i naprawiliśmy błąd w elementach PickerState, w których opcja initiallySelectedOption nie była stosowana, dopóki nie wyświetlono selektora. (Id0d7e)
  • Aby zmniejszyć przycinanie szerszych elementów ScalingLazyColumn na ekranach okrągłych, zwiększyliśmy domyślny poziomy margines treści z 8 na 10 dp. (I0d609)
  • Upewnij się, że PositionIndicator jest widoczne podczas przewijania. (Ied9a2)

Wersja 1.0.0-alpha17

23 lutego 2022 r.

Funkcje 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ą dostępne. Wersja 1.0.0-alpha17 zawiera te commity.

Nowe funkcje

  • Dodaliśmy obsługę przypinania, która może być używana w przypadku ScalingLazyColumn. Ustaw flingBehavior = ScalingLazyColumnDefaults.flingWithSnapBehavior(state), aby włączyć obsługę przypinania. (I068d3, b/217377069)
  • Dodaliśmy demonstracje selektora służącego do wybierania czasu w systemie 24-godzinnym lub 12-godzinnym. (Ie5552)

Zmiany w interfejsie API

  • Rozwiązanie problemu z niestandardowymi czcionkami i stylami TimeText na urządzeniach kwadratowych (Iea76e)
  • Obiekt ScalingLazyListLayoutInfo ma teraz właściwości reverseLayout, viewportSize i orientation odpowiadające właściwościom obiektu LazyListLayoutInfo (I4f258, b/217917020)
  • Użytkownik ScalingLazyColumn ma teraz właściwość userScrollEnabled, która pasuje do właściwości użytkownika LazyList (I164d0, b/217912513).
  • Selektory mają teraz domyślnie gradient u góry i u dołu (Iab92a)

Poprawki błędów

  • Zmieniliśmy ScalingLazyColumn, aby nie zajmował całej przestrzeni w swoim elemencie nadrzędnym. Zamiast tego będzie ono mieć rozmiar odpowiadający rozmiarowi zawartości. Dzięki temu jest ona zgodna z działaniem funkcji LazyColumn. Jeśli chcesz przywrócić poprzednie działanie, prześlij Modifier.fillMaxWidth()/width()/widthIn() do ScalingLazyColumn (I51bf8).
  • Ulepszyliśmy komunikat o wyjątkach w funkcji SwipeDismissableNavHost.kt, który był wywoływany, gdy stos nawigacji był pusty. (I1b1dc)

Wersja 1.0.0-alpha16

9 lutego 2022 r.

Funkcje 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ą dostępne. Wersja 1.0.0-alpha16 zawiera te commity.

Nowe funkcje

  • Dodaj CircularProgressIndicator. Wskaźniki postępu wskazują czas trwania procesu lub nieokreślony czas oczekiwania. Obsługuje przerwę (wycięcie) dla TimeText lub innych komponentów, jeśli są używane w trybie pełnoekranowym. (Iab8da)

Zmiany w interfejsie API

  • Selektory mają teraz parametr flingBehavior. Wartość domyślna sprawia, że podczas przewijania lub przeciągania selektory przyklejają się do najbliższej opcji. (I09000)
  • Dodatkowy interfejs API typu integer do Slidera i Steppera (I1b5d6)

Poprawki błędów

  • Domyślny initialCenterItemIndex dla ScalingLazyListState zmieniliśmy z 0 na 1. Oznacza to, że jeśli nie zostanie zastąpiony podczas tworzenia stanu za pomocą ScalingLazyListState.rememberScalingLazyListState(initialCenterItemIndex =), 2 element listy (index == 1) zostanie umieszczony na środku widoku podczas inicjalizacji, a 1 element (index == 0) – przed nim. Dzięki temu można uzyskać lepszy domyślny efekt wizualny, ponieważ większość widocznego obszaru będzie wypełniona elementami listy. (I0c623, b/217344252)
  • Zmniejszyliśmy domyślną wartość parametru ScalingLazyColumn z 10% do 5%, aby zapewnić wystarczającą liczbę elementów listy do wyświetlenia (nawet jeśli niektóre z nich są zmniejszane).extraPadding Dzięki temu unikniesz tworzenia dodatkowych elementów listy, które mogą nie być widoczne w obszarze widoku. Jeśli używane są niestandardowe parametry skalowania (np. bardziej ekstremalne skalowanie), deweloper może dostosować dodatkowy margines za pomocą viewportVerticalOffsetResolver. (I76be4)
  • Rozwiązanie problemu z tekstem czasu na kilku wierszach na urządzeniu kwadratowym (Ibd3fb)
  • Zmieniliśmy ScalingLazyColumn, aby nie zajmował całej przestrzeni w swoim elemencie nadrzędnym. Zamiast tego będzie ono mieć rozmiar odpowiadający rozmiarowi zawartości. Dzięki temu jest ona zgodna z działaniem LazyColumn. Jeśli chcesz przywrócić poprzednie działanie, ustaw Modifier.fillMaxSize() na ScalingLazyColumn. UWAGA: ta zmiana jest niepełna i zostanie uwzględniona w następnej wersji Alpha. (I3cbfa)

Wersja 1.0.0-alpha15

26 stycznia 2022 r.

Funkcje 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ą dostępne. Wersja 1.0.0-alpha15 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Do usługi ScalingLazyColumn dodaliśmy nową właściwość autoCentering. Gdy ta opcja jest ustawiona na wartość Prawda (wartość domyślna), wszystkie elementy, w tym pierwszy i ostatni, można przewijać, aby były widoczne w środku widoku listy. Pamiętaj, że jeśli używasz automatycznego wyrównywania do środka, warto ustawić pionowy margines treści na 0 dp. Jeśli ustawisz automatyczne wyśrodkowanie i dodatk do treści w pionowej, to spowoduje to, że przed pierwszym i po ostatnim elemencie listy będzie dostępna dodatkowa przestrzeń, co pozwoli na przewijanie jeszcze dalej. (I2a282, b/214922490)
  • Dodaliśmy komponent Dialog, który umożliwia dowolnemu komponentowi wywołanie pełnoekranowego okna dialogowego, które wyświetla się na wierzchu innych treści. Gdy dialog jest wyświetlany, można go zamknąć przez przesunięcie palcem. Podczas tego gestu będzie widoczna zawartość elementu nadrzędnego. Treść dialogu powinna być Alert lub Confirmation (przemianowane z wcześniejszych komponentów AlertDialogConfirmationDialog) – komponenty 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ż parametr zakresu kolumny do parametrów alertu i potwierdzenia. (Ia9014)
  • Usunęliśmy kolor onSurfaceVariant2 z komponentu Compose na WearOS w Material Theme Colors i zastąpiliśmy jego użycie w bibliotece kolorem onSurfaceVariant. (Icd592)
  • Dodano metodę umożliwiającą wybór opcji w PickerState za pomocą kodu. Opcję wybraną na początku można teraz również określić podczas tworzenia PickerState. (I92bdf)
  • Dodaliśmy obsługę dostosowywania zachowania ScalingLazyColumn. (I1ad2e, b/208842968)
  • Dodaliśmy NavController.currentBackStackEntryAsState() do biblioteki Wear.Compose.Navigation. (If9028, b/212739653)
  • Dodano Modifier.onRotaryScrollEvent()Modifier.onPreRotaryScrollEvent() na urządzeniach Wear z obrotnym przyciskiem bocznym.(I18bf5, b/210748686)

Wersja 1.0.0-alpha14

12 stycznia 2022 r.

Funkcje 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ą dostępne. Wersja 1.0.0-alpha14 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy do klasy ScalingLazyListState kilka metod, aby umożliwić deweloperom kontrolowanie przewijania do określonych elementów listy oraz ustawianie początkowego elementu listy i przesunięcia.

    W ramach tej zmiany zmodyfikowaliśmy też komponent ScalingLazyList, tak aby był on zorientowany wokół środka obszaru widocznego komponentu ScalingLazyList, a nie początku obszaru widocznego.

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

    W rezultacie wartości ScalingLazyListItemInfo.offsetScalingLazyListItemInfo.adjustedOffset uległy zmianie i odzwierciedlają teraz przesunięcie elementu względem pozycji elementu na liście i anchorType listy. Na przykład w przypadku ScalingLazyColumnanchorType = ItemCenter i elementu listy umieszczonego na środku osi widoku offset wynosi 0.

    Nowe metody to scrollTo, animatedScrollTo, centerItemIndexcenterItemOffset. (I61b61)

  • Do SwipeDismissableNavHost dodaliśmy obsługę przycisku Wstecz, aby po jego naciśnięciu można było przejść do poprzedniego poziomu w hierarchii nawigacji. (I5b086, b/210205624)

Wersja 1.0.0-alpha13

15 grudnia 2021 roku

Funkcje 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ą dostępne. Wersja 1.0.0-alpha13 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Użytkownik RangeIcons został przeniesiony do wewnętrznego katalogu (wewnętrzne odwołania do niego to InlineSliderStepper). (I927ec)

Poprawki błędów

  • Rozwiązanie problemu polegającego na tym, że SwipeDismissableNavHost dodawał miejsce docelowe do hierarchii Compose, zanim osiągnął stan cyklu życia CREATED, co powodowało błąd IllegalStateException. Ta poprawka była warunkiem wstępnym do aktualizacji zależności od wersji navigation-compose do wersji 2.4.0-beta02 i późniejszych. (I40a2b, b/207328687)

  • Dodano klasę typu enum Drawables do pobierania zasobów drawable w bibliotece Wear Compose, dzięki czemu nie jest już potrzebna refleksja. Naprawiono błąd, który powodował usuwanie obiektów do rysowania z biblioteki podczas minifyEnabled=true lub shrinkResources=true. (Ib2a98)

  • Dodano testy Stepper w komponencie Wear Compose (I2d03a).

  • Dodaliśmy przykłady SwipeDismissableNavHost w ramach nawigacji w Compose na Wear. (I85f06)

Wersja 1.0.0-alpha12

1 grudnia 2021 r.

Funkcje 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ą dostępne. Wersja 1.0.0-alpha12 zawiera te commity.

Nowe funkcje

  • Dodaliśmy komponent Stepper, który pozwala użytkownikom wybierać spośród zakresu wartości. Regulator to kontrola na pełnym ekranie z przyciskami zwiększania i zmniejszania u góry i u dołu oraz gniazdem pośrodku (ma zawierać element Chip lub element Tekst). W razie potrzeby ikony przycisków można dostosować. (I625fe)

  • Dodaliśmy 2 nowe komponenty do wyświetlania dialogów: AlertDialog czeka na odpowiedź użytkownika i wyświetla tytuł, ikonę, wiadomość oraz: a) 2 przyciski umożliwiające proste wybory pozytywne/negatywne lub b) ułożone pionowo elementy lub przełączniki umożliwiające bardziej elastyczne wybory. ConfirmationDialog wyświetla potwierdzenie z czasem oczekiwania. To proste okno zawiera miejsca na tytuł i (animowaną) ikonę. (Ic2cf8)

Zmiany w interfejsie API

  • Do sugerowanych wartości czasu trwania dialogu dodaj jednostki (ms). (I09b48)

Wersja 1.0.0-alpha11

17 listopada 2021 r.

Funkcje 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ą dostępne. Wersja 1.0.0-alpha11 zawiera te commity.

Nowe funkcje

  • Dodaliśmy komponent selektora, który umożliwia użytkownikowi wybranie elementu z przewijanej listy. Domyślnie lista elementów do wyboru jest powtarzana „nieskończenie” w obu kierunkach, aby stworzyć wrażenie obracającego się walca widzianego z boku. W kolejnych wersjach dodamy 2 funkcje: zablokowanie wartości po przesunięciu palcem lub przeciągnięciu palcem; dodanie do PickerState funkcji, która umożliwia ustawienie lub przewinięcie do bieżącej wartości. (I6461b)

Zmiany w interfejsie API

  • Dodano zakres elementów o zmiennym rozmiarze i kilka nowych modyfikatorów fillParentMaxSize/fillParentMaxWidth/fillParentMaxHeight, aby umożliwić dostosowanie rozmiaru elementów listy do rozmiaru kontenera nadrzędnego. Elementy mogą wypełniać cały rozmiar elementu nadrzędnego lub jego część. Udostępnia to funkcje dostępne już w LazyRow/Column (I4612f).
  • Dodaliśmy obsługę 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.

Funkcje 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ą dostępne. Wersja 1.0.0-alpha10 zawiera te commity.

Nowe funkcje

  • Dodano suwak w komponowaniu na zegarku. Suwak w linii umożliwia użytkownikom wybór spośród zakresu wartości. Zakres opcji jest wyświetlany jako pasek między minimalną a maksymalną wartością zakresu, z którego użytkownicy mogą wybrać jedną wartość. (If0148)

  • Poznaj nowe Compose w ramach Codelab dla Wear OS.

Zmiany w interfejsie API

  • Makrobenchmark ma teraz minSdkVersion 23. (If2655)

Poprawki błędów

  • Aktualizacja obsługi przejść w SwipeDismissableNavHost w SideEffect (I04994, b/202863359)
  • Zaktualizuj obsługę przejścia w SwipeDismissableNavHost (I1cbe0, b/202863359)

Wersja 1.0.0-alpha09

27 października 2021 roku

Funkcje 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ą dostępne. Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.

Nowe funkcje

  • Wprowadziliśmy wersję dla deweloperów Compose na Wear OS. W poście na blogu znajdziesz omówienie głównych komponentów oraz linki do dodatkowych materiałów, które pomogą Ci zacząć z nich korzystać.

Zmiany w interfejsie API

  • Dodaliśmy obsługę, aby umożliwić deweloperom dostosowywanie wszystkich kolorów w ramach motywu kolorów w interfejsie Material Design na Wear. (I4759b, b/199754668)

Poprawki błędów

  • Dodano przykłady SwipeToDismissBox, które zachowują stan (Ibaffe)
  • Dodaliśmy linki do przewodników z KDocs na stronie developer.android.com dotyczących komponentów CurvedText, TimeText i SwipeToDismissBox. (I399d4)
  • SwipeDismissableNavHost zgłasza błąd, jeśli nie ma bieżącego miejsca docelowego (co oznacza, że NavGraph nie został utworzony za pomocą funkcji użyteczności wear.compose.navigation.composable). (I91403)
  • Dodano dodatkową dokumentację i przykłady użycia źródła czasu w elementach TimeText (I4f6f0).

Wersja 1.0.0-alpha08

13 października 2021 r.

Funkcje 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ą dostępne. Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.

Zmiany w interfejsie API

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

Poprawki błędów

  • Dodano linki do poradników na stronie developer.android.com dotyczących przycisków, kart, elementów mapy, motywów, wskaźników pozycji i komponentów kolumny z opóźnionym wczytywaniem z KDocs. (I22428)
  • Naprawiono błąd w WearOS, który powodował, że pole SwipeToDismissBox nie reagowało na gest przesunięcia. (I9387e)
  • Dodano przykłady przycisku, przycisku kompaktowego, elementu Chip, elementu CompactChip, karty aplikacji, karty tytułu, przycisku przełącznika, elementu ToggleChip i elementu SplitToggleChip (Iddc15).
  • Dodano testy wydajności mikrobenchmarków dla komponentów: Card, Chip, ToggleChip, TimeText i ScalingLazyColumn. (If2fe9)

Wersja 1.0.0-alpha07

29 września 2021 r.

Funkcje 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ą dostępne. Wersja 1.0.0-alpha07 zawiera te commity.

Nowe funkcje

  • Dodano w materialu komponent CurvedText, który pozwala deweloperom na łatwe pisanie krzywego tekstu zgodnie z krzywizną koła (zwykle na krawędzi okrągłego ekranu). (I19593)

Zmiany w interfejsie API

  • Dodano testy dotyczące elementu TimeText (Idfead).
  • Przekształcanie wartości ArcPaddingValues w interfejsie. (Iecd4c)
  • Dodano animację do pola SwipeToDismissBox (I9ad1b).
  • Do interfejsu API SwipeToDismissBox dodaliśmy parametr hasBackground, aby można było wyłączyć gest przesunięcia, gdy nie ma treści tła do wyświetlenia. (I313d8)
  • Funkcja rememberNavController() przyjmuje teraz opcjonalny zbiór instancji Navigator, który zostanie dodany do zwróconego NavController, aby lepiej obsługiwać opcjonalne nawigatory, takie jak te z Materiału nawigacyjnego towarzysza. (I4619e)
  • Odwołuj się do NamedNavArgument z navigation-common i usuń kopię z wear.compose.navigation. (I43af6)

Poprawki błędów

  • Naprawiono niestabilność testu CurvedRow na mniejszych urządzeniach. (If7941)
  • Usunięto problem z możliwym migotaniem wygiętego wiersza podczas aktualizowania treści. Zapewnienie ponownego pomiaru wygiętego wiersza (Ie4e06)
  • Funkcja ChipDefaults.gradientBackgroundChipColors() została zaktualizowana zgodnie ze specyfikacją UX. Gradient zaczyna się teraz od MaterialTheme.colors.primary z alfa 32,5%, a kończy na MaterialTheme.colors.surface z alfa 0% na tle MaterialTheme.colors.surface z alfa 75%. (Id1548)
  • Zaktualizowaliśmy kolory przycisków przełączników w wybranym stanie, aby były zgodne z najnowszymi wytycznymi dotyczącymi interfejsu użytkownika w ramach Material Design na Wear. Po wybraniu przełączniki mają teraz tło gradientowe od MaterialTheme.color.surface @ 0% alfa (w lewym górnym rogu) do MaterialTheme.color.primary @ 32% alfa (w prawym dolnym rogu) na tle MaterialTheme.color.surface @ 75% alfa. W efekcie różnica między zaznaczeniem a odznaczeniem elementu ToggleChip jest mniej widoczna. (Idd40b)

Wersja 1.0.0-alpha06

15 września 2021 r.

Funkcje 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ą dostępne. Wersja 1.0.0-alpha06 zawiera te commity.

Nowe funkcje

  • Dodaliśmy szkielet – komponent aplikacji najwyższego poziomu, który zapewnia strukturę do obsługi pozycji wskaźników (np. przewijania lub głośności), obszar u góry ekranu do wyświetlania czasu i stanu aplikacji, a także obsługę efektu winiety, który pozwala rozmyć górną i dolną krawędź ekranu w przypadku treści przewijanych. Główna część szkieletu to obszar, w którym umieszczane są treści aplikacji. (I5e0bf)
  • Dodano implementację TimeText na potrzeby Compose na Wear (I5654c)

Biblioteka nawigacji w Compose na Wear

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

  • Ta pierwsza wersja zawiera:

    • Komponent SwipeDismissableNavHost, który zawiera graf nawigacji i umożliwia nawigację wstecz za pomocą gestów przesuwania.
    • NavGraphBuilder.composable rozszerzenie ułatwiające tworzenie grafó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")
            }
        }
    }
    
  • Nawigacja w komponencie Wear Compose jest pakowana jako osobna biblioteka, aby proste aplikacje korzystające z komponentu Wear Compose, które implementują własną nawigację, nie musiały być zależne od biblioteki Androidx Navigation.

Zmiany w interfejsie API

  • Zaktualizowano SwipeDismissableNavHost, aby obsługiwał rememberSaveable przez ustawienie kluczowej tożsamości dla tła i treści (I746fd)
  • Dodaliśmy adapter PositionIndicator, który obsługuje stan LazyListState (I21b88).
  • Zaktualizowano element SwipeToDismissBox, aby obsługiwał pamiętanie możliwości zapisu (Ie728b).
  • Dodaliśmy obsługę reverseLayout do ScalingLazyColumn. Umożliwia odwrócenie kierunku przewijania i układu (I9e2fc)
  • Wycofane parametry performGestureGestureScope, które zostały zastąpione przez parametry performTouchInputTouchInjectionScope. (Ia5f3f, b/190493367)
  • Zmieniliśmy nazwę parametru VignetteValue na VignettePosition i nazwę parametru VignetteValue.Obydwa zostały przemianowane na VignettePosition.TopAndBottom. (I57ad7)
  • Nazwa ScalingLazyColumnState została zmieniona na ScalingLazyListState, ScalingLazyColumnItemInfo na ScalingLazyListItemInfo, ScalingLazyColumnLayoutInfo na ScalingLazyListLayoutInfo, a ScalingLazyColumnScope na ScalingLazyListScope, ponieważ w przyszłości możemy zdecydować się na implementację ScalingLazyRow. (I22734)

Poprawki błędów

  • Zaktualizowaliśmy dokumentację dotyczącą elementu CompactChip, aby opisać, co się dzieje, jeśli nie podasz ani ikony, ani etykiety. (I4ba88)
  • Wprowadziliśmy kilka zmian w komponentach kart na Wear. (I6b3d0)
    1. Odstęp między elementami karty tytułu (Tytuł i Treść) zmniejszono z 8 dp do 2 dp.
    2. Czcionka nagłówka karty tytułowej została zmieniona z body na title3.
    3. Zmieniono gradient tła karty, aby 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 są dostępne. Wersja 1.0.0-alpha05 zawiera te commity.

Zmiany w interfejsie API

  • Oznacz ArcPaddingValues jako @Stable (I57deb)
  • ScalingLazyColumnState implementuje teraz interfejs ScrollableState, który daje deweloperom programowy dostęp do przewijania komponentu. (I47dbc)

Poprawki błędów

  • Zmniejszono odstęp między ikoną a tekstem w elementach tekstowych i elementach przełącznika, 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 są dostępne. Wersja 1.0.0-alpha04 zawiera te commity.

Nowe funkcje

  • Dodano element SwipeToDismissBox i modyfikator umożliwiający gest przesunięcia w lewo, aby zamknąć. Chociaż jest niezależny od komponentów nawigacji, służy do zamykania jednego ekranu i przechodzenia do innego. Dodano testy integracji do demonstracji funkcji przesuwania w bok w celu zamknięcia. (I7bba)
  • Do klasy ScalingLazyColumnState dodaliśmy interfejsy ScalingLazyColumnItemInfo i ScalingLazyColumnLayoutInfo, aby umożliwić deweloperom poznanie rzeczywistych pozycji i rozmiarów elementów w elementach ScalingLazyColumn po zastosowaniu skalowania. Naprawiliśmy też błąd związany ze sposobem obliczania skalowania, gdy do kolumny ScalingLazyColumn zastosowano wypełnienie treści „top”. (I27c07)

Zmiany w interfejsie API

  • Dodaj klasę CurvedTextStyle, aby określić styl wygięcia tekstu. Podobny do TextStyle, ale obsługuje tylko kolor, fontSize i tło. W przyszłości dodamy więcej opcji stylizacji. (I96ac3)
  • Do klasy ScalingLazyColumnState dodaliśmy interfejsy ScalingLazyColumnItemInfo i ScalingLazyColumnLayoutInfo, aby umożliwić deweloperom poznanie rzeczywistych pozycji i rozmiarów elementów w elementach ScalingLazyColumn po zastosowaniu skalowania. Naprawiliśmy też błąd związany ze sposobem obliczania skalowania, gdy do kolumny ScalingLazyColumn zastosowano wypełnienie treści „top”. (I27c07)
  • Dodano wartość @ExperimentalWearMaterialApi do wyliczenia SwipeDismissTarget, które jest częścią interfejsu API SwipeToDismissBox. (I48b5e)

Poprawki błędów

  • Dodano materiały testowe dotyczące pola 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 są dostępne. Wersja 1.0.0-alpha03 zawiera te commity.

Zmiany w interfejsie API

  • Dodano komponent CurvedText, który pozwala deweloperom łatwo pisać tekst zgodnie z krzywizną koła (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 ma nałożoną zasłonę. (I53206)
  • Dodanie komponentu ScalingLazyColumn, który zapewnia komponent listy dla Wear Material, który daje efekt rybiego oka, gdy zawartość listy jest zmniejszana i staje się przezroczysta, gdy zbliża się do krawędzi komponentu. (I7070c)

Poprawki błędów

  • Zmieniliśmy domyślny kolor treści appName w karcie aplikacji w odpowiedzi na aktualizację specyfikacji UX. Domyślny kolor nazwy aplikacji to teraz MaterialTheme.colors.onSurfaceVariant. Dodatkowo dodano brakujący opis dokumentu z parametrami dla pola tytułu. (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 są dostępne. Wersja 1.0.0-alpha02 zawiera te commity.

Nowe funkcje

  • Dodano nową klasę CurvedRow do skompilowanych elementów w łuku (I29941)
  • Dodano nowy typ karty do stosowania w aplikacjach (karta tytułu), a także dodano obsługę obrazów jako tła kart, aby podkreślić ich zawartość (I53b0f)

Zmiany w interfejsie API

  • Dodanie obsługi wyrównania promieniowego do kolumny wygiętej (podobnego do wyrównania pionowego w kolumnie) (Id9de5)
  • Dodanie nowej klasy CurvedRow do rozmieszczonych komponentów w kształcie łuku (I29941)
  • Dodano nowy typ karty do stosowania w aplikacjach (karta tytułowa), a także dodano obsługę obrazów jako tła kart, aby podkreślić ich zawartość (I53b0f)
  • Dodano ikony przełączników (pole wyboru, przełączniki i przyciski opcji) do ToggleChipDefaults, aby ułatwić deweloperom konfigurowanie elementów ToggleChip i SplitToggleChips (I7b639).
  • Zaktualizowaliśmy wypełnienie treści na początku i na końcu elementów, aby było ono zawsze równe 14 dp niezależnie od tego, czy element ma ikonę, czy nie (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 1.0.0-rc01. (Ie6bc9)
  • Zmieniliśmy sposób wyświetlania obrazu tła w kartach i elementach, aby był on przycinany zamiast rozciągany, co pozwala zachować proporcje obrazu. (I29b41)
  • Dodaliśmy więcej demonstracji i testów integracji przycisków Button i ToggleButton. (5e27ed2)
  • Dodano więcej testów elementów, aby uwzględnić kolory treści w przypadku elementów imageBackground (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 są dostępne. Wersja 1.0.0-alpha01 zawiera te commity.

Nowe funkcje

Wear Compose to biblioteka na platformę Kotlin, oparta na Compose, która obsługuje interfejs Wear Material Design, czyli rozszerzenie Material Design na potrzeby urządzeń noszonych WearOS. Ta pierwsza wersja alfa zawiera wczesne, funkcjonalne implementacje tych funkcji:

  • Motyw Material – pozwala skonfigurować kolory, typografię i kształty w sposób spójny w przypadku komponentów używanych w tej bibliotece.
  • Elementy typu „chip” i „compact chip” mają kształt stadionu i są dostępne w różnych wariantach, które umożliwiają umieszczanie treści ikony, etykiety i etykiety dodatkowej.
  • – ToggleChip, SplitToggleChip – specjalistyczny typ elementu, który zawiera miejsce na ikonę przełącznika dwustanowego, np. przycisk radiowy lub pole wyboru. Dodatkowo element SplitToggleChip ma 2 obszary, które można dotykać: jeden do klikania i jeden do przełączania.
  • Button, CompactButton – przyciski o okrągłym kształcie z jednym miejscem na zawartość (ikonę lub minimalny 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, karta aplikacji – prostokąt z zaokrąglonymi rogami, który zawiera miejsca na treści takie jak ikona aplikacji, czas, tytuł i tekst.

W przyszłych wersjach zestawu widżetów dodamy obsługę selektorów, suwaków, list, wskaźników stron, dialogów, wskaźników przewijania, powiadomień i innych elementów w stylu Material Design na urządzeniach z Wear.

Dodatkowo zapewniamy obsługę innych funkcji dotyczących urządzeń noszonych, takich jak wygięte układy i tekst, a także szkielety, które ułatwiają deweloperom tworzenie aplikacji i nakładek na urządzenia noszone.

Materiał Compose na Wear został zaprojektowany zgodnie z tymi samymi zasadami co Compose, ale jest przeznaczony do korzystania na urządzeniach do noszenia. Podczas tworzenia aplikacji na urządzenie do noszenia należy używać biblioteki komponentów Compose na Wear zamiast biblioteki komponentów Compose.

Dwie biblioteki „Material” powinny być traktowane jako wzajemnie wykluczające się i nie należy ich łączyć w tej samej aplikacji. Jeśli deweloperzy uwzględnią w swoich zależnościach bibliotekę Compose Material, oznacza to, że: a) w bibliotece Compose Material na Wear brakuje komponentów (prosimy o poinformowanie nas, czego brakuje) lub b) używają komponentu, którego nie zalecamy stosowania na urządzeniu do noszenia.