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
13 listopada 2024 r. 1.4.0 - - 1.5.0-alpha06

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:

Groovy

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

Tworzenie nowego zgłoszenia

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

Wear Compose Material3 w wersji 1.0

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, i usunęliśmy parametr orientation, który nie jest już potrzebny. Nowe zachowanie polega na tym, że TimeText pozostaje na swoim miejscu zarówno w przypadku przewijania poziomego, jak i pionowego. (I71767)
  • LocalHapticFeedback udostępnia teraz domyślną implementację HapticFeedback, gdy interfejs API wibratora wskazuje, że haptyka jest obsługiwana. Do 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 zostanie podany moduł obsługi 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 nowe animacje 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 kropki. (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 umożliwić w razie potrzeby dodanie funkcji dostosowywania (np. dostosowanie animacji AlertDialog przy zachowaniu zalecanego układu treści). Dodatkowo do elementów EdgeButton, ConfirmButtonDismissButton grupy AlertDialogDefaults dodaliśmy parametry ModifierColor. (I4eb71)
  • Zaktualizowaliśmy interfejs API 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 czasu trwania animacji w miejscu 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ść klasy 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 ostrzeżeń i okienek potwierdzenia. (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 projektu Wear Compose Foundation LazyColumn na TransformingLazyColumn. (I0608b)
  • Parametr EdgeButton o nazwie preferredHeight został przemianowany na buttonSize, a jego wartość może być wybrana tylko spośród 4 stałych wartości w nowo wprowadzonej klasie wartości EdgeButtonSize. (Icdd70)
  • Zmieniliśmy nazwę parametru ListSubheader na ListSubHeader i dodaliśmy publicznie dostępne wartości domyślne dla parametrów ListHeaderListSubHeader. (I96730)
  • Dodaliśmy nowe komponenty HorizontalPagerScaffoldVerticalPagerScaffold dla Wear, które zapewniają nowe animacje i koordynację między tekstem czasu a elementami wskaźnika strony. (Iff7d0)
  • Dodaliśmy obsługę urządzeń z pokrętłem do HorizontalPagerScaffoldVerticalPagerScaffold, aby umożliwić użytkownikom poruszanie się po stronach za pomocą urządzeń z pokrętłem. (I9770d)
  • Wprowadziliśmy zmiany w interfejsie MotionScheme, aby uprościć jego używanie i poprawić spójność. Usunięto wbudowane funkcje zapamiętania i przeniesiono wbudowane schematy animacji do dedykowanego obiektu towarzyszącego MotionScheme. Zmieniono nazwy standardMotionSchemeexpressiveMotionScheme na standardowe i wyraziste. (I5fd45)
  • Dodaliśmy obsługę dynamicznego schematu kolorów opartego na kolorach systemu. (I073e9)
  • Zaktualizowaliśmy suwak zgodnie z najnowszymi specyfikacjami UX. (I622bb)

Poprawki błędów

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

Wersja 1.0.0-alpha26

2 października 2024 r.

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 obsługuje teraz możliwość pominięcia domyślnego dolnego przycisku w wariantach zestawu przycisków w przypadku niestandardowych układów, w których nie jest wymagany przycisk EdgeButton. (I34fa9)
  • Dodaliśmy komponent SwipeToReveal dla Wear Material 3 (Ic38b2).
  • Dodaliśmy obsługę dwukierunkowego przesuwania w aplikacji SwipeToReveal na wypadek rzadkich sytuacji, w których bieżący ekran nie obsługuje 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 Kotlin została zaktualizowana do 1.9 (I1a14c).
  • Zmieniliśmy nazwę OpenOnPhoneDialogDefaults.Icon na OpenOnPhoneDialogDefaults.OpenOnPhoneIcon, aby uniknąć konfliktu z poziomem Icon(I0f391).
  • Dodaliśmy obsługę właściwości ScrollIndicator w przypadku właściwości LazyColumn. (Ia546a)
  • Zaktualizowaliśmy wartości domyślne dla TextToggleButton i IconToggleButton. (I7aaa9)
  • Uprościliśmy interfejsy API PickerPickerGroup. (Id0653)
  • Dodaliśmy zmienne CardDefaults.ShapeCardDefaults.Height, które (jako tokeny) były wcześniej prywatne dla deweloperów korzystających z biblioteki. (I1594a, b/347649765)
  • Zmieniliśmy nazwę parametru postępu w przypadku binarnego segmentowanego koła postępu na segmentValue. (Ib72d9)
  • Zaktualizowaliśmy kolory i układ 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 ikony IconToggleButtonTextToggleButton obsługują teraz nową animację kształtu, w której różne kształty oznaczają stany zaznaczone, niezaznaczone i wciśnięte. Wcześniejsza animowana wersja kształtu w stanie „wciśnięte” jest nadal obsługiwana. (I29f03)
  • Usunęliśmy obsługę EdgeButton w komponencie Column, ponieważ w komponencie ScreenScaffold należy wyraźnie określić wysokość EdgeButton. (Ie353d)
  • Dodaliśmy obsługę LazyColumn w komponencie Wear Compose w komponencie ScreenScaffold (i dodaliśmy implementację ScrollInfoProvider w komponencie LazyColumnState). (Ib8d29)
  • Aby zapewnić bardziej elastyczne rozwiązanie, połączyliśmy komponenty LocalTextMaxLines, LocalTextAlignLocalTextOverflow w jedną kompozycję lokalną LocalTextConfiguration. (I5edbc)
  • Dodaliśmy typ arc-large jako dodatkowy typ skali, zarezerwowany dla krótkich ciągów tekstowych nagłówka u samego góry lub u samego dołu ekranu, np. w przypadku nakładek z potwierdzeniem. (I60e3e)
  • Do przycisku dodaliśmy domyślne wartości zalecanych rozmiarów ikon i odstępów treści. (I84675)

Poprawki błędów

  • Zaktualizowaliśmy kolory IconButton i TextButton. (I48324)
  • Zmieniliśmy podstawową funkcję nakładową przycisku, aby była wyrównana do środka w pionie, tak aby była spójna z innymi nakładowymi funkcjami. 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 Material3 dodaliśmy schemat Motion. Będzie ono używane przez komponenty w bibliotece do stosowania specyfikacji animacji, takich jak sprężyny do wyrażania ruchu. (I54ff3)
  • Do biblioteki Material3 dodaliśmy komponenty AppScaffoldScreenScaffold, które obejmują funkcję do koordynowania warstw i przejść TimeTextScrollIndicator. AppScaffold udostępnia komponenty szablonu na najwyższym poziomie, które znajdują się na wszystkich ekranach. Dodanie TimeText do AppScaffold pozwala zachować jego pozycję podczas przesuwania między ekranami. Ekrany mogą same zastąpić lub ukryć tekst czasu. ScreenScaffold udostępnia slot dla ScrollIndicator i automatycznie animuje wskaźnik przewijania podczas przewijania, w tym czas oczekiwania na ukrycie wskaźnika po okresie bezczynności. (I047d6)
  • Dodaliśmy ScrollIndicator z nowym wzornictwem Material 3. Ma on stały rozmiar miniatury na podstawie początkowej zawartości listy, aby uniknąć różnic w rozmiarze podczas wczytywania treści na liście. (Ic228d)
  • Zmieniliśmy interfejs API ScrollAway tak, aby ScreenStage była klasą wartości zamiast klasy enumeracji. Dzięki temu w przyszłości będzie można dodawać kolejne etapy w miarę potrzeby. (I48c93)
  • Dodaliśmy EdgeButton, czyli charakterystyczny przycisk na Wear, którego kształt odpowiada zakrzywionej dolnej krawędzi ekranu (I16369).
  • Dodaliśmy do ScreenScaffold nowy boks na przycisk dolny (np. EdgeButton), który będzie wyświetlany i zmieniał rozmiar w zależności od treści przewijanych (I032eb)
  • Dodaliśmy elementy Modifier.scrollTransformModifier.targetMorphingHeight, aby dodać efekty ruchu Material 3 do elementów w LazyColumn. (Ie229a)
  • Dodaliśmy SegmentedCircularProgressIndicator jako wariant CircularProgressIndicator. Wersja podzielona pokazuje 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 dotychczasowej właściwości CircularProgressIndicator. (I89182)
  • Dodaliśmy AlertDialog, czyli układy do wyświetlania użytkownikowi ważnych promptów. Zawiera ona warianty pary przycisków potwierdzenia/odrzucenia lub pojedynczego przycisku na dole (zwykle przycisku EdgeButton) pod zbiorem opcji. Obie wersje mają sloty na ikonę, tytuł i dodatkowy tekst, w którym można podać więcej szczegółów. (Ieb873)
  • Dodaliśmy symbol OpenOnPhoneDialog, który powinien być używany do wskazywania działania, które będzie kontynuowane na telefonie użytkownika. OpenOnPhoneDialog zostanie zamknięty po upływie określonego czasu. (I978fd)
  • Dodaliśmy komponent dialogu Confirmation, który ma miejsca na ikonę i tekst w linii lub zakrzywiony. W przypadku komunikatów o sukcesie lub niepowodzeniu dostępne są różne wersje. Po upływie limitu czasu potwierdzenia są automatycznie odrzucane. (Ib43e8)
  • Dodaliśmy tło do TimeText, aby rozwiązać problemy, w których przypadku podstawowe treści i TimeText nakładały się na siebie, zasłaniając czas. (Ia11fd)
  • Dodaliśmy komponent LevelIndicator, który pokazuje wartość ustawienia, np. głośności. Można go używać z dotychczasowym komponentem Stepper do tworzenia ekranu głośności. LevelIndicator jest podobny do ScrollIndicator, ale wyświetla się po przeciwnej stronie ekranu, ma szerszą obwódkę i domyślnie inny kolor wskaźnika. (I8a4ac)
  • Dodaliśmy TimePicker z układami dla formatu 24-godzinnego (z sekundami lub bez nich) lub 12-godzinnego z opcją wyboru pory dnia. (Ia5124)
  • Dodaliśmy DatePicker z konfiguracją sortowania kolumn (np. dzień-miesiąc-rok, miesiąc-dzień-rok lub rok-miesiąc-dzień) oraz opcjonalne daty minimalne i maksymalne. (Ibf13b)
  • Dodaliśmy parametr wagi do funkcji text w funkcji TimeText. W przypadku, gdy element TimeText składa się z więcej niż jednego elementu tekstowego, umożliwia to kontrolowanie sposobu rozmieszczenia przestrzeni. (I36700)
  • Dodaliśmy elementy RadioButtonSplitRadioButton, które upraszczają poprzedni interfejs API dzięki połączeniu elementów SelectableButton (Split) i elementu podrzędnego radio control (If7ae8).
  • Dodaliśmy elementy CheckboxButtonSplitCheckboxButton, które upraszczają poprzedni interfejs API dzięki połączeniu elementu (Split)ToggleButton i podrzędnego elementu pola wyboru (Ia8f70).
  • Dodaliśmy SwitchButton i SplitSwitchButton – te komponenty upraszczają poprzedni interfejs API poprzez połączenie interfejsu (Split)ToggleButton i elementu podrzędnego Switch control (I0d349).
  • Zaktualizowaliśmy dokumentację AnimatedText, aby wyjaśnić działanie funkcji przeregulowania. (Iff30a)
  • Dodaliśmy ButtonGroup, aby połączyć 2 lub 3 przyciski, tak aby ich naciśnięcie powodowało odtwarzanie zsynchronizowanej animacji. (Ie27db)
  • Dodaliśmy opcjonalną animację kształtu dla przycisków IconButtonTextButton. (Iffca5)
  • Dodaliśmy dodatkowy wariant kolorystyczny FilledVariant do Button, IconButton, TextButton, CompactButtonEdgeButton (I65fc3)
  • Do parametru forcedSize dodaliśmy parametr 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ę długiego kliknięcia do dodatków 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 adres ToggleButtonColors. (Ie0bf1)

Poprawki błędów

  • Zaktualizowaliśmy parametry Button, FilledTonalButton, OutlinedButton, ChildButtonCompactButton, aby używały nowych parametrów CompositionLocals, LocalTextMaxLines, LocalTextAlignLocalTextOverflow. Dzięki temu możesz wdrożyć zalecenia dotyczące UX. W razie potrzeby deweloperzy mogą bezpośrednio zastąpić te parametry w Tekście (Ie51f7).
  • Zmieniliśmy domyślną szerokość kreski LevelIndicator 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ązaliśmy problem z rekompozycją 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 komity.

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.0.0-alpha22

1 maja 2024 r.

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 Material3. Oprócz zmian kolorów znacznik jest teraz zgodny z tym, który jest używany w przypadku pola wyboru. (Icac7b)

Poprawki błędów

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

Wersja 1.0.0-alpha21

17 kwietnia 2024 r.

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ętego i wyostrzonego 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 komisy.

Zmiany w interfejsie API

  • Dodaliśmy TimeText do biblioteki Material3 na Wear. Ten komponent wyświetla u góry ekranu aktualną godzinę (i dodatkowy stan). Nowe, zwięzłe API Material3 pozwala uniknąć powielania treści w wersji prostej i zaokrąglonej. (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 interfejsu 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 używała 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łnień, wypełnień tonalnych i konturów co przycisk (I05df0).

Zmiany w interfejsie API

  • Dodaliśmy elementy RadioButton/SplitRadioButton jako kontenery dla elementów sterujących wyborem, takich jak element radiowy. Różnica między RadioButtonToggleButton polega na tym, że RadioButton można wybrać (i działa on w ramach grupy wyboru), podczas gdy ToggleButton można włączać i wyłączać (jest niezależny). (I61275)
  • Usunęliśmy komponent LocalContentAlpha z biblioteki Material3 na Wear, aby zachować spójność z biblioteką Compose Material3. (I49a0a)
  • Komponenty Wear Material i Wear Material3, które w swoim interfejsie API udostępniają wartość MutableInteractionSource, zostały zaktualizowane, aby udostępniać wartość opcjonalną MutableInteractionSource, która domyślnie jest ustawiana na null. Nie ma tu żadnych zmian semantycznych: przekazanie wartości null oznacza, że nie chcesz podnosić MutableInteractionSource, a w razie potrzeby zostanie ono utworzone wewnątrz komponentu. Ustawienie wartości null pozwala niektórym komponentom nigdy nie przydzielać MutableInteractionSource, a innym pozwala tworzyć instancję tylko wtedy, gdy jest to konieczne, co zwiększa wydajność tych komponentów. Jeśli nie używasz wartości MutableInteractionSource przekazywanej do tych komponentów, zalecamy przekazanie wartości null. Zalecamy też wprowadzenie podobnych zmian w własnych komponentach. (Ib90fc, b/298048146)
  • Dodaje nowy interfejs API ripple do bibliotek wear:compose-materialwear:compose-material3, który zastępuje wycofany interfejs rememberRipple. Dodaje też tymczasowy CompositionLocal, LocalUseFallbackRippleImplementation, aby przywrócić komponentom Material Design korzystanie z wycofanych interfejsów API rememberRipple/RippleTheme. Zostanie on usunięty w kolejnych stabilnych wersjach. Jest to tylko tymczasowa pomoc przy 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)
  • Wprowadziliśmy drobne ulepszenia w interfejsie API HorizontalPageIndicator i jego dokumentacji. (I60efc)
  • Zmieniliśmy właściwości ColorScheme, aby były niezmienne, co zmniejsza efektywność zmian poszczególnych kolorów, ale zwiększa efektywność częstszego ich używania. Powodem tej zmiany jest fakt, że większość aplikacji nie ma potrzeby aktualizowania poszczególnych kolorów. Jest to nadal 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, co wpłynie na koszty inicjalizacji i wykonania 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 funkcjach 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 łatwiej odróżnić komponent na poziomie Foundation od komponentu na poziomie Material 3. 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 zatwierdzenia.

Zmiany w interfejsie API

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

Wersja 1.0.0-alpha13

4 października 2023 roku

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 do TitleCard opcjonalne pole z napisami. (Ifc45a)
  • Dodaliśmy tokeny kolorów w stylu 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 commity.

Zmiany w interfejsie API

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

Wersja 1.0.0-alpha11

6 września 2023 r.

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

Poprawki błędów

  • Zaktualizowaliśmy typografię na kartach Material3 do wersji TitleMedium. (I597bd)
  • Zaktualizowaliśmy typografię i wyrównanie w przypadku 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 do biblioteki Material3 na Wear. (Ifee99)

Zmiany w interfejsie API

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

Poprawki błędów

  • Zaktualizowaliśmy wskazówki dotyczące typografii w przypadku przycisku tekstowego, aby używać etykiety dużej dla rozmiaru przycisku dużego (Ib10fa).
  • Zaktualizowaliśmy wskazówki dotyczące typografii w przypadku elementu TextButton, aby używać etykiety Large w przypadku rozmiaru LargeButton (I8f3a7).
  • Ze względu na ułatwienia dostępności minimalny docelowy element dotykowy 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 okrągłych przyciskach, w którym 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 material3 (I6bed6).

Zmiany w interfejsie API

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

Poprawki błędów

  • Zaktualizowaliśmy kolory elementów Button, IconButtonTextButton zgodnie z Material Design 3. (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 commity.

Nowe funkcje

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

Zmiany w interfejsie API

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

Poprawki błędów

  • Przycisk będzie teraz dostosowywać swoją wysokość do treści, które zostały powiększone ze względu na duże czcionki dla ułatwień dostępu (Iaf302)
  • Zaktualizowaliśmy kilka wersji demonstracyjnych 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ć/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 Material3 dodaliśmy element TextButton, czyli okrągły przycisk z jednym miejscem na tekst. W przypadku różnych rozmiarów TextButton zalecamy użycie Modifier.touchTargetAwareSize i ExtraSmallButtonSize, SmallButtonSize, DefaultButtonSize i LargeButtonSizeIcon podanych w TextButtonDefaults. Domyślna ikona TextButton nie ma obramowania i przezroczystego tła w przypadku działań o niskim stopniu podkreślenia. W przypadku działań wymagających mocnego podkreślenia użyj filledTextButtonColors. Aby uzyskać średni stopień podkreślenia, użyj obrysu TextButton i ustaw obramowanie na ButtonDefaults.outlinedButtonBorder. Aby uzyskać średni stopień podkreślenia, użyj obrysu TextButton i ustaw obramowanie na ButtonDefaults.outlinedButtonBorder. Aby uzyskać średni stopień podkreślenia, użyj obrysu filledTonalTextButtonColors. (I667e4)
  • Dodaliśmy do biblioteki Material3 na Wear Compose komponenty Card, OutlinedCard, AppCardTitleCard. Obiekty 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 składni lambda. Usunęliśmy też parametr role (można go zastąpić za pomocą Modifier.semantics). Konstruktory ButtonColors są teraz publiczne. (Ie1b6d)

Wersja 1.0.0-alpha04

10 maja 2023 r.

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 przycisk IconButton w kształcie koła z jednym 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 DefaultTextStyle, który ustawia domyślnie wartość PlatformTextStyle.includeFontPadding na „prawda” (obecne ustawienie). Dzięki temu będziemy mogli w przyszłości zsynchronizować wyłączenie domyślnego wypełniania czcionki z bibliotekami w edytorze wiadomości (patrz Poprawka napełniania czcionki w edytorze wiadomości 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 zgodny z biblioteką Material 3 Compose na Androida. Ta pierwsza wersja alfa zawiera wczesne, funkcjonalne implementacje tych elementów:

    • Motyw Material Design – umożliwia spójne konfigurowanie schematu kolorów, typografii i kształtów w komponentach w bibliotece. Motyw Material3 ma poprawione kolory, które zapewniają kontrast ułatwiający dostępność. (I84005)
    • Tekst/ikona – elementy 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 stosować w tej samej aplikacji, głównie dlatego, że odwołują się do różnych motywów, co może prowadzić do nieoczekiwanych niespójności.

Wersja Wear Compose 1.5

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, i usunęliśmy parametr orientation, który nie jest już potrzebny. Nowe zachowanie polega na tym, że TimeText pozostaje na swoim miejscu zarówno w przypadku przewijania poziomego, jak i pionowego. (I71767)
  • TransformingLazyColumn została wprowadzona we wcześniejszych wersjach. Usuwamy aliasy LazyColumn (które przekierowywały do TransformingLazyColumn) na rzecz nowej nazwy TransformingLazyColumn. Usunęliśmy też właściwość height w tagu TransformingLazyColumnVisibleItemInfo. Zamiast niej użyj właściwości measuredHeight. (I0ea1e)
  • Zmieniliśmy specyfikację PagerDefaults.snapFlingBehavior 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 na potrzeby lepszej obsługi 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 komisy.

Zmiany w interfejsie API

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

Poprawki błędów

  • Usunęliśmy błąd związany z renderowaniem TransformingLazyColumn, gdy wysokość treści jest krótsza niż wysokość ekranu. (I6c3e1)
  • Funkcja ScrollInfoProvder w przypadku TransformingLazyColumn prawidłowo śledzi pierwszy element. (I1e4a3)
  • TransformingLazyColumnState zapisuje teraz swój 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 nawigację za pomocą urządzeń z przyciskami obrotowymi. (I9770d)
  • Zaktualizowaliśmy nową wersję PagerDefaults, aby było jasne, że przewijanie będzie domyślnie dopasowywało się do strony. (Iff7d0)
  • TransformingLazyColumnItemScrollProgress to teraz klasa wartości, która powinna poprawić skuteczność. (Ic399e)
  • TransformingLazyColumn obsługuje teraz bezpłatnie sterowanie obrotowe. (I05206)
  • Usługa TransformingLazyColumnState obsługuje teraz scrollToItem. (I507b3)
  • Usunięcie interfejsu API @ExperimentalWearFoundationApi z interfejsu SwipeToReveal (I34a66)

Wersja 1.5.0-alpha03

2 października 2024 r.

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 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)
  • 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, które mogą wystąpić na Wear. (I2902b)
  • Dodaliśmy obsługę LazyColumn, aby udostępnić key i contentType klienta za pomocą layoutItems. (I1bd9c)

Poprawki błędów

  • Zaktualizowaliśmy animacje wygiętego tekstu, aby były płynniejsze, przy użyciu flag malowania. (I73a15)
  • Zaktualizowaliśmy dokumentację Material Dialog, aby odzwierciedlić fakt, że funkcja onDismissRequest nie jest wywoływana, gdy flaga wyświetlania ma wartość false. (Ifd8d6)
  • Naprawiliśmy błąd animacji winiety w oknie dialogowym Material 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ą zakrzywiony 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 zakrzywionym. (I3c740)
  • Dodaliśmy parametr rotationLocked do CurvedLayout.curvedComposable, aby zatrzymać rotację komponentów. (I66898)
  • Tymczasowo usunięto interfejs API LocalUseFallbackRippleImplementation z wear material i wear material3 (I62282)
  • Usunięto WearDevices.SQUARE z wielopoziomowego podglądu @WearPreviewDevices (I11c02).

Poprawki błędów

  • SwipeToReveal umieszcza teraz odkryte elementy w widocznej części ekranu. Jest to przydatne, gdy SwipeToReveal jest używany na liście, ponieważ elementy są zawsze dostępne i nigdy nie wypadają poza ekran. (I38929)
  • Funkcja SwipeToReveal zeruje teraz wartość lastActionType na „Brak”, gdy funkcja animatedTo zakończy działanie. (I59b03)
  • Ulepszona dokumentacja nowego parametru rotationLocked w przypadku curvedComposable. (Ifbd57)
  • Naprawiono awarię podczas przekazywania wartości NaN do argumentu performFling w funkcji performFling.ScalingLazyColumnSnapFlingBehavior (Ic13da)
  • Poprawiono błąd związany z modyfikatorem rozmiaru wygiętego układu (I0fedf).
  • Dodaliśmy obsługę odstępów między literami określonych w sposób podany w parametrze „sp”. (I9f6e3)
  • 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 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 obracanego pierścienia na urządzeniu z systemem Wear OS.
  • SwipeDismissableNavHost zawiera teraz animację wejścia na potrzeby 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ć atrybuty „focusable” („możliwość skupienia”) atrybutem „focusTarget” („focusTarget”), co zwiększa skuteczność. (Id294b)
  • Rozwiązaliśmy problem, który powodował powtarzanie przez ProgressIndicator komunikatu 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 komity.

Poprawki błędów

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

Wersja 1.4.0-beta01

14 maja 2024 r.

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 i interfejs API jest zablokowany (z wyjątkiem wersji oznaczonych jako eksperymentalne). Wersja Wear Compose 1.4 zawiera te nowe funkcje:

  • Dodaliśmy Modifier.rotaryScrollable, nowy modyfikator, który łączy zdarzenia obrotowe z przewijalnymi kontenerami, umożliwiając użytkownikom przewijanie za pomocą pierścienia lub obramowania na urządzeniu z Wear OS. Dodatkowo ScalingLazyColumnPicker obsługują teraz domyślnie wejście obrotowe. Parametr rotaryScrollableBehavior służy do konfigurowania zachowania przewijania lub przyciągania. W przypadku zachowania przyciągania zalecamy użycie parametru flingBehavior również do przewijania dotykiem.
  • SwipeDismissableNavHost zawiera teraz animację wejścia na potrzeby 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 z możliwością przełączania dla ułatwień dostępu.
  • ListHeader obsługuje teraz dostosowywanie wysokości, gdy treść wymaga dodatkowej wysokości, aby pomieścić duże czcionki.

Poprawki błędów

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

Wersja 1.4.0-alpha08

1 maja 2024 r.

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

Zmiany w interfejsie API

  • Wprowadziliśmy następujące zmiany w nowym interfejsie API rotary: zmieniliśmy nazwę interfejsu Modifier.rotary na Modifier.rotaryScrollable, zmieniliśmy nazwę interfejsu RotaryBehavior na RotaryScrollableBehavior, a jego funkcji handleScrollEvent na performScroll, zmieniliśmy nazwę interfejsu 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 w pliku SplitSelectableChip na containerInteractionSource. (Ia8f84)
  • Zmieniliśmy nazwy parametrów wywołania zwrotnego kliknięcia w przypadku SplitSelectableChip – z onClick na onSelectionClick i z onBodyClick na onContainerClick. (I32237)

Poprawki błędów

  • Zaktualizowaliśmy poziomy margines PositionIndicator do 2 pikseli (było 5 pikseli), aby naprawić błąd polegający na tym, że PositionIndicator (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ę marginesu. (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 komisy.

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 IndeterminateStrokeWidth w 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 przycisków obrotowych 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 komisy.

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

  • Opakowanie Modifier.inspectable zostało wycofane. Ten interfejs API spowoduje więcej niepotrzebnych unieważnień modyfikatora, dlatego nie zalecamy jego używania. Deweloperzy powinni implementować metodę inspectableProperties() w obiekcie ModifierNodeElement, jeśli chcą udostępnić właściwości modyfikatorów narzędziom. (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

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

Zmiany w interfejsie API

  • Dodaliśmy nowy interfejs API ripple do bibliotek wear:compose-materialwear:compose-material3, który zastępuje wycofany interfejs rememberRipple. Dodaje też tymczasowy CompositionLocal, LocalUseFallbackRippleImplementation, aby przywrócić komponentom Material Design korzystanie z wycofanych interfejsów API rememberRipple/RippleTheme. Zostanie on usunięty w kolejnych stabilnych wersjach. Jest to tylko tymczasowa pomoc przy 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. Jest to nadal 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 również wzrost kosztów inicjalizacji i wykonania w przypadku standardowych zastosowań. (f5c48b7)
  • Komponenty Wear Material i Wear Material 3, które w swoim interfejsie API udostępniają wartość MutableInteractionSource, zostały zaktualizowane, aby udostępniać wartość opcjonalną MutableInteractionSource, która domyślnie jest ustawiana na null. Nie ma tu żadnych zmian semantycznych: przekazanie wartości null oznacza, że nie chcesz podnosić MutableInteractionSource, a w razie potrzeby zostanie ono utworzone wewnątrz komponentu. Ustawienie wartości null pozwala niektórym komponentom nigdy nie przydzielać MutableInteractionSource, a innym pozwala tworzyć instancję tylko wtedy, gdy jest to konieczne, co zwiększa wydajność tych komponentów. Jeśli nie używasz wartości MutableInteractionSource przekazywanej do tych komponentów, zalecamy przekazanie 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)
  • Ulepszyliśmy odporność funkcji BasicSwipeToDismissBox na przesunięcia NaN, aby uniknąć wyjątków (b983739).
  • Zaktualizowaliśmy BasicSwipeToDismissBox, aby wartości alfa mieściły się w zakresie 0,1.
  • Naprawiliśmy błąd w elementach ToggleButton, SplitToggleButton, Checkbox, SwitchRadioButton, aby zapobiec powtarzaniu się komunikatów ułatwień dostępu (wcześniej dublowały się role semantyczne) (d11eeb7)

Wersja 1.3

Wersja 1.3.1

3 kwietnia 2024 r.

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

Poprawki błędów

  • Naprawiliśmy błąd związany z przesuwaniem w celu wyświetlenia, który umożliwiał interakcję z działaniem wykonanym na jednym elemencie (i jego 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, aby lepiej obsługiwać skalowanie czcionek wybrane przez użytkownika. Może to spowodować przycięcie. Aby rozwiązać ten problem, kształt large dla MaterialTheme wykorzystuje teraz większy promień narożnika (26 dp zamiast 24 dp). Obiekty Chip i ToggleChip używają nowego promienia zaokrąglenia, 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, możesz użyć 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 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 androidx.wear.compose.material do androidx.wear.compose.foundation, wraz z podstawową implementacją funkcji usuwania przez przesunięcie w 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 w przypadku działania dodatkowego.
  • DefaultTextStyle wyłącza teraz wypełnienie czcionki, aby zachować spójność na platformie Android.
  • 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 celu ułatwień dostępu
  • PositionIndicator ma teraz osobne specyfikacje animacji dla animacji w pojawianiu się, znikania i zmiany pozycji. Ze względu na wydajność zalecamy wyłączenie efektów łagodnego pojawiania się i zmiany pozycji 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. Ponadto ustawienie „Ogranicz ruch” 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 wyraźniej widać różnicę między komponentem na poziomie Foundation a poziomem MaterialSwipeToDismissBox. Drugi z nich pobiera kolory z poziomu MaterialTheme, aby wykorzystać je w przesłonach, a pozostałe elementy implementuje w poziomie BasicSwipeToDismissBox. (Ibecfc)
  • Oznaczyliśmy model rememberExpandableStateMapping jako eksperymentalny i poprawiliśmy jego 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 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, gdy element PositionIndicator jest używany z listą przewijalną, zalecamy wyłączenie flag showFadeInAnimationshowPositionAnimation. Jeśli PositionIndicator jest używany jako samodzielny wskaźnik, np. do zmiany głośności, zalecamy włączenie wszystkich 3 animacji. (I44294)
  • Materiały SwipeToDismissBoxState, SwipeToDismissValueedgeSwipeToDismiss zostały wycofane po przeniesieniu funkcji przesuwania w bok do wear.compose.foundation. Zastąp je odpowiednikami z poziomu wear.compose.foundation. (Iee8c9)

Poprawki błędów

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

Wersja 1.3.0-alpha07

4 października 2023 roku

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

Zmiany w interfejsie API

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

Poprawki błędów

  • Wprowadziliśmy ulepszenia w przypadku animacji odsłaniania treści po przesunięciu, dodając animację znikania tekstu głównego działania oraz znikający tekst działania dodatkowego lub zmieniając skalę ikony po pełnym rozwinięciu. (Ib7223)
  • Zalecamy, aby działania „Przesuń, aby wyświetlić” były dostępne. 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ć, że początkowa logika nie spowoduje ponownego skompilowania. Element SwipeToDismissBox jest teraz wyświetlany w rozmiarze pełnego ekranu. (Ie0aa2)
  • Naprawiliśmy błąd, który powodował nieprawidłowe znikanie PositionIndicator. (I2091a)
  • Poprawiona skuteczność PositionIndicator dzięki optymalizacji rekompozycji. Dodano nowe flagi do sterowania animacjami (fadeIn, fadeOutpositionChange) (patrz Zmiany w interfejsie API) (Ifac7d)
  • Dodaliśmy testy mikrobenchmarków dla PositionIndicator (Idf875)

Wersja 1.3.0-alpha06

20 września 2023 r.

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

Poprawki błędów

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

Wersja 1.3.0-alpha05

6 września 2023 r.

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

Poprawki błędów

  • Dodaliśmy obsługę funkcji Przesuń, aby wyświetlić, aby można było przesuwać tylko jeden element naraz. (I3cd7a)
  • Ulepszono dokumentację 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 do biblioteki 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 okrągłych przyciskach, w którym 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 komponenty są zgodne ze sprawdzonymi metodami dotyczącymi interfejsu użytkownika i ułatwiają deweloperom implementowanie SwipeToReveal za pomocą istniejących komponentów w Material Design na Wear. (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 w przypadkach, gdy trzeba je tworzyć na żądanie, niekoniecznie w zakresie @Composable (Iff9e0).
  • SwipeToDismissBox został przeniesiony z pakietu androidx.wear.compose.material do pakietu androidx.wear.compose.foundation. (I275fb)
  • zaktualizowane pliki interfejsu API, aby dodać adnotacje do pomijania zgodności; (I8e87a, b/287516207)
  • Stałe wysokości Chip, CompactChipToggleChip są teraz publicznie dostępne (Idbfde).
  • Opublikowaliśmy poziome i pionowe wypełnienie dla elementów ChipCompactChip. (Ieeaf7)
  • Dodano funkcję wyłączania obsługi przesuwania w elementach SwipeDismissableNavHost za pomocą nowego parametru userSwipeEnabled. (Id2a0b, b/230865655)
  • Zaktualizowaliśmy bibliotekę nawigacji Compose na Wear, aby używała nowego komponentu SwipeToDismissBox z fundacji Wear Compose. (I4ff8e)

Poprawki błędów

  • Naprawiliśmy błąd związany z z-order, który powodował, że expandedItem nie wyświetlał prawidłowej treści po kliknięciu przycisku, jeśli był on dostępny. (I1899d, b/289991514)
  • Poprawa obsługi zaznaczenia SwipeToDismissBox (a tym samym SwipeDismissableNavHost) za pomocą HierarchicalFocusCoordinator (I45362, b/277852486)
  • Wprowadziliśmy poprawkę dotyczącą obsługi gestów w grze SwipeableV2 . (I89737)
  • Sfinalizowaliśmy profile bazowe dla wersji 1.2. (Id5740)
  • Po przeniesieniu SwipeToDismissBox do Foundation implementacja Material SwipeToDismissBox jest teraz przekazywana do Foundation i zawiera domyślne wartości kolorów z jej motywu (If8451).
  • Dodaliśmy do ListHeader semantyczne nagłówki. (Ic5420)
  • Elementy ChipToggleChip 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 obiektów zastępczych. (I91046)
  • StepperInlineSlider obsługują teraz powtarzane kliknięcia przy długim naciśnięciu, dzięki czemu możesz szybko zwiększać lub zmniejszać wartość StepperInlineSlider, przytrzymując przyciski + lub -. (I27359)

Wersja 1.3.0-alpha01

21 czerwca 2023 r.

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

Poprawki błędów

  • Zgodnie z informacjami podanymi w artykułach 1.2.0-alpha071.2.0-alpha10 zmieniamy teraz DefaultTextStyle, aby wyłączyć wypełnienie czcionki, co zapewni spójność na platformie Android. Rozwiązanie to pozwoli rozwiązać niektóre przypadki przycinania tekstu przy dużych rozmiarach czcionki i może też wpłynąć na układy ekranu, dlatego testy zrzutów ekranu trzeba będzie zaktualizować. Tutaj widzimy obcięty tekst (Ic6a86)
przycięty tekst przy dużym rozmiarze czcionki
Rysunek 1. Tekst jest obcię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 skonfigurowanych przez użytkownika jest wymagana ze względu na ułatwienia dostępu. Wiemy, że elementy typu chip na wielu wierszach mogą powodować przycinanie tekstu, gdy są wyświetlane z dużymi rozmiarami czcionek. Dlatego zaktualizujemy element typu 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 do tworzenia aplikacji na Wear(I4725d).
  • Usunęliśmy niespójność w wartościach domyślnych parametrów SwipeToDismissBox contentScrimColor (I2d70f).
  • Naprawiliśmy wartość domyślną DefaultTextStyle używaną w ustawieniu IncludeFontPadding (I737ed)

Wersja 1.2.0-beta01

24 maja 2023 r.

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

Co nowego w Compose w wersji 1.2 na Wear OS

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

  • expandableItem i expandableItems to 2 nowe komponenty Foundation, które umożliwiają rozwijanie elementów w ScalingLazyColumn. Użyj expandableItem w przypadku pojedynczego elementu, który można rozwinąć, np. tekstu, w którym podana jest liczba wierszy. 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 – ten eksperymentalny komponent 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środkowanie elementów selektora.
  • Placeholder – wprowadziliśmy aktualizacje animacji migotania i „Wycieranie”. Efekt wymazywania jest teraz stosowany natychmiast po tym, jak treści są gotowe.
  • ScalingLazyColumn – przeniesiono element ScalingLazyColumn i powiązane z nim zajęcia z androidx.wear.compose.material.ScalingLazyColumn do androidx.wear.compose.foundation.lazy.ScalingLazyColumn. Zaktualizuj aplikację do wersji Foundation.Lazy.
  • SwipeToReveal – dodaliśmy eksperymentalne wsparcie dla funkcji przesuwania w celu wyświetlenia jako sposobu dostępu do działań dodatkowych, uzupełniając istniejący schemat „długiego naciśnięcia”.
  • Stepper – teraz ma przeciążenie z dodatkowym parametrem enableRangeSemantics, aby ułatwić wyłączenie domyślnej semantyki zakresu.
  • Previews – dodaliśmy te niestandardowe adnotacje do wyświetlania kompozytowych na ekranach Wear: WearPreviewSmallRound – podgląd kompozytowego na małym, okrągłym urządzeniu; WearPreviewLargeRound – podgląd kompozytowego na dużym, okrągłym urządzeniu; WearPreviewSquare – podgląd kompozytowego na kwadratowym urządzeniu. Dostępne są też te adnotacje i adnotacje dotyczące podglądu wielu elementów: WearPreviewFontScales wyświetla elementy na urządzeniu Wear OS z różnymi rozmiarami czcionki, a WearPreviewDevices – na różnych urządzeniach Wear OS.
  • Do Wear Compose dodaliśmy parametr DefaultTextStyle, który domyślnie ustawia wartość właściwości PlatformTextStyle.includeFontPadding na „prawda” (jest to bieżące ustawienie). Umożliwi nam to zsynchronizowanie domyślnego wyłączania wyrównywania czcionki z bibliotekami w Compose we wczesnej wersji alfa 1.3. Więcej informacji znajdziesz w artykule 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 zapobiec nieoczekiwanym awariom spowodowanym przez IllegalArgumentException, które zostało wywołane, gdy stos podręczny 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 zatwierdzenia.

Nowe funkcje

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

Zmiany w interfejsie API

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

Poprawki błędów

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

Znane problemy

  • Wykryliśmy błąd w Android Studio, który powoduje błąd podczas renderowania podglądu, gdy jest on opatrzony adnotacjami @WearPreviewDevices i @WearPreviewFontScales. Planujemy wkrótce wprowadzić poprawkę. Pamiętaj, że inne adnotacje podglądu na urządzeniu Wear działają zgodnie z oczekiwaniami w wersji Android Studio Giraffe 2022.3.1 i nowszych.

  • 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 domyślny styl tekstu, 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 obcięty.
  • Nie jest już widoczny, gdy wyłączysz wypełnienie czcionki:
Tekst nie jest przycinany przy dużym rozmiarze czcionki
Rysunek 2.: tekst nie został obcięty.

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

Wersja 1.2.0-alpha09

19 kwietnia 2023 r.

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 pikselach (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 zatwierdzenia.

Zmiany w interfejsie API

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

Poprawki błędów

  • Rozwiązaliśmy problem z zawieszaniem się aplikacji, który występował na ekranie z użyciem komponentu PickerGroup. Upewniliśmy się, że komponent PickerGroup poprawnie obsługuje fokus, gdy żaden selektor nie ma fokusu. Dodaliśmy też obsługę przewijania RSB w demo selektora. (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 wyrównywania czcionki z domyślnymi bibliotekami w Compose. Więcej informacji znajdziesz w artykule Poprawka wyrównywania 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 krzywoliniowym świecie. (I29200)
  • Dodano elementy, które można rozwijać – 2 nowe komponenty obsługujące grupę elementów do rozwinięcia w elementach ScalingLazyColumn lub pojedynczy element do rozwinięcia, np. tekst, w którym można zwiększyć liczbę wierszy. (I95dd5)
  • Dodaliśmy te niestandardowe adnotacje do wyświetlania podglądu elementów składanych na ekranach urządzeń Wear: WearPreviewSmallRound wyświetla podgląd elementu składanego na małym, okrągłym urządzeniu; WearPreviewLargeRound wyświetla podgląd elementu składanego na dużym, okrągłym urządzeniu; WearPreviewSquare wyświetla podgląd elementu składanego na kwadratowym urządzeniu. Dostępne są też te adnotacje i adnotacje dotyczące podglądu wielu elementów: WearPreviewFontScales wyświetla elementy na urządzeniu Wear OS z różnymi rozmiarami czcionki, a WearPreviewDevices – na różnych urządzeniach Wear OS. Aby korzystać z tych wersji, musisz 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 element eksperymentalny, ale ze względu na jego szerokie zastosowanie rozważamy przeniesienie go 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 ma wartość Prawda, minimalne ograniczenia przekazane z elementu kompozytowego nadrzędnego będą dozwolone w komponencie PickerGroup. Jeśli opcja PickerGroup ma wartość Fałsz, spowoduje to zresetowanie minimalnych ograniczeń. (I3e046)
  • Dodaliśmy do interfejsu Picker API parametr animateScrollToOption, aby umożliwić programową animację konkretnej opcji selektora (I6fe67).

Poprawki błędów

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

Wersja 1.2.0-alpha04

8 lutego 2023 r.

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

Nowe funkcje

  • PickerGroup do obsługi wielu selektorów jednocześnie za pomocą interfejsu Focus API. Obsługuje skupienie między różnymi selektorami, umożliwia automatyczne wyśrodkowywanie selektorów na podstawie parametrów i pozwala deweloperom zmieniać skupienie między różnymi selektorami podczas obsługi zdarzeń z grupy. W trybie TalkBack element PickerGroup obsługuje fokus TalkBack, przenosząc go 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 kdocs i testów 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 komisy.

Zmiany w interfejsie API

  • Z poziomu androidx.wear.compose.material.ScalingLazyColumn do andrdoidx.wear.compose.foundation.lazy.ScalingLazyColumn przeniesiono ScalingLazyColumn (i powiązane z nim klasy) (patrz ten przykład migracji). Nowa lokalizacja jest bardziej zbliżona do compose.foundation.lazy.LazyColumn i bardziej naturalna, ponieważ nie jest elementem Material Design. Zmiana ta jest wprowadzana w ramach przygotowań do nowej biblioteki Material3, nad którą będziemy pracować równolegle z obecną biblioteką Material. (I060e7)

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

  • Interfejsy API PositionIndicator kierowane na Material ScalingLazyColumn zostały wycofane. Zaktualizuj je do wersji Foundation.Lazy ScalingLazyColumn. Dodatkowo do pola ScalingLazyListLayoutInfo dodano pole anchorType. (I29d95)
  • ScalingLazyColumn został oznaczony jako przestarzały w pakiecie Materiał do tworzenia aplikacji na Wear (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 układzie ScalingLazyListState.centerItemIndex, tak aby aktualizował on tylko wtedy, gdy wartość się zmieniła (Ia9f38).
  • Zwiększyliśmy wydajność SwipeToDismissBox (I3933b).
  • Dodano testy porównawcze dla ScalingLazyColumn w komponencie Compose Foundation na Wear (Ie00f9).
  • Zaktualizowaliśmy niektóre wewnętrzne metody klas ScalingLazyColumn w Material, aby używały ich odpowiedników z Foundation.Lazy (I38aab)
  • Naprawiliśmy kilka problemów w testach selektora i dodaliśmy więcej testów sprawdzających przewijanie z odstępem (I6ac34).
  • Demonstracje integracji ScalingLazyColumn zostały przeniesione do Foundation.Lazy zamiast do Materiału ScalingLazyColumn (Ic6caa).
  • Dodaliśmy opcjonalne parametry fromDate/toDate do wersji demonstracyjnej DatePicker (I961cd).

Wersja 1.2.0-alpha02

11 stycznia 2023 r.

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

Zmiany w interfejsie API

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

Poprawki błędów

  • Wyłączanie kompilacji wieloplatformowych w przypadku pakietów wear.compose (Iad3d7)
  • Napraw kdocs dla scrollToOption (I6f9a0)
  • Zmiana funkcji PlaceholderState.rememberPlaceholderState() na rememberUpdatedState, aby stan się aktualizował, jeśli funkcja lambda onContentReady. (I02635, b/260343754)
  • Poprawiliśmy problem z drżeniem tekstu w komponencie Picker, wykorzystując nową strategię kompozytowania dodaną do Modifier.graphicsLayer. (I99302)
  • Naprawiliśmy błąd, który powodował migotanie w wersji demonstracyjnej DatePicker (I660bd).
  • Poprawiliśmy ułatwienia dostępu w przypadku 12-godzinnego formatu czasu i prezentacji selektora daty (I05e12).
  • Zaktualizowaliśmy nasze demonstracje selektora daty i godziny, aby zmiany w 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 przygotowaniu treści, 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świetlanymi elementami. Dodano nową właściwość userScrollEnabled, która pozwala określić, czy selektor jest aktywny podczas przewijania przez użytkownika. (I3c3aa)

Poprawki błędów

  • Zmieniliśmy domyślną szerokość obramowania OutlinedButton/OutlinedCompactButton z 2 pikseli na 1 piksel, aby 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 wynosi 0 dp. W przypadku ScalingLazyListAnchorType.ItemStart zostanie obliczone prawidłowe wypełnienie góry, a w przypadku ScalingLazyListAnchorType.ItemCenter obliczenia będą nieprawidłowe, ponieważ wysokość elementów jest potrzebna do prawidłowego dopasowania rozmiaru zawartości, co powoduje niewielki efekt przewijania do miejsca 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 aktualizował on tylko wtedy, gdy wartość się zmieniła (Ia9f38).

Wersja 1.1.1

11 stycznia 2023 r.

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

Poprawki błędów

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

Wersja 1.1.0

7 grudnia 2022 r.

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

Ważne zmiany od wersji 1.0.0

Nowe funkcje

  • Zaktualizowaliśmy eksperymentalną funkcję placeholdera, aby efekt „Wycieranie” był stosowany natychmiast po przygotowaniu treści, zamiast czekać na rozpoczęcie następnej pętli animacji. Wprowadziliśmy też kilka zmian w animacjach migotania i usuwania. (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 wynosi 0 dp. W przypadku ScalingLazyListAnchorType.ItemStart zostanie obliczone prawidłowe wypełnienie góry, a w przypadku ScalingLazyListAnchorType.ItemCenter obliczenia będą nieprawidłowe, ponieważ wysokość elementów jest potrzebna do prawidłowego dopasowania rozmiaru zawartości, co powoduje niewielki efekt przewijania do miejsca 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ść Modifier.placeholderModifier.placeholderShimmer w przypadku zastosowania do tego samego komponentu. (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ę usuwania (250 ms). (Id29c1)
  • Poprawiliśmy błąd interfejsu użytkownika w przypadku efektu usuwania obiektu zastępczego, w którym tło elementu Elementu i Karty było usuwane nieco za wcześnie, ponieważ nie uwzględniano pozycji komponentu na ekranie. (I2c7cb)
  • Zaktualizowaliśmy rysunek tła w miejscu zastępczym, aby w miarę możliwości łączyć kolory zamiast je układać na warstwach. Dzięki temu zmniejszyliśmy ryzyko, że łączenie przezroczystości różnych przyciętych warstw spowoduje przenikanie kolorów z podległych warstw przez krawędzie tła w miejscu zastępczym. (I2ea26)
  • Poprawiliśmy obliczenia ScalingLazyListState.centerItemIndex/centerItemOffset, aby w przypadku 2 elementów po obu stronach linii środkowej widoku urządzenia mobilnego centerItem był tym, który jest najbliżej. (I30709, b/254257769)
  • Naprawiliśmy błąd w funkcji ScalingLazyListState.layoutInfo.visibleItemsInfo, która raportowała nieprawidłowe przesunięcia podczas inicjalizacji funkcji ScalingLazyColumn. Teraz zwracana jest pusta lista, dopóki wszystkie elementy listy nie będą widoczne i nie będą mieć prawidłowych przesunięć. Sprawdzanie ScalingLazyListState.layoutInfo.visibleItemsInfo.isNotEmpty() potwierdzi, że inicjalizacja ScalingLazyColumn została zakończona i że elementy są widoczne. (I3a3b8)

Wersja 1.1.0-beta01

24 października 2022 r.

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

Co zawiera Compose 1.1 na Wear OS

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

  • Wersja Wear Compose 1.1 zawiera te nowe funkcje:
    • Selektor – ulepszenia dotyczące ułatwień dostępu w selektorze, dzięki którym można poruszać się po ekranach selektora za pomocą czytników ekranu, a opis treści jest dostępny dla osób z niepełnosprawnością wzroku
    • Parametr Picker contentDescription jest teraz używany tylko w przypadku wybranej opcji selektora i przyjmuje typ String z możliwością wartości null (w poprzednim commitie konieczne było przekazanie mapowania z opcji do opisu treści, ale używana była tylko wybrana opcja).
    • Elementy selektora są teraz zawsze wyrównane do środka. Rozwiązaliśmy błąd, który powodował zmianę wyrównania po ustawieniu wartości gradientRatio na 0.
    • Chip/ToggleChip – zaktualizowaliśmy domyślne gradienty w Chip/ToggleChip, aby dostosować je do najnowszej specyfikacji UX. ChipDefaults.gradientBackgroundChipColors został zaktualizowany, aby zacząć od 50% koloru podstawowego zamiast 32,5%.
    • Chip/ToggleChip – dodano przeciążenia umożliwiające modyfikowanie kształtów elementów
    • Chip/Button/ToggleButton – dodaliśmy nowy styl z obwódką dla elementów typu „elementy do kliknięcia” i przycisków oraz nowe elementy kompozytowe OutlinedChipOutlinedButton, które zapewniają przezroczysty Chip/Button z cienką ramką.
    • Karta – zaktualizowano domyślne gradienty kart, aby dostosować je do najnowszej specyfikacji UX. CardDefaults.cardBackgroundPainter zaczyna się od 30% koloru podstawowego i kończy na 20% onSurfaceVariant (wcześniej 20% do 10% onSurfaceVariant). ToggleChip.toggleChipColors zmienia się z gradientu liniowego 75% powierzchni na 32,5% koloru podstawowego na 0% powierzchni na 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 (elementów sterujących, kart i przycisków) od koloru tła motywu.
    • InlineSlider/Stepper – dodano role przycisków, aby Talkback mogła je rozpoznać jako przyciski.
    • Scaffold – PositionIndicator ma teraz odpowiedni rozmiar i położenie, aby zajmować 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 nakładać go na normalne tło podczas oczekiwania na załadowanie treści.
    • Po drugie, modyfikator (Modifier.placeholder()) do rysowania widżetu zastępczego w kształcie stadionu nad wczytywanymi treściami.
    • Po trzecie, efekt gradientu modyfikującego lub migotania (Modifier.placeholderShimmer()), który jest nakładany na inne efekty, aby poinformować użytkowników, że czekamy na załadowanie danych.
      • Wszystkie te efekty są zsynchronizowane i migają oraz znikają w zaplanowany sposób.
  • Zaktualizowano zależności Compose Core z wersji 1.2 na 1.3

Zmiany w interfejsie API

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

Poprawki błędów

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

Wersja 1.1.0-alpha07

5 października 2022 r.

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

Nowe funkcje

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

Zmiany w interfejsie API

  • Dodano obsługę fontWeight, fontFamily, fontStyle i fontSynthesis w CurvedTextStyle, która jest dostępna na curvedText i basicCurvedText. Parametry te można wykorzystać do określenia czcionki i stylu, których ma używać wygięty tekst.(Iaa1a8),(I72759)
  • Zaktualizowano parametr offset w funkcji Modifier.scrollAway, aby był zgodny z parametrem 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 ToggleChip, ponieważ nie odpowiadał on specyfikacji UX. Specyfikacja UX wymaga 4 dp odstępu między etykietą a obszarem ikony przełącznika o wymiarach 24 x 24 dp, co daje w sumie 28 dp szerokości. Jednak implementacja nieprawidłowo wyświetla obszar przełącznika 36x24.dp. W efekcie zmniejsza to użyteczną powierzchnię etykiety tekstowej o 8 dp. UWAGA: ta poprawka zapewnia dodatkową przestrzeń na etykietę tekstową, co może pozytywnie wpłynąć na układ tekstu, który się wylewa. Jeśli masz testy zrzutów ekranu, które zawierają ToggleChips, może być konieczne ich zaktualizowanie. (I514c8, b/240548670)

Wersja 1.1.0-alpha02

27 lipca 2022 roku

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

Nowe funkcje

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

Zmiany w interfejsie API

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

Poprawki błędów

  • Wprowadziliśmy animację widoczności winiety podczas wyświetlania lub ukrywania okna dialogowego, aby była ona 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.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 dołączone do biblioteki 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 Chip/ToggleChip/Card, aby dostosować je do najnowszej specyfikacji UX. ChipDefaults.gradientBackgroundChipColors zaczyna się teraz od 50% koloru podstawowego zamiast 32,5%. CardDefaults.cardBackgroundPainter został zaktualizowany, aby zaczynać się od 30% powierzchni podstawowej i kończyć na 20% powierzchni onSurfaceVariant (wcześniej 20% do 10% onSurfaceVariant). ToggleChip.toggleChipColors zmienia się z gradientu liniowego 75% powierzchni na 32,5% powierzchni podstawowej na 0% powierzchni do 50% powierzchni podstawowej. (I43bbd)
  • Dodaliśmy kolor tła (MaterialTheme.color.surface) za elementami Chip/ToggleChips, które mają tło z gradientem, aby były one dobrze widoczne w nieprawdopodobnej sytuacji, gdy tło będzie jasne. (Ibe1a4, b/235937657)
  • Elementy selektora są teraz zawsze wyrównane do środka. Rozwiązaliśmy błąd, który powodował zmianę wyrównania po ustawieniu wartości gradientRatio na 0. (I712b8)

Wersja 1.0

Wersja 1.0.2

7 września 2022 roku

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

Poprawki błędów

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

Wersja 1.0.1

24 sierpnia 2022 r.

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

Poprawki błędów

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

Wersja 1.0.0

27 lipca 2022 roku

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

Najważniejsze funkcje wersji 1.0.0

  • To pierwsza stabilna wersja Compose na Wear OS (więcej informacji).
  • Compose na Wear OS opiera się na podstawowych bibliotekach Compose i zawiera dodatkowe komponenty przeznaczone do noszenia, a także, w stosownych przypadkach, alternatywne implementacje podstawowych komponentów Compose dostosowanych do urządzeń do noszenia.
  • Listę najważniejszych komponentów w Compose na Wear 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 od lewego górnego do prawego dolnego rogu, a teraz jest odwrotnie. (Ic2e77)
  • Zaktualizowaliśmy domyślne gradienty Chip/ToggleChip/Card, aby dostosować je do najnowszej specyfikacji UX. ChipDefaults.gradientBackgroundChipColors został zaktualizowany, aby zaczynał się 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 do 50% powierzchni podstawowej. (I43bbd)
  • Dodaliśmy kolor tła (MaterialTheme.color.surface) za elementami Chip/ToggleChips, które mają tło z gradientem, aby były one dobrze widoczne w nieprawdopodobnej sytuacji, gdy tło będzie jasne. (Ibe1a4, b/235937657)
  • Zaktualizowaliśmy reguły profilu bazowego dołączone do biblioteki 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 odwołanie do fillMaxWidth() w nagłówku listy, ponieważ jest ono zbędne i może powodować problemy, jeśli ScalinglazyColumn zawiera elementy ListHeader()Chip(), ponieważ szerokość będzie się zwiększać lub zmniejszać wraz z przewijaniem elementów ListHeader. (I37144, b/235074035)
  • Naprawiliśmy błąd w ScalingLazyColumn, który powodował, że elementy listy nie były wyświetlane prawidłowo, dopóki nie przewinięto listy, jeśli 0 element listy był wystarczająco duży (w tym wypełnienie) (Ic6159, b/234328517)
  • Wprowadziliśmy niewielką zmianę w 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 do kliknięcia wynosił co najmniej 48 dp, co jest zgodne z wytycznymi dotyczącymi ułatwień dostępu w interfejsie Material. Może to mieć wpływ na układy, w których używasz elementu CompactChips, ponieważ będą one zajmować dodatkowe miejsce. (I3d57c)

Wersja 1.0.0-beta03

1 czerwca 2022 r.

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

Nowe funkcje

  • Funkcja ScalingLazyColumn działa w trybie tworzenia @Preview. (I3b3b6, b/232947354)

Zmiany w interfejsie API

  • Zmieniliśmy domyślną wartość właściwości ScalingLazyColumn.horizontalAlignment z Start na CenterHorizontally, aby zapewnić, że gdy elementy listy nie wypełniają całej szerokości kolumny, 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 przycisku CompactChip jest mniejsza niż wymagana w wytycznych dotyczących ułatwień dostępu w Material Design. Będzie to poprawione w kolejnych wersjach (15 czerwca). Jeśli używasz elementów CompactChip, będzie to miało wpływ 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 go do specyfikacji UX (Ib7ea1)

Wersja 1.0.0-beta02

18 maja 2022 r.

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

Nowe funkcje

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

Poprawki błędów

  • Konstruktor CurvedTextStyle przyjmujący argument TextStyle uwzględnia teraz także parametr fontWeight(może on zostać dodany do konstruktora i metod kopiowania w przyszłych wersjach interfejsu API) (Ieebb9)
  • Ulepszenia dotyczące przesuwania krawędzi. Gdy używasz Modifier.edgeSwipeToDismiss i przesunięcie w lewo jest 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 następnie 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 krawędzi. Gdy używasz Modifier.edgeSwipeToDismiss, funkcja odrzucania przez przesunięcie palcem jest uruchamiany tylko wtedy, gdy pierwszy dotyk nastąpi na krawędzi i przesunięcie palcem w prawo. Wcześniej można było uruchomić funkcję odrzucania przez przesunięcie palcem, przesuwając palcem z dowolnej części ekranu, jeśli przewijanie dociera 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 Material Design na Wear OS w wersji 1.0:

  • Motyw Material Design – służy jako zamiennik Compose for Mobile MaterialTheme. Zawiera kolory, kształty i typografię do tworzenia komponentów na urządzeniach noszonych, które od razu implementują wytyczne UX w stylu Material Design na Wear.
  • Button, CompactButtonToggleButton – przycisk zawiera 1 miejsce na ikonę, obraz lub krótki tekst (maksymalnie 3 znaki). okrągłe, w zalecanych rozmiarach: domyślnym, dużym lub małym; CompactButton zawiera 1 miejsce na dowolne treści (ikonę, obraz lub tekst) i ma okrągły kształt z bardzo małym tłem. CompactButton ma opcjonalne przezroczyste wypełnienie wokół tła, które zwiększa obszar klikalny. ToggleButton to przycisk, który ma 1 miejsce na dowolne treści (krótki tekst, ikonę lub obraz) i stan włączony/wyłączony (zaznaczony/niezaznaczony) z kolorem i różnymi ikonami, które wskazują, czy jest włączony, czy nie.
  • Karty – służą do wyświetlania informacji o aplikacjach, np. powiadomień. Elastyczny projekt do różnych zastosowań z użyciem AppCardTitleCard, który umożliwia tworzenie różnych układów i obsługę obrazów jako zawartości karty lub tła.
  • Elementy typu „chip” – elementy w kształcie stadionu podobne do przycisków, ale o większej powierzchni i z większą liczbą slotów, co umożliwia umieszczanie etykiet, etykiet pomocniczych i ikon. w różnych rozmiarach i z obsługą obrazów jako tła;
  • ToggleChips i SplitToggleChips – element ToggleChips to element z opcją zaznaczania/odznaczania, a dodatkowo z miejscem ToggleControl na ikonę, np. przełącznik lub przycisk radiowy, aby pokazać zaznaczony stan komponentu. Dodatkowo SplitToggleChip ma 2 obszary, które można dotykać: jeden klikalny i jeden przełączalny.
  • CircularProgressIndicator – wskaźnik postępu w stylu Material Design na Wear OS w 2 wersjach. Pierwszy z nich wyraża proporcję ukończenia bieżącego zadania i obsługuje przerwę w okresie kołowego toru między kątami początkowym i końcowym. Drugi oznacza nieokreślony postęp w nieokreślonym czasie oczekiwania.
  • curvedText – stanowi część języka DSL do opisywania CurvedLayouts (wraz z elementami curvedRowcurvedColumn), aby rozmieszczać komponenty wokół urządzeń okrągłych. 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 opiniami z miejscami na ikonę, tytuł i komunikat. Zawiera ona przeciążenia dla 2 przycisków (ujemnego i dodatniego) wyświetlanych obok siebie lub dla co najmniej 1 elementu w wielokrotnym układzie pionowym. Potwierdzenie to treści dialogowe z opinią, które wyświetlają wiadomość przez określony czas. Ma ona miejsce na ikonę lub obraz (który może być animowany).
  • HorizontalPageIndicator – pokazuje poziome położenie strony w sposób odpowiedni dla formatu urządzenia do noszenia. Zaprojektowane tak, aby zajmowały cały ekran i wyświetlały zaokrąglony wskaźnik na urządzeniach z okrągłym ekranem. Można go używać z przeglądarką strony Accompanist.
  • Ikona – implementacja ikony na Wear, która pobiera kolor i przezroczystość z motywu Material na Wear. Informacje o klikalnej ikonie znajdziesz w sekcji przycisk lub element.
  • Selektor – wyświetla przewijaną listę elementów, spośród których można wybrać. Domyślnie elementy będą powtarzane „nieskończenie” w obu kierunkach. Można je wyświetlać w trybie tylko do odczytu, aby ukryć niezaznaczone opcje.
  • PositionIndicator – służy do wyświetlania pozycji przewijania lub innych wskazań pozycji w sposób odpowiedni dla urządzeń noszonych. Zajmuje cały ekran i 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 umożliwia łączenie kilku komponentów Wear Material (takich jak TimeText, PositionIndicatorVignette) w jeden ekran. Zapewnia on odpowiednią strategię układu dla tych komponentów i gromadzi niezbędne dane, aby działały one prawidłowo.
  • ScalingLazyColumn – komponent listy z przewijaniem i powiększeniem/efektem rybiego oka, który stanowi kluczowy element języka Material Design na Wear. Umożliwia skalowanie i 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 na wybór spośród zakresu wartości. Zakres wyboru jest wyświetlany jako słupek, który może być opcjonalnie wyświetlany z separatorami.
  • Stepper – komponent pełnoekranowy, który umożliwia użytkownikom wybranie wartości z zadanego zakresu za pomocą przycisków zwiększania/zmniejszania u góry i u dołu ekranu. W środku znajduje się pole na tekst lub element.
  • SwipeToDismissBox – obsługuje gest przesuwania, 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 zakrzywionego 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. W większości przypadków należy użyć zamiast tego komponentu 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 CurvedLayout, aby w razie potrzeby rozmieszczać elementy. W przypadku curvedRow można określić kierunek układu kątowego i wyrównanie promieniowe. W przypadku curvedColumn można określić kierunek kątowy i kierunek promieniowy.

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

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

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

  • Aby dowiedzieć się więcej o dotychczasowych wersjach alfa, zapoznaj się z informacjami o poprzednich wersjach.

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

  • W przypadku schodkowego regulatora przyciski zmniejszania i zwiększania są teraz wyłączane po osiągnięciu dolnego lub górnego limitu (i stosuje się ContentAlpha.disabled do ikony koloru) (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)
  • Dodawanie kolejnych testów dotyczących funkcji 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, aby określić tło elementu krzywego: CurvedModifier.background, .radialGradientBackground i .angularGradientBackground (I8f392).
  • Umożliwia określenie trybu przepełnienia wygiętego tekstu (przycięty/kropka wielokropka/widoczny). (I8e7aa)
  • Dodano modyfikator CurvedModifier.weight podobny do tego w sekcji „Tworzenie”. Można go używać w przypadku elementów podrzędnych curvedRow i CurvedLayout (w przypadku szerokości) oraz elementów podrzędnych curvedColumn (w przypadku wysokości). (I8abbd)
  • Dodano modyfikatory CurvedModifier.size, .angularSize i .radialSize, aby określić rozmiar elementu zakrzywionego. (I623c7)

Zmiany w interfejsie API

  • Zmień kolejność parametrów, aby zapewnić spójność w używaniu parametru background przed parametrem color w interfejsie Wear Compose API (I43208)
  • Usunięto parametry clockwise & insideOut i zastąpiono je bardziej precyzyjnymi stałymi w przypadku nowych klas. Kierunek wygiętego układu może teraz uwzględniać LayoutDirection, a jeśli nie zostanie określony, jest dziedziczony (If0e6a)
  • Aby rozwiązać problem z interfejsem API w 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 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 kompozycjach, aby poinformować deweloperów o założeniach dotyczących układów. Umożliwi to deweloperom używanie dodatkowych modyfikatorów w przypadku niektórych treści w miejscu reklamy i uniknięcie konieczności dodawania dodatkowych elementów układu. Dodatkowo wprowadziliśmy drobne zmiany w kolorach kart aplikacji i kart tytułowych, tak aby domyślnie timeColorappColor miały kolor contentColor. W razie potrzeby wszystkie te właściwości można zastąpić indywidualnie. (I26b59)
  • Uczyniono obiekt SwipeToDismissBoxState.Companion prywatnym (I39e84)
  • Popraw kolejność parametrów InlineSliderStepper. Prosta zmiana zgodna z wytycznymi dotyczącymi interfejsu API (I11fec)
  • Usunęliśmy obiekt oszczędzania danych dla SwipeToDismissBoxState, ponieważ nie był używany. (Ifb54e)
  • Zaktualizowaliśmy CompactChip, aby był zgodny z najnowszą specyfikacją UX. Odstęp został zmniejszony do 12 dp w poziomie i 0 dp w pionie. Czcionka etykiety została zmieniona z 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 w przypadku tylko ikony. W przypadku użycia tylko ikony upewniliśmy się też, że jest ona wyśrodkowana. (Iea2be)
  • Dodaliśmy do ScalingLazyListLayoutInfo kilka nowych pól, aby umożliwić deweloperom poznanie zastosowanych wartości contentPaddingautoCenteringPadding. Mogą 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 jest on 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 przeciążenia 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 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 dla 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 Scaffolda 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 próbkach. (I7e6fd)
  • Zastępowanie nazw parametrów końcowych i wstępnych parametrami Start i End w elementach TimeText (Iaac32)
  • Dodaliśmy funkcję SwipeToDismissBox z parametrem onDismissed, aby umożliwić częste wywoływanie zdarzenia nawigacji po zakończeniu przesunięcia. (I50353, b/226565726)
  • Usunięto adnotacje ExperimentalWearMaterialApi z użycia 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 Android Runtime (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 DSL można określać bardziej złożone wygięte układy za pomocą serii zagnieżdżonych elementów curvedRowcurvedColumn (które są odpowiednikami elementów wiersza i kolumny w wygiętym układzie). W tych elementach układu można używać 3 elementów: curvedComposable (dodawanie dowolnego elementu @Composable), basicCurvedText (zakrzywiony tekst w fundamentach) i curvedText (zakrzywiony tekst uwzględniający materiał Wear). (Ib776a)
  • Umożliw konfigurowanie strony PositionIndicator. Podstawową pozycję elementu 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 lewo lub prawo). (I2f1f3)
  • W przypadku SwipeToDismissBox zmieniliśmy nazwę pliku SwipeDismissTarget.Original na SwipeToDismissValue.Default, a SwipeDismissTarget.Dismissal na SwipeToDismissValue.Dismissed. Przeniosliśmy też SwipeToDismissBoxDefaults.BackgroundKeySwipeToDismissBoxDefaults.ContentKey odpowiednio do SwipeToDismissKeys.BackgroundSwipeToDismissKeys.Content. (I47a36)
  • Dodaliśmy tryb tylko do odczytu w selektorze, aby umożliwić edycję tylko jednego selektora naraz na ekranach z kilkoma selektorami. Gdy selektor jest tylko do odczytu, wyświetla aktualnie wybraną opcję i etykietę, jeśli została podana. (I879de)
  • Funkcja SwipeToDismissBoxState została przebudowana, aby ograniczyć zakres funkcji ExperimentalWearMaterialApi do funkcji Modifier.swipeableSwipeableState, które są teraz używane wewnętrznie. Usługa SwipeToDismissBoxState ma teraz użytkowników currentValue, targetValue, isAnimationRunningsnapTo, aby obsługiwać typowe przypadki użycia. Daj nam znać, jeśli chcesz, aby udostępniono dodatkowe usługi. Poprawiliśmy też działanie funkcji SwipeableState w przypadku, gdy przesunięcie przesunięcia mieści się w błędach zaokrągleń w przypadku punktu zakotwiczenia. (I58302)

Poprawki błędów

  • Uproszczony i poprawiony kod służący do wykrywania, czy można przewijać zawartość ScalingLazyColumn (używany do podejmowania decyzji, czy wyświetlić pasek przewijania) (I7bce0)
  • Usunęliśmy błąd związany z wskaźnikiem pozycji podczas używania więcej niż jednego stanu i przełączania się między nimi (I320b5).
  • Zaktualizowaliśmy domyślną typografię/czcionki motywu aplikacji Compose na Wear OS, aby były zgodne 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 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 licznikiem postępu lub wskaźnikiem przejrzystość koloru ścieżki (30% >10%) została zaktualizowana. (I659cc)
  • Zaktualizowaliśmy domyślne parametry skalowania ScalingLazyColumn zgodnie z najnowszymi specyfikacjami interfejsu użytkownika Material Design na Wear. W efekcie elementy listy 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 przemianowana na PositionIndicatorVisibility. Niektóre ulepszenia wydajności, aby uniknąć ponownych obliczeń, gdy nie są potrzebne (Iaed9d)
  • Zalecana kolorystyka dla SplitToggleChip została zaktualizowana. Elementy 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. Pokazuje łą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 PickerState, aby można było zaktualizować numberOfOptions. Umożliwia to obsługę takich przypadków użycia jak DatePicker, gdy liczba dni w miesiącu zmienia się w zależności od wybranego miesiąca. Parametr konstruktora PickerState został odpowiednio zmieniony na initialNumberOfOptions. (Iad066)
  • Ukryj PositionIndicator, gdy jest pasek przewijania i nie można przewijać. (Id0a7f)
  • W trosce o spójność z Scaffold nasz komponent Dialog na pełnym ekranie wyświetla teraz PositionIndicatorVignette. Zamiast Column używamy teraz ScalingLazyColumn, co oznacza, że zawartość dialogu jest teraz w ScalingLazyListScope (i zwykle musi być ujęta w element { /* content */ }). Dialog obsługuje odpowiednio parametr verticalArrangement. (Idea13)
  • Zmieniliśmy nazwę właściwości ToggleChipSplitToggleChip toggleIcon na toggleControl, aby lepiej dostosować ją do projektu Material Design. Ma to ułatwić projektantom i programistom poruszanie się po interfejsie API. (If5921, b/220129803)
  • Dodaliśmy nowy wpis caption3 do Typologii motywów Material na Wear. Caption3 to mała czcionka używana do bardzo długich fragmentów tekstu, np. tekstów prawnych. (I74b13, b/220128356)

Poprawki błędów

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

Wersja 1.0.0-alpha17

23 lutego 2022 r.

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

Nowe funkcje

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

Zmiany w interfejsie API

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

Poprawki błędów

  • Zmieniliśmy ScalingLazyColumn, aby nie zajmował całej przestrzeni w swoim elemencie nadrzędnym. Zamiast tego będzie ono mieć rozmiar odpowiadający rozmiarowi zawartości. Dzięki temu będzie ona działać tak samo jak 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 przełącznika (I1b5d6)

Poprawki błędów

  • Domyślny initialCenterItemIndex dla ScalingLazyListState zmieniliśmy z 0 na 1. Oznacza to, że jeśli nie zostanie zastąpiony podczas tworzenia stanu za pomocą 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 będzie ona działać tak samo jak LazyColumn. Jeśli chcesz przywrócić poprzednie zachowanie, ustaw Modifier.fillMaxSize() na ScalingLazyColumn. UWAGA: ta zmiana jest niepełna i zostanie uwzględniona w następnej wersji Alpha. (I3cbfa)

Wersja 1.0.0-alpha15

26 stycznia 2022 r.

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

Zmiany w interfejsie API

  • Do usługi ScalingLazyColumn dodaliśmy nową właściwość autoCentering. Gdy ta opcja jest ustawiona na wartość Prawda (wartość domyślna), wszystkie elementy, w tym pierwszy i ostatni, można przewijać, aby były widoczne w środku widoku listy. Pamiętaj, że jeśli używasz automatycznego wyśrodkowywania, warto ustawić pionowy margines treści na 0 dp. Jeśli ustawisz automatyczne wyśrodkowanie i dodatk do treści w pionowej, to spowoduje to, że przed pierwszym i po ostatnim elemencie listy będzie dostępna dodatkowa przestrzeń, co pozwoli na przewijanie jeszcze dalej. (I2a282, b/214922490)
  • Dodaliśmy komponent Dialog, który umożliwia dowolnemu komponentowi wywołanie pełnoekranowego okna dialogowego, które wyświetla się na wierzchu innych treści. Gdy dialog jest wyświetlany, można go zamknąć przez przesunięcie palcem. Podczas tego gestu 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 zatwierdzenia.

Nowe funkcje

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

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

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

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

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

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

Wersja 1.0.0-alpha13

15 grudnia 2021 roku

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

Zmiany w interfejsie API

  • Użytkownik RangeIcons został przeniesiony do wewnętrznego katalogu (wewnętrzne odwołania 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 navigation-compose do 2.4.0-beta02 i później. (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 komponencie nawigacji w Compose na Wear. (I85f06)

Wersja 1.0.0-alpha12

1 grudnia 2021 r.

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

Nowe funkcje

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

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

Zmiany w interfejsie API

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

Wersja 1.0.0-alpha11

17 listopada 2021 r.

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

Nowe funkcje

  • Dodaliśmy komponent selektora, który pozwala użytkownikowi wybrać element 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ęść. Ta funkcja udostępnia funkcje dostępne już w LazyRow/Column (I4612f).
  • Dodaliśmy obsługę kolumny 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 wybranie wartości z określonego zakresu. 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

  • Aktualizacja obsługi przejść 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)
  • Dodano linki do przewodników z KDocs na stronie developer.android.com dotyczących komponentów CurvedText, TimeText i SwipeToDismissBox. (I399d4)
  • SwipeDismissableNavHost zgłasza błąd, jeśli nie ma bieżącego miejsca docelowego (co oznacza, że NavGraph nie został utworzony za pomocą funkcji użyteczności wear.compose.navigation.composable) (I91403)
  • Dodano dodatkową dokumentację i przykłady użycia źródła czasu w 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 commity.

Zmiany w interfejsie API

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

Poprawki błędów

  • Dodano linki do przewodników z KDocs na temat elementów przycisku, karty, elementu mapy, motywu, wskaźnika pozycji i 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, przycisku kompaktowego, elementu Chip, elementu CompactChip, karty aplikacji, karty tytułu, przycisku przełącznika, elementu ToggleChip i elementu SplitToggleChip (Iddc15).
  • Dodano testy wydajności mikrobenchmarków dla komponentów: Card, Chip, ToggleChip, TimeText i ScalingLazyColumn. (If2fe9)

Wersja 1.0.0-alpha07

29 września 2021 r.

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

Nowe funkcje

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

Zmiany w interfejsie API

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

Poprawki błędów

  • Naprawiono niestabilność testu CurvedRow na mniejszych urządzeniach. (If7941)
  • Usunięto problem z możliwym migotaniem wygiętego wiersza podczas aktualizowania treści. Zapewnienie ponownego pomiaru wygiętego wiersza (Ie4e06).
  • Funkcja ChipDefaults.gradientBackgroundChipColors() została zaktualizowana zgodnie ze specyfikacją UX. Gradient zaczyna się teraz od MaterialTheme.colors.primary z alfa 32,5%, a kończy na MaterialTheme.colors.surface z alfa 0% na tle MaterialTheme.colors.surface z alfa 75%. (Id1548)
  • Zaktualizowaliśmy kolory elementów przełącznika w wybranym stanie, aby były zgodne z najnowszymi wytycznymi dotyczącymi interfejsu użytkownika w Material Design na Wear OS. 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 (takich jak Scroll czy 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 miejsce, 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ładowe użycie, w którym tworzymy 2 ekrany i przechodzimy między nimi:

    val navController = rememberSwipeDismissableNavController()
    SwipeDismissableNavHost(
        navController = navController,
        startDestination = "start"
    ) {
        composable("start") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Button(onClick = { navController.navigate("next") }) {
                    Text("Go")
                }
            }
        }
        composable("next") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Text("Swipe to go back")
            }
        }
    }
    
  • Nawigacja w komponencie Wear Compose jest pakowana jako osobna biblioteka, aby proste aplikacje korzystające z komponentu Wear Compose, które implementują własną nawigację, nie musiały być zależne od biblioteki Androidx Navigation.

Zmiany w interfejsie API

  • Zaktualizowano SwipeDismissableNavHost, aby obsługiwać rememberSaveable przez ustawienie 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 możliwości zapisu (Ie728b).
  • Dodaliśmy obsługę reverseLayout do ScalingLazyColumn. Umożliwia to 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, a także nazwę parametru VignetteValue.Oba 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 implementację ScalingLazyRow. (I22734)

Poprawki błędów

  • Zaktualizowaliśmy dokumentację dotyczącą elementu CompactChip, aby opisać, co się dzieje, jeśli nie podasz ani ikony, ani etykiety. (I4ba88)
  • Wprowadziliśmy kilka zmian w komponentach kart na Wear. (I6b3d0)
    1. Odstęp między elementami karty z tytułem a elementem z treścią zmniejszono z 8 pikseli na 2 piksele.
    2. Czcionka nagłówka karty z tytułem 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

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

Wersja 1.0.0-alpha04

18 sierpnia 2021 r.

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

Nowe funkcje

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

Zmiany w interfejsie API

  • Dodaj klasę CurvedTextStyle, aby określić styl wygięcia tekstu. Podobny do TextStyle, ale obsługuje tylko kolor, 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ły testowe dotyczące pola SwipeToDismiss (I9febc).

Wersja 1.0.0-alpha03

4 sierpnia 2021 r.

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

Zmiany w interfejsie API

  • Dodano komponent CurvedText, który pozwala deweloperom łatwo pisać tekst zgodnie z krzywizną koła (zwykle na krawędzi okrągłego ekranu) (Id1267)
  • Zmieniliśmy nazwę CardDefaults.imageBackgroundPainter() na CardDefaults.imageWithScrimBackgroundPainter(), aby było jasne, że obraz tła ma nałożoną zasłonę. (I53206)
  • Dodanie komponentu ScalingLazyColumn, który zapewnia komponent listy dla Wear Material, który daje efekt rybiego oka, gdy zawartość listy jest zmniejszana i staje się przezroczysta, gdy zbliża się do krawędzi komponentu. (I7070c)

Poprawki błędów

  • Zmieniliśmy domyślny kolor treści appName w karcie aplikacji w odpowiedzi na aktualizację specyfikacji UX. Domyślny kolor nazwy aplikacji to teraz MaterialTheme.colors.onSurfaceVariant. Dodatkowo dodaliśmy brakujący opis parametru dla slotu tytułu. (Ic4ad1)

Wersja 1.0.0-alpha02

21 lipca 2021 r.

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

Nowe funkcje

  • Dodano nową klasę CurvedRow do skompilowanych elementów w łuku (I29941)
  • Dodano nowy typ karty do 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 skompilowanych 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).
  • Odstęp między elementami na początku i na końcu treści w elementach typu chip został zaktualizowany, aby wynosił zawsze 14 dp niezależnie od tego, czy element ma ikonę (wcześniej wynosił 12 dp, jeśli ikona była obecna, i 14 dp, jeśli nie) (I34c86)

Poprawki błędów

  • Dodawanie testów 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 elementach typu „chips”, aby obraz był przycinany zamiast rozciągany, co pozwala zachować proporcje obrazu. (I29b41)
  • Dodaliśmy więcej demonstracji i testów integracji przycisków Button i ToggleButton. (5e27ed2)
  • Dodano więcej testów elementów, aby objąć kolory treści elementów obrazu (Ia9183).

Wersja 1.0.0-alpha01

1 lipca 2021 r.

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

Nowe funkcje

Wear Compose to biblioteka na platformę Kotlin, oparta na Compose, która obsługuje Wear Material Design, 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.
  • Elementy typu „chip” i „compact chip” mają kształt stadionu i są dostępne w różnych wariantach, które umożliwiają umieszczanie ikon, etykiet i etykietek dodatkowych.
  • – 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 dotykowe: jeden klikalny i jeden przełączalny.
  • Button, CompactButton – przyciski o okrągłym kształcie z 1 miejscem na zawartość (ikonę lub minimalny tekst, maksymalnie 3 znaki).
  • ToggleButton – przycisk, który włącza lub wyłącza działanie, z 1 miejscem na ikonę lub minimalny tekst (maksymalnie 3 znaki).
  • Karta, karta aplikacji – prostokąt z zaokrąglonymi rogami, który zawiera miejsca na treści takie jak ikona aplikacji, czas, tytuł i tekst.

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

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

Materiał Compose na Wear 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 albo: a) w bibliotece Wear Compose Material brakuje komponentów (w takim przypadku prosimy o poinformowanie nas, czego brakuje) albo b) korzystają z komponentu, którego nie zalecamy używania na urządzeniu do noszenia.