Wear Compose

  
Tworzenie aplikacji Jetpack Compose na potrzeby urządzeń noszonych przez udostępnienie funkcji obsługujących określone urządzenia, rozmiary, kształty i gesty nawigacyjne.
Ostatnia aktualizacja Wersja stabilna Wersja kandydująca Wersja Beta Wersja alfa
15 stycznia 2025 r. 1.4.0 - - 1.5.0-alpha08

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.0"

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

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

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

Kotlin

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

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

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

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

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

Opinia

Twoja opinia pomoże nam ulepszyć Jetpacka. Daj nam znać, jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz zagłosować na istniejący problem, klikając przycisk z gwiazdką.

Tworzenie nowego zgłoszenia

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

Wear Compose Material3 w wersji 1.0

Wersja 1.0.0-alpha31

15 stycznia 2025 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha30

11 grudnia 2024 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha29

13 listopada 2024 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

  • Zaktualizowaliśmy animację potwierdzenia. (I04bff)
  • W przypadku bibliotek Compose minimalna wersja interfejsu API została zaktualizowana do 1.7.4. (I88b46)
  • Dodano nowy ruch dla okna dialogowego OpenOnPhone. (I1e10a)
  • Naprawiliśmy błąd w usługach LevelIndicator, dzięki czemu są one teraz wyświetlane prawidłowo, gdy poziom wynosi 0. (Ie95a4)
  • Zaktualizowaliśmy animacje HorizontalPageIndicatorVerticalPageIndicator. (I5c8f3)
  • Do nieokreślonego ArcProgressIndicator dodaliśmy animację kurczenia się do punktu. (I9fd51)

Wersja 1.0.0-alpha28

30 października 2024 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha27

16 października 2024 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha26

2 października 2024 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha25

18 września 2024 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha24

4 września 2024 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha23

14 maja 2024 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha22

1 maja 2024 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha21

17 kwietnia 2024 r.

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

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

Wersja 1.0.0-alpha20

3 kwietnia 2024 r.

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

Poprawki błędów

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

Wersja 1.0.0-alpha19

6 marca 2024 roku

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

Zmiany w interfejsie API

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

Wersja 1.0.0-alpha18

21 lutego 2024 r.

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

Zmiany w interfejsie API

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

Wersja 1.0.0-alpha17

7 lutego 2024 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha16

24 stycznia 2024 r.

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

Nowe funkcje

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha15

15 listopada 2023 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha14

18 października 2023 r.

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

Zmiany w interfejsie API

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

Wersja 1.0.0-alpha13

4 października 2023 roku

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

Zmiany w interfejsie API

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

Wersja 1.0.0-alpha12

20 września 2023 r.

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

Zmiany w interfejsie API

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

Wersja 1.0.0-alpha11

6 września 2023 r.

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

Poprawki błędów

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

Wersja 1.0.0-alpha10

23 sierpnia 2023 r.

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

Nowe funkcje

  • Dodaj HorizontalPageIndicator w bibliotece Material3 na Wear. (Ifee99)

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha09

9 sierpnia 2023 r.

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

Nowe funkcje

  • Dodaliśmy ToggleButton dla materiału3 (I6bed6).

Zmiany w interfejsie API

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

Poprawki błędów

  • Zaktualizowaliśmy kolory elementów Button, IconButtonTextButton zgodnie z systemem projektowania Material3. (Ib2495)
  • Rozwiązaliśmy problem z widocznością zaznaczenia w pozycji wyłączonej. (Ib25bf)

Wersja 1.0.0-alpha08

26 lipca 2023 r.

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

Nowe funkcje

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha07

21 czerwca 2023 r.

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

Nowe funkcje

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

Poprawki błędów

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

Wersja 1.0.0-alpha06

7 czerwca 2023 r.

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

Poprawki błędów

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

Wersja 1.0.0-alpha05

24 maja 2023 r.

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

Nowe funkcje

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

Zmiany w interfejsie API

  • Parametr label w przycisku został przeniesiony na koniec, aby umożliwić obsługę nawiasów klamrowych w lambdach, a parametryz role został usunięty (można go zastąpić za pomocą Modifier.semantics). Konstruktory ButtonColors są teraz publiczne. (Ie1b6d)

Wersja 1.0.0-alpha04

10 maja 2023 r.

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

Nowe funkcje

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

Wersja 1.0.0-alpha03

19 kwietnia 2023 r.

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

Zmiany w interfejsie API

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

Wersja 1.0.0-alpha02

5 kwietnia 2023 r.

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

Poprawki błędów

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

Wersja 1.0.0-alpha01

22 marca 2023 r.

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

Nowe funkcje

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

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

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

Wersja Wear Compose 1.5

Wersja 1.5.0-alpha08

15 stycznia 2025 r.

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

Zmiany w interfejsie API

  • Zaktualizowaliśmy wszystkie biblioteki Wear Compose do trybu „wyraźny interfejs 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

  • Na platformie Wear OS w wersjach po V (Idb03e) wywoływane są teraz funkcje haptyczne.

Wersja 1.5.0-alpha07

11 grudnia 2024 r.

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 nową wersję 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ń rotacyjnych kierowanych na U i nowsze. (I33559)
  • Rozwiązaliśmy problem z awarią, która występowała, gdy 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 w kierunku pionowym zwiększyliśmy wartość 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.

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, zastępując ją funkcją PagerState, w której usunięty został niepotrzebny parametr orientation. 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 snapAnimationSpec z Tween 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 w celu lepszego obsługiwania semantyki w przypadku funkcji obrotowej. (Ief0a0)
  • W przypadku bibliotek Compose minimalna wersja interfejsu API została zaktualizowana 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.

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

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.

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 nawigowanie za pomocą urządzeń z przyciskami obrotowymi. (I9770d)
  • Zaktualizowaliśmy nową wersję PagerDefaults, aby wyraźnie wskazać, że strona będzie domyślnie dopasowywana do strony. (Iff7d0)
  • TransformingLazyColumnItemScrollProgress to teraz klasa wartości, która powinna poprawić skuteczność. (Ic399e)
  • TransformingLazyColumn obsługuje teraz elementy 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.

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

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 usuwania elementów 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 interakcje 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, za pomocą 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 Design (I126bf).

Wersja 1.5.0-alpha02

18 września 2024 r.

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 jest ustawiona na 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ć przerwanie testów zrzutów ekranu, które obejmują wygięty tekst (Iaa6ef).
  • Cofnęliśmy poprawkę do 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.

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 Compose Foundation na Wear OS 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 indeksowaną wersję interfejsu itemsIndexed.LazyColumnScope (Ib4a57)
  • Dodaliśmy modyfikatory LazyColumn, aby umożliwić skalowanie i przekształcanie. (Ie229a)
  • HierarchicalFocusCoordinator został awansowany 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 animatedTo zakończy działanie. (I59b03)
  • Ulepszona dokumentacja nowego parametru rotationLocked w przypadku curvedComposable. (Ifbd57)
  • Naprawiono awarię podczas przekazywania wartości NaN do elementu performFling w elementach 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 sekcji „sp”. (I9f6e3)
  • Naprawiliśmy błąd w Material2 Dialog, który powodował, że funkcja zwracająca wartość 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.0

4 września 2024 r.

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 zachowania 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 systemem 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.

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ęliśmy nawigację Compose na Wear do androidx.lifecycle 2.8.3.

Wersja 1.4.0-beta03

12 czerwca 2024 r.

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ć „focusable” („focusable”) parametrem „focusTarget” („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.

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

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.

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 obracającego się pierścienia 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 działania funkcji snap 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 elementy SelectableChipSplitSelectableChip jako warianty elementu ToggleChip. Używaj ich z elementem RadioButton, aby zapewnić semantykę z możliwością wyboru zamiast przełącznika dla ułatwień dostępu.
  • ListHeader obsługuje teraz dostosowywanie wysokości, gdy treści wymagają dodatkowej wysokości, aby dopasować je do dużych rozmiarów 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ć, mimo że były już zaznaczone. (I7ed88)

Wersja 1.4.0-alpha08

1 maja 2024 r.

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ę Modifier.rotary na Modifier.rotaryScrollable, zmieniliśmy nazwę interfejsu RotaryBehavior na RotaryScrollableBehavior, a jego funkcji handleScrollEvent na performScroll, zmieniliśmy nazwę RotaryScrollableAdapter na RotaryScrollableLayoutInfoProvider i usunęliśmy właściwość scrollableState. (I0c8a6)
  • Wprowadziliśmy dodatkowe zmiany w interfejsie API rotary: zmieniliśmy nazwę RotaryScrollableLayoutInfoProvider na RotarySnapLayoutInfoProvider (ponieważ 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 na SplitSelectableChip na stronie SplitSelectableChip.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 (suwak) nakłada się na treści, które można przewijać. 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 do obsługi urządzeń z obrotowym ekranem dotykowym, opisując różnice między urządzeniami z ekranem 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.

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 snap za pomocą parametru flingBehavior, aby umożliwić przewijanie za pomocą dotyku. (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 do wyboru, takich jak RadioButton. Spowoduje to zastąpienie wcześniej dodanych przeciążeń funkcji ToggleChip/SplitToggleChip parametrami selectionControl. (Ia0217)
  • Zmieniono modyfikator widoczności elementu IndeterminateStrokeWidth w grupie ProgressIndicatorDefaults na publiczny. (I5b5a4)

Wersja 1.4.0-alpha06

3 kwietnia 2024 r.

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 obsługi tych urządzeń z Horologist do AndroidX. (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.

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

Zmiany w interfejsie API

  • Ustawiliśmy właściwości initialCenterItemIndexinitialCenterItemScrollOffset usługi ScalingLazyListState jako publiczne. (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

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ć semantykę z możliwością wyboru zamiast semantyki z możliwością przełączania w celu ułatwienia 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.

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

Zmiany w interfejsie API

  • Pakiet Modifier.inspectable został wycofany. 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.

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.

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

Nowe funkcje

  • Dodano animację wejścia do SwipeDismissableNavHost na potrzeby przejść w aplikacji (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 następnej stabilnej wersji. Jest to tylko tymczasowe ułatwienie migracji w przypadku, gdy używasz niestandardowego RippleTheme. Informacje o przenoszeniu i szczegółowe informacje o tej zmianie 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 spowoduje więcej ponownych kompilacji niż wcześniej. W związku z tym znacznie zmniejszyliśmy liczbę subskrypcji stanu w całym kodzie materiału. Spowoduje to wzrost kosztów inicjalizacji i kosztów związanych z czasem wykonywania w przypadku standardowych przypadków użycia. (f5c48b7)
  • Komponenty Wear Material i Wear Material 3, które w swojej implementacji interfejsu API udostępniają atrybut MutableInteractionSource, zostały zaktualizowane, aby udostępniać atrybut MutableInteractionSource, który może przyjmować wartość null. Domyślnie jest on ustawiany 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 poprawia 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 rozwijania. 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ć odsłuchiwania 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)
  • Zwiększyliśmy odporność 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.

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 przesuwaniem palcem w celu wyświetlenia, który umożliwiał interakcję z wykonaną już czynnością dotyczącą jednego elementu (i jej anulowanie) przez rozpoczęcie przesuwania innego elementu. (Ide059)

Wersja 1.3.0

24 stycznia 2024 r.

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 pakietu 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, co lepiej obsługuje 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, 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świetlaj 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.

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 typu „chip” i element ToggleChip. Ta zmiana jest potrzebna, aby umożliwić dostosowanie wysokości, gdy treści wymagają dodatkowej wysokości, aby dopasować duże rozmiary czcionek. W przeciwnym razie istniejący kształt stadionu 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.

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

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.

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

Wersja 1.3-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.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 celu zamknięcia w wersji BasicSwipeToDismissBox. Dzięki temu gest przesunięcia w celu zamknięcia może być używany niezależnie od Material Design, np. z SwipeDismissableNavHostandroidx.wear.compose.navigation. Zalecamy nadal używanie SwipeToDismissBoxandroidx.wear.compose.material w przypadku Material Design, ponieważ pobiera on kolory z MaterialTheme, a potem deleguje pozostałą implementację do BasicSwipeToDismissBox.
  • SwipeDismissableNavHost obsługuje teraz nowy parametr userSwipeEnabled, dzięki czemu można wyłączyć obsługę przesuwania na ekranach, na których nie jest ona wymagana.
  • BasicSwipeToDismissBox poprawiło obsługę fokusa za pomocą HierarchicalFocusCoordinator.
  • SwipeToReveal zawiera nowe komponenty SwipeToRevealCardSwipeToRevealChip w Material Design, które są zgodne z zalecanymi wskazówkami dotyczącymi UX w przypadku CardChip. Obsługuje też cofanie dodatkowego działania.
  • DefaultTextStyle wyłącza teraz wypełnienie czcionki, aby zachować spójność na platformie Android.
  • Elementy Chip i ToggleChip mają teraz dostosowywaną wysokość, aby uwzględnić treści, które zostały powiększone ze względu na duże czcionki w ramach ułatwień dostępu
  • PositionIndicator ma teraz osobne specyfikacje animacji dla animacji wstępowania i znikania oraz animacji zmiany pozycji. Ze względu na wydajność zalecamy wyłączenie efektów łagodnego pojawiania się i zmiany pozycji w przypadku list przewijanych.
  • ExpandableStateMapping udostępnia nowy sposób generowania ExpandableStates, gdy trzeba je utworzyć na żądanie, a niekoniecznie w zakresie @Composable.
  • Placeholder umożliwia teraz zresetowanie treści, jeśli nie są one 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 przypadku ekranów ładowania, a pozostałe elementy powierza komponentowi BasicSwipeToDismissBox. (Ibecfc)
  • Oznaczyliśmy rememberExpandableStateMapping jako funkcję eksperymentalną i poprawiliśmy skuteczność 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 zakrzywiony tekst, 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.

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 zalecamy wyłączenie flag showFadeInAnimationshowPositionAnimation, gdy element PositionIndicator jest używany z listą przewijalną. 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, aby zamknąć, do komponentu 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 opierała się na stanie 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

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 znikania działania dodatkowego lub zmiany skali ikony po pełnym rozwinięciu. (Ib7223)
  • Zalecamy, aby działania „Przesuń, aby wyświetlić” były dostępne. Do naszych przykładów 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ć, aby początkowa logika nie powodowała ponownego tworzenia kompozycji. 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.

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ę Modifier.edgeSwipeToDismiss w 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.

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ć, tak 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.

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

Nowe funkcje

  • Dodaliśmy obsługę funkcji cofnij w przypadku działania wtórnego SwipeToReveal. (I7a22d)

Zmiany w interfejsie API

  • Dodaj HorizontalPageIndicator w bibliotece Material3 na Wear. (Ifee99)
  • Zaktualizowano narzędzia do wyświetlania 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.

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 Design 2 nowe komponenty do implementacji SwipeToReveal za pomocą kart i elementów. Te elementy są zgodne ze sprawdzonymi metodami dotyczącymi interfejsu użytkownika dla danego komponentu i ułatwiają deweloperom implementowanie SwipeToReveal za pomocą istniejących 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ł sekcji, używamy teraz w usługach PositionIndicator, ProgressIndicatorSelectionControls funkcji drawWithCache. (I5f225, b/288234617)
  • Rozwiązaliśmy problem z widocznością zaznaczenia w pozycji wyłączonej. (Ib25bf)
  • Zaktualizowaliśmy Placeholder, aby umożliwić zresetowanie i wyświetlenie zastępnika, 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.

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

Zmiany w interfejsie API

  • Udostępniliśmy ExpandableStateMapping, nowy sposób generowania ExpandableStates, na potrzeby sytuacji, 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 dla 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, jeśli ten przycisk w ogóle istniał. (I1899d, b/289991514)
  • Ulepszona obsługa zaznaczenia w przypadku SwipeToDismissBox (a zatem SwipeDismissableNavHost) przy użyciu HierarchicalFocusCoordinator (I45362, b/277852486)
  • Wprowadziliśmy poprawkę dotyczącą obsługi gestów w grze SwipeableV2 . (I89737)
  • Skończyliśmy pracę nad profilami podstawowymi w 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ść, aby uwzględnić treści, które zostały powiększone ze względu na duże czcionki ułatwiające dostępność. (Iaf302)
  • Naprawiono błąd związany z rolą semantyczną obszaru dotykowego SplitToggleChip, aby ułatwić dostępność. (Ieed3a)
  • Ustawienie „Ogranicz ruch” wyłącza efekt migotania i wymazywania na obiektach 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.

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ć. Na przykład widzimy tu przycię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 funkcję TimeText, aby używała lokalizacji przy wyborze formatu czasu 12- lub 24-godzinnego. (If4a3d)
  • Naprawiliśmy niespójność w domyślnych parametrach 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 czcionki. 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.

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.

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.

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.

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 usługi Wear Compose(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.

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

Co nowego w Compose na Wear OS 1.2

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). 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, aby wyświetlić pojedynczy element, który można rozwinąć, np. tekst, w którym liczba wierszy jest zmienna. Użyj expandableItems dla grupy elementów, które można rozwinąć, i expandableButton, aby uprościć 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 komponent do obsługi wielu selektorów jednocześnie. Obsługuje fokus między selektorami za pomocą interfejsu API HierarchicalFocusCoordinator i umożliwia automatyczne wyśrodkowywanie elementów selektora.
  • Placeholder – wprowadziliśmy aktualizacje animacji migotania i „wycierania”. Efekt wymazywania jest teraz stosowany natychmiast po tym, jak treści są gotowe.
  • ScalingLazyColumn – przeniesiono element ScalingLazyColumn i powiązane z nim klasy z poziomu androidx.wear.compose.material.ScalingLazyColumn do poziomu 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 synchronizację domyślnego wyłączania wypełnienia czcionki z bibliotekami w Compose we 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.

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

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ązanie problemu z ScalingLazyColumn, który po przesunięciu zatrzymuje 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 i elementach CompactChip, w których przypadku 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 poprawkę. 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, więc 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 przycięty 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.

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.

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.

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

Zmiany w interfejsie API

  • Komponenty Rozwijalnego elementu (dodane w wersji 1.2.0-alpha06) zostały przeniesione z kategorii „Materiały” do kategorii „Fundamenty”, 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 PickerGroup. Upewniliśmy się, że 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). W przyszłości będziemy mogli zsynchronizować wyłączenie domyślnego wypełniania czcionki z bibliotekami w Compose. Więcej informacji znajdziesz w artykule Poprawka na wypełnienie czcionki w Compose. (I2aee8)
  • Za pomocą funkcji activity-compose cofnięto zależność od podglądu UpsideDownCake, która blokowała publikowanie aplikacji w Sklepie Google Play. (I6443d)

Wersja 1.2.0-alpha06

8 marca 2023 r.

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 krzywym świecie. (I29200)
  • Dodano elementy, które można rozwinąć – 2 nowe komponenty obsługujące grupę elementów rozwijanych w elementach ScalingLazyColumn lub pojedynczy element rozwijany, np. tekst, w którym można zwiększyć liczbę wierszy. (I95dd5)
  • Dodaliśmy te niestandardowe adnotacje do wyświetlania podglądu kompozytowych na ekranach Wear: WearPreviewSmallRound wyświetla podgląd kompozytowego na małym, okrągłym urządzeniu; WearPreviewLargeRound wyświetla podgląd kompozytowego na dużym, okrągłym urządzeniu; WearPreviewSquare wyświetla 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. Aby korzystać z tych wersji podglądowych, musisz używać najnowszej wersji Android Studio (Giraffe Canary 6) lub nowszej. Jeśli te adnotacje nie spełniają Twoich potrzeb, 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łączonych treści na tło, gdy w usługach Button, CompactButton, Chip, CompactChipToggleButton używasz kolorów podstawowych jako tła. Dzięki temu poprawisz kontrast w celu ułatwienia dostępu. (I527cc)

Wersja 1.2.0-alpha05

22 lutego 2023 roku

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 to ustawienie ma wartość True, 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 element 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.

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 za pomocą interfejsu Focus API. Obsługuje ono fokus między różnymi selektorami, umożliwia automatyczne wyśrodkowywanie 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 przeciążenie do funkcji Stepper 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.

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

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. Ta zmiana 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 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 aktualizował on tylko wtedy, gdy wartość się zmieni (Ia9f38).
  • Zwiększyliśmy wydajność SwipeToDismissBox (I3933b).
  • Dodano testy porównawcze dla ScalingLazyColumn w komponencie tworzenia aplikacji 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.

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 klatki podczas wykonywania klatek, aby przejść do stanu bezczynności (np. za pomocą waitForIdle). Może to mieć wpływ na testy, które sprawdzają poszczególne klatki animacji układu. (I8ea08, b/222093277)
  • 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)
  • Naprawiliśmy problem z drżeniem tekstu w komponencie Picker, korzystając z nowej strategii kompozytowania dodanej do Modifier.graphicsLayer. (I99302)
  • Naprawiliśmy błąd, który powodował migotanie w wersji demonstracyjnej DatePicker (I660bd).
  • Poprawiliśmy ułatwienia dostępu w przypadku demonstracji 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.

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 „Wycieranie” był stosowany natychmiast po tym, jak treści są gotowe, zamiast czekać na rozpoczęcie następnej pętli animacji. Wprowadziliśmy też kilka zmian w animacjach migotania i usuwania. (I5a7f4)

Zmiany w interfejsie API

  • Dodaliśmy kompozyt HierarchicalFocusCoordinator, aby umożliwić oznaczanie poddrzewi 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świetlanym selektorem. 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 dopasować 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 układzie ScalingLazyListState.centerItemIndex, tak aby przesyłał on aktualizacje tylko wtedy, gdy wartość ulegnie zmianie (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

  • Funkcja PlaceholderState.rememberPlaceholderState() została zaktualizowana, aby używać funkcji rememberUpdatedState, dzięki czemu stan zostanie zaktualizowany, 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 „Wycieranie” był stosowany natychmiast po tym, jak treści są gotowe, zamiast czekać na rozpoczęcie następnej pętli animacji. Wprowadziliśmy też kilka zmian w animacjach migotania i przesuwania. (I5a7f4)

Poprawki błędów

  • Zmieniliśmy domyślną szerokość obramowania OutlinedButton/OutlinedCompactButton z 2 pikseli na 1 piksel, aby dopasować 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łniacza 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.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, aby w przypadku nieprawidłowego parametru itemIndex (np. gdy indeks elementu jest poza zakresem) funkcja TimeText była 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ść elementów Modifier.placeholderModifier.placeholderShimmer stosowanych w tym samym komponencie. (Ie96f4, b/256583229)
  • Zmieniliśmy domyślną szerokość obramowania OutlinedCompactChip/OutlinedChip z 2 pikseli na 1 piksel, aby dopasować 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 wskaźników: 1) zmieniliśmy gradient migotania na 1, 5 raza większy od rozmiaru 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 stosowania, aby w miarę możliwości łączyć kolory zamiast je układać warstwami. Dzięki temu zmniejszyliśmy ryzyko mieszania się kolorów alfa różnych przyciętych warstw, które mogłyby prześwitywać przez krawędzie tła w miejscu stosowania. (I2ea26)
  • Poprawiliśmy obliczenia ScalingLazyListState.centerItemIndex/centerItemOffset, aby w przypadku 2 elementów po obu stronach linii środkowej widoku urządzenia mobilnego centerItem był tym elementem, który jest najbliżej. (I30709, b/254257769)
  • Naprawiliśmy błąd w ScalingLazyListState.layoutInfo.visibleItemsInfo, który powodował nieprawidłowe przesunięcia podczas inicjalizacji 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 1.1 na Wear OS

Wersja 1.1.0-beta01 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
    • Parametr selektora contentDescription jest teraz używany tylko w przypadku wybranej opcji selektora i przyjmuje typ String z możliwością wartości null (w poprzednim commitcie 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 tekstowych i przycisków oraz nowe elementy kompozytowe OutlinedChipOutlinedButton, które zapewniają przezroczyste 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% koloru podstawowego i kończy na 20% koloru onSurfaceVariant (wcześniej było to 20% do 10% koloru onSurfaceVariant). ToggleChip.toggleChipColors zmienia się z gradientu liniowego 75% powierzchni na 32,5% koloru podstawowego, a następnie na 0% powierzchni i 50% koloru podstawowego.
    • 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, jeśli do obrazu dodano informacje semantyczne, ponieważ TalkBack będzie teraz otrzymywać 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 elementy graficzne i karty, aby narysować 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 wczytywaną zawartością.
    • 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.
  • Zależności podstawowego Compose zostały zaktualizowane z 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 (są powiązane z odpowiednio z prawidłowo umieszczonym i wymiarowanym (ale pustym) węzłem interfejsu użytkownika, który wykorzystuje tekst jako opis 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ły razem. Po pierwsze, efekt pędzla tła zastępczego używany w kontenerach, takich jak elementy graficzne i karty, aby narysować 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 wczytywaną zawartością. 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ę formatów fontWeight, fontFamily, fontStyle i fontSynthesis w CurvedTextStyle, które można używać w curvedText i basicCurvedText. Parametry te można użyć do określenia czcionki i stylu, który ma być użyty w krzywym tekście (Iaa1a8),(I72759).
  • Zaktualizowano parametr offset w komponencie Modifier.scrollAway, aby był zgodny z komponentem Modifier.offset (wcześniej był w pikselach). Zmodyfikowano go też w celu zwiększenia wydajności.LayoutModifier (I9f94b)
  • W ramach nowego interfejsu API przełącznika zmieniliśmy nazwę interfejsu RadioButton’s circleColor na ringColor. (I28fa9)
  • Dodaliśmy animowane przełączniki Checkbox, SwitchRadioButton do stosowania w przypadku elementów 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, jeśli do obrazu dodano informacje semantyczne, ponieważ TalkBack będzie teraz otrzymywać 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 rozpoznać 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 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 (elementów sterujących, kart i przycisków) 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 umożliwiające modyfikowanie kształtów przycisków (Icccde).

Poprawki błędów

  • Poprawiliśmy rozmiar obszaru przełącznika w aplikacji 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 sterowania przełącznikiem o wymiarach 36 x 24 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 dotychczasową animacją skalowania. (Ida33e)
  • Naprawiliśmy błąd, który powodował dzielenie przez 0 podczas przewijania. (I86cb6)
  • Naprawiliśmy błąd w ChipDefaults.childChipColor(), aby zapewnić pełną przezroczystość koloru tła w wyłączonym trybie. (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 pickerze, aby można było poruszać się po ekranach pickera wieloelementowego za pomocą czytników ekranu i aby opis treści był dostępny (I64edb)

Poprawki błędów

  • Zaktualizowaliśmy reguły profilu bazowego zawarte 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 komponencie Chip/ToggleChip/Card, aby dostosować je do najnowszej specyfikacji UX. Aktualizacja komponentu ChipDefaults.gradientBackgroundChipColors polega na tym, że kolor podstawowy zaczyna się od 50%, a nie od 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 nieprawdopodobnym przypadku, 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 zmiana wartości gradientRatio na 0 zmieniała 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 jest obecna. (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

  • Jest to pierwsza stabilna wersja Compose na Wear OS (więcej informacji).
  • Compose for Wear OS opiera się na podstawowych bibliotekach Compose i zawiera dodatkowe komponenty przeznaczone do urządzeń do noszenia oraz, w stosownych przypadkach, alternatywne implementacje podstawowych komponentów Compose dostosowanych do urządzeń do noszenia.
  • Listę najważniejszych komponentów w Compose na Wear 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 zgodna z dotychczasową 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 teraz od prawego górnego do lewego dolnego rogu, a nie od lewego górnego do prawego dolnego. (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%. Wartość CardDefaults.cardBackgroundPainter została zaktualizowana, aby zaczynała się od 30% wartości podstawowej i kończyła 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 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 nieprawdopodobnym przypadku, gdy tło będzie jasne. (Ibe1a4, b/235937657)
  • Zaktualizowaliśmy reguły profilu bazowego w pakiecie z biblioteką 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 kompozytowych są teraz tworzone za pomocą domyślnych metod interfejsu JDK 8 (I5bcf1).

Poprawki błędów

  • Usunęliśmy wyraźne wywołanie elementu fillMaxWidth() w nagłówku listy, ponieważ nie jest ono potrzebne i może powodować problemy, jeśli element ScalinglazyColumn zawiera elementy ListHeader()Chip(), ponieważ szerokość będzie się zwiększać lub zmniejszać, gdy elementy ListHeader będą się przesuwać w górę lub w dół. (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 wygładzaniu ScalingLazyColumn, gdy elementy docierają do krawędzi ekranu, aby dopasować je do aktualizacji specyfikacji UX. Stare wartości CubicBezierEasing(0.25f, 0.00f, 0.75f, 1.00f) -> nowe wartości CubicBezierEasing(0.3f, 0f, 0.7f, 1f). Aby zachować stare działanie, możesz zastąpić scalingParamsScalingLazyColumn (Ie375c).
  • Dodaliśmy wypełnienie do elementu CompactChip, aby jego rozmiar docelowy był większy niż 48 dp, co jest zgodne z wytycznymi Material Design dotyczącymi ułatwień dostępu. Może to mieć wpływ na układy, które używają CompactChips, ponieważ będą zajmować dodatkową przestrzeń. (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, będą wyrównane w celu zapewnienia maksymalnej widoczności. Aby wrócić do poprzedniego zestawu zachowań horizontalAlignment = Alignment.Start.(I9ed4b)

Znane problemy

  • Wysokość dotknięcia elementu CompactChip jest mniejsza niż w wytycznych dotyczących ułatwień dostępu w Material Design. Ten problem zostanie rozwiązany w kolejne aktualizacji (15 czerwca). Jeśli używasz elementu CompactChip, wpłynie to na układy, ponieważ elementy te będą teraz mieć 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 animowania dodawania lub usuwania tekstu startowego na TimeText. (I16d75)
  • Dodawanie testów dla HorizontalPageIndicator.PagesState (I64ed0)
  • Aktualizacja TimeText w celu dostosowania 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 klikać 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 palcem po krawędzi. Gdy używasz Modifier.edgeSwipeToDismiss i przesunięcie w lewo jest aktywowane z obszaru krawędzi, nie powoduje już usunięcia po przesunięciu w prawo. Wcześniej można było wywołać funkcję usuwania przez przesunięcie 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 przy przyciąganiu w przypadku ScalingLazyColumnPicker (I49539)
  • Ulepszenia dotyczące przesuwania palcem po 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 Compose na Wear OS to ważny kamień milowy, ponieważ biblioteka jest już kompletna, a interfejs API jest zablokowany.

Komponenty interfejsu Compose na Wear w wersji 1.0:

  • Motyw Material Theme – zastępuje Compose for Mobile MaterialTheme. Udostępnia 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 pokazują, czy jest zaznaczony
  • Karty – służą do wyświetlania informacji o aplikacjach, np. powiadomień. Elastyczny projekt do różnych zastosowań dzięki elementom AppCardTitleCard, które umożliwiają 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 poziomem zaznaczonym/niezaznaczonym oraz dodatkowym ToggleControl, który umożliwia wyświetlenie ikony, np. przełącznika lub przycisku wyboru, 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) w celu rozmieszczania elementów na okrągłych urządzeniach. 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 elementó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 opinią 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 poziomą pozycję 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 w usłudze 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 przewijaną listę elementów do wyboru. Domyślnie elementy będą powtarzane „bez końca” w obu kierunkach. Można je wyświetlać w trybie tylko do odczytu, aby ukryć niewybrane opcje.
  • PositionIndicator – służy do wyświetlania pozycji przewijania lub innych informacji o pozycji w sposób odpowiedni dla urządzeń noszonych. Zajmuje cały ekran i wyświetla 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 rozmyciem, który stanowi kluczowy element języka Material Design na Wear. Umożliwia skalowanie i przezroczystość 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 wybrać jedną wartość z danego zakresu. 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 z zakresu wartości za pomocą przycisków zwiększania/zmniejszania u góry i u dołu ekranu. W środku znajduje się miejsce na tekst lub element.
  • SwipeToDismissBox – obsługuje gest przesuwania, aby zamknąć. Zajmuje 1 miejsce na tło (wyświetlane 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óry 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 wykorzystania 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 elementy podrzędne na ł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 umożliwia deweloperom ł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.

  • Z poziomu nawigacji w Compose na Wear dostępny jest 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 przyciski zmniejszania i zwiększania są wyłączane (a do ikony Color jest stosowana opcja ContentAlpha.disabled) (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 AppCardTitleCard (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, które umożliwiają określenie tła elementu krzywizny: CurvedModifier.background, .radialGradientBackground i .angularGradientBackground (I8f392).
  • Umożliwia określenie trybu przepełnienia krzywizna tekstu (przyciąć/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 i .radialSize, aby określić rozmiar elementu zakrzywionego. (I623c7)

Zmiany w interfejsie API

  • Zmień kolejność parametrów, aby zapewnić spójność w przypadku 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 jest określony, jest dziedziczony (If0e6a)
  • Aby rozwiązać problem z interfejsem API w przypadku usługi ScalingLazyColumn, zastąpiliśmy usługę autoCenter: Boolean usługą 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. Dzięki temu deweloperzy będą mogli używać dodatkowych modyfikatorów w przypadku niektórych treści w miejscu reklamy i nie będą musieli udostępniać 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, która pozwoli Ci przestrzegać wytycznych dotyczących 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 button na caption1. Zalecane rozmiary ikony to 20 x 20 pikseli, jeśli są obecne zarówno ikona, jak i etykieta, oraz 24 x 24 piksele, jeśli jest tylko ikona. 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ą one być przydatne deweloperom podczas obliczania przewijania (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 te metody zwracały ImageVector zamiast Icon (ponieważ nie zwracają już @Composables, zmieniliśmy je tak, aby zaczynały 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ż element SwipeToDismissBoxState może teraz zostać podniesiony i użyty do zainicjowania zarówno SwipeDismissableNavHostState, jak i Modifier.edgeSwipeToDismiss na ekranach, które wymagają przesuwania palcem 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 w 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 (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 pokazane w prezentacjach i przykładach. (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 przesunięcia. (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 przypadku wygiętego układu). W tych elementach układu można używać 3 elementów: curvedComposable (dodawanie dowolnego elementu @Composable), basicCurvedText (zakrzywiony tekst w fundamentach) i curvedText (zakrzywiony 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 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 on aktualnie wybraną opcję i etykietę, jeśli została podana. (I879de)
  • Tabela SwipeToDismissBoxState została przebudowana, aby ograniczyć zakres tabeli ExperimentalWearMaterialApi do tabel Modifier.swipeableSwipeableState, które są teraz używane wewnętrznie. Usługa SwipeToDismissBoxState obsługuje teraz użytkowników currentValue, targetValue, isAnimationRunningsnapTo, aby obsługiwać typowe przypadki użycia. Daj nam znać, jeśli chcesz, abyśmy udostępnili inne usługi. Naprawiono też działanie SwipeableState w przypadku, gdy przesunięcie przesunięcia znajduje się w obrębie błędu zaokrąglania reklamy zakotwiczonej. (I58302)

Poprawki błędów

  • Uproszczony i poprawiony kod służący do wykrywania, czy można przewijać zawartość elementu ScalingLazyColumn (używany do podejmowania decyzji, czy wyświetlić suwak) (I7bce0)
  • Usunęliśmy błąd związany z wskaźnikiem pozycji podczas korzystania z 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. W przypadku wersji spinner/nieokreślony zaktualizowano rozmiar (40 >24 dp), kolor wskaźnika (primary->onBackground), przezroczystość koloru ścieżki (30% >10%) oraz szerokość obrysu (4 >3 dp). W wersji z uwzględnieniem postępu lub z określonym wynikiem została zaktualizowana przejrzystość koloru ścieżki (30%->10%). (I659cc)
  • Zaktualizowaliśmy domyślne parametry skalowania ScalingLazyColumn zgodnie z najnowszymi specyfikacjami interfejsu użytkownika Material Design na Wear. W efekcie elementy listy są skalowane bliżej jej środka, ale mniej niż wcześniej na jej 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 ustawienia pionowego. (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. Pozwala to deweloperom umieszczać w początku 1 lub 2 elementy dotyczące elementu, które nie są przewijane do środka. 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 komponencie PickerState, w którym opcja initiallySelectedOption nie była stosowana, dopóki nie wyświetlono selektora. (Id0d7e)
  • Aby zmniejszyć przycinanie szerszych elementów ScalingLazyColumn na okrągłych ekranach, zwiększyliśmy domyślny poziomy margines treści z 8 na 10 dp. (I0d609)
  • Upewnij się, że PositionIndicator wyświetla się 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 formacie 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 orientacja 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 ono spójne 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 dla suwaka i kontrolera krokowego (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 w ramach konstrukcji stanu za pomocą parametru 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ć dodatkowe wypełnienie za pomocą viewportVerticalOffsetResolver. (I76be4)
  • Rozwiązanie problemu z tekstem czasu na kilku wierszach na kwadratowym urządzeniu (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 ono zgodne z działaniem funkcji LazyColumn. Jeśli chcesz przywrócić poprzednie zachowanie, ustaw wartość 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 commity.

Zmiany w interfejsie API

  • Do usługi ScalingLazyColumn dodaliśmy nową właściwość autoCentering. Gdy 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 pionowy, 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 na ekranie 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 i zastąpiliśmy jego użycie w bibliotece kolorami onSurfaceVariant. (Icd592)
  • Dodano metodę umożliwiającą wybór opcji w PickerState za pomocą kodu. Opcja wybrana na początku może być teraz również określona 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 commity.

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 poziomu anchorType na liście. Na przykład w przypadku ScalingLazyColumnanchorType ItemCenter i elementem listy umieszczonym na środku osi środkowej widoku przesłoniętego będzie to przesunięcie 0.

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

  • Do SwipeDismissableNavHost dodaliśmy element obsługi 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 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 zatwierdzenia.

Nowe funkcje

  • Dodaliśmy komponent Stepper, który umożliwia użytkownikom wybór spośród zakresu wartości. Regulator to kontroler na pełnym ekranie z przyciskami zwiększania i zmniejszania u góry i u dołu oraz gniazdem pośrodku (do którego można wstawić element Chip lub element Text). 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

  • Dodaj jednostki (ms) do sugerowanych wartości czasu trwania dialogu. (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 zatwierdzenia.

Nowe funkcje

  • Dodano suwak w komponowaniu na zegarku. Suwak w wierszu 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

  • Makrotest ma teraz minSdkVersion 23. (If2655)

Poprawki błędów

  • Zaktualizuj obsługę przejścia w SwipeDismissableNavHost w SideEffect (I04994, b/202863359)
  • Aktualizacja obsługi przejść 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 commity.

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 witryny developer.android.com z KDocs 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)
  • Dodaliśmy 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 przeniosiliśmy je na koniec listy właściwości, aby można je było podawać jako końcową funkcję lambda. Zmieniliśmy też nazwę bodyColor na contentColor, aby zachować spójność z nowymi nazwami slotów. (I57e78)

Poprawki błędów

  • Dodano linki do poradników z KDocs na temat komponentów przycisku, karty, elementu mapy, motywu, wskaźnika pozycji i skalowania komponentów kolumny z opóźnionym wczytywaniem z witryny developer.android.com. (I22428)
  • Naprawiono błąd w WearOS, który powodował, że pole SwipeToDismissBox nie reagowało na gest przesunięcia. (I9387e)
  • Dodano przykłady przycisku, kompaktowego przycisku, elementu Chip, kompaktowego elementu Chip, karty aplikacji, karty tytułu, przełącznika przycisku, przełącznika elementu Chip i podwójnego przełącznika (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 wygiętego tekstu zgodnie z krzywizną okręgu (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. Zapewniono też ponowne zmierzenie 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% i kończy na MaterialTheme.colors.surface z alfa 0% na tle MaterialTheme.colors.surface z alfa 75%. (Id1548)
  • Zaktualizowaliśmy kolory elementów przełącznika w stanie wybranym, aby były zgodne z najnowszymi wytycznymi dotyczącymi interfejsu użytkownika 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 element składany Scaffold, który stanowi strukturę do obsługi elementów PositionIndicator (np. Scroll lub Volume), obszaru u góry ekranu do wyświetlania czasu i stanu aplikacji, a także Vignette, 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 umieszcza się zawartość aplikacji. (I5e0bf)
  • Dodano implementację TimeText na potrzeby Wear Compose (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ład użycia, w którym tworzymy 2 ekrany i przechodzimy między nimi:

    val navController = rememberSwipeDismissableNavController()
    SwipeDismissableNavHost(
        navController = navController,
        startDestination = "start"
    ) {
        composable("start") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Button(onClick = { navController.navigate("next") }) {
                    Text("Go")
                }
            }
        }
        composable("next") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Text("Swipe to go back")
            }
        }
    }
    
  • 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 klucza 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 danych do zapisania (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 zmieniliśmy 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 dodanie implementacji ScalingLazyRow. (I22734)

Poprawki błędów

  • Zaktualizowaliśmy dokumentację dotyczącą etykiety CompactChip, aby opisać, co się dzieje, gdy nie podasz ani ikony, ani etykiety. (I4ba88)
  • Wprowadziliśmy kilka zmian w komponentach kart na Wear. (I6b3d0)
    1. Odstęp między tytułem a tekstem na karcie tytułu 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 Chip i ToggleChip, aby dostosować je do zmian w specyfikacji UX (I83802).

Wersja 1.0.0-alpha04

18 sierpnia 2021 r.

androidx.wear.compose:compose-foundation:1.0.0-alpha04androidx.wear.compose:compose-material:1.0.0-alpha04 są dostępne. Wersja 1.0.0-alpha04 zawiera te commity.

Nowe funkcje

  • Dodano pole SwipeToDismissBox i modyfikator, który można przesuwać, aby obsługiwać gest przesuwania od lewej do prawej w celu zamknięcia. Chociaż jest to niezależne 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 komponencie 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, rozmiar czcionki i tło. W przyszłości dodamy więcej opcji stylizacji. (I96ac3)
  • Do klasy ScalingLazyColumnState dodaliśmy interfejsy ScalingLazyColumnItemInfo i ScalingLazyColumnLayoutInfo, aby umożliwić 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ł testowy dla 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ślnym kolorem nazwy aplikacji jest 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 komponowania elementów w krzywym (I29941)
  • Dodano nowy typ karty do użytku 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 komponentów ułożonych w łuk (I29941)
  • Dodano nowy typ karty do użytku w aplikacjach (karta tytułu), 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 typu chip, tak 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 element ma ikonę, 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 elementach kart i elementów składowych, aby obraz był przycinany, a nie 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, która obsługuje Material Design na Wear, czyli rozszerzenie Material Design na potrzeby urządzeń noszonych WearOS. Ta pierwsza wersja alfa zawiera wczesne, funkcjonalne implementacje tych elementów:

  • Motyw Material – pozwala skonfigurować kolory, typografię i kształty w sposób spójny w przypadku komponentów używanych w tej bibliotece.
  • Element, Element kompaktowy – elementy mają kształt stadionu i są dostępne w różnych wariantach, aby wyświetlać ikony, etykiety i treści 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ść na 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 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 OS został zaprojektowany zgodnie z tymi samymi zasadami co Compose na Androida, ale jest przeznaczony do urządzeń noszonych. 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.