Wear Compose
Ostatnia aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja Beta | Wersja alfa |
---|---|---|---|---|
4 czerwca 2025 r. | 1.4.1 | - | 1.5.0-beta03 | - |
Deklarowanie zależności
Aby dodać zależność od Wear, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w repozytorium Maven firmy Google.
Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle
aplikacji lub modułu:
Odlotowe
dependencies { implementation "androidx.wear.compose:compose-foundation:1.4.1" // For Wear Material Design UX guidelines and specifications implementation "androidx.wear.compose:compose-material:1.4.1" // For integration between Wear Compose and Androidx Navigation libraries implementation "androidx.wear.compose:compose-navigation:1.4.1" // For Wear preview annotations implementation("androidx.wear.compose:compose-ui-tooling:1.4.1") // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material. // androidx.wear.compose:compose-material is designed as a replacement // not an addition to androidx.compose.material:material. // If there are features from that you feel are missing from // androidx.wear.compose:compose-material please raise a bug to let us know. }
Kotlin
dependencies { implementation("androidx.wear.compose:compose-foundation:1.4.1") // For Wear Material Design UX guidelines and specifications implementation("androidx.wear.compose:compose-material:1.4.1") // For integration between Wear Compose and Androidx Navigation libraries implementation("androidx.wear.compose:compose-navigation:1.4.1") // For Wear preview annotations implementation("androidx.wear.compose:compose-ui-tooling:1.4.1") // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material. // androidx.wear.compose:compose-material is designed as a replacement // not an addition to androidx.compose.material:material. // If there are features from that you feel are missing from // androidx.wear.compose:compose-material please raise a bug to let us know. }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk z gwiazdką.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wear Compose w wersji 1.5
Wersja 1.5.0-beta03
4 czerwca 2025 r.
Element androidx.wear.compose:compose-*:1.5.0-beta03
został zwolniony. Wersja 1.5.0-beta03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
OpenOnPhoneDialog
odczytuje teraz tylko tekst wiadomości w ramach funkcji TalkBack, pomijając semantykę ikony. FunkcjaOpenOnPhoneDialogDefaults
została zaktualizowana w celu usunięcia parametrówiconContentDescription
icontentDescription
z funkcjiicon()
. Ponadto komponentConfirmationDialogDefaults
ma teraz parametry modyfikatorów w komponentachSuccessIcon
iFailureIcon
. (Id2ae2)
Poprawki błędów
- Zmieniliśmy kolejność, w jakiej stosujemy efekt parametrów
SurfaceTransformation
. Wcześniej przekształcenia stosowane do komponentów Wear Material3 były wykonywane w ten sposób: malowanie tła, przekształcenie kontenera, przekształcenie zawartości. Pierwsze 2 elementy są odwrócone, a między nimi stosujemy dowolny przekazany modyfikator, więc podlegają one przekształceniom kontenera. Rozwiązanie to dotyczy takich przypadków jak użycie efektu migotania obiektu zastępczego z elementami w ramach TLC za pomocą parametru transformacji. (I786cf) RevealState.Saver
został dodany, aby służyć do przywracania stanuSwipeToReveal
podczas ponownego tworzenia aktywności lub procesu. FunkcjarememberRevealState
domyślnie używa teraz tej funkcji oszczędzania. (Ie0ecb)- Domyślne przyciski działań głównych i dodatkowych
SwipeToReveal
powinny mieć wartośćButtonDefault.Height
(naprawiono błąd, w którym przyciski zajmowały maksymalną wysokość w przypadku wyższych przycisków). (Ibfba1) - Zmieniliśmy
SwipeToReveal
, aby po wykonaniu gestu przesunięcia palcem w prawo zresetować ostatni komponent, z którym nastąpiła interakcja. (Ia8450) SwipeToReveal
zostało zmienione, aby przyjmowało stanRevealing
, gdy końcowa pozycja przesunięcia znajduje się między ujawniającymi się i ujawnionymi kotwicami oraz jest bliższa kotwi ujawniającej się. (If4458)- Teraz zawartość
ButtonGroup
jest prawidłowo odwrócona w układzie RTL (Ib378d) AnimatedText
obsługuje teraz kierunek tekstu RTL (I4533c).TransformingLazyColumn
poprawnie zmienia rozmiar elementów po usunięciu dolnego elementu (Idacab)TransformingLazyColumn
wykonuje teraz tylko 1 przebieg pomiaru, co zwiększa wydajność dzięki skróceniu czasu wyświetlania klatek. (I501a1)
Wersja 1.5.0-beta02
20 maja 2025 r.
Element androidx.wear.compose:compose-*:1.5.0-beta02
został zwolniony. Wersja 1.5.0-beta02 zawiera te commity.
Poprawki błędów
- Zaktualizowano profile bazowe bibliotek foundation, material i material3. (I53f06)
- Naprawiliśmy błąd w
TransformingLazyColumn
, który powodował zmianę rozmiaru elementów po usunięciu dolnego elementu. (Idacab) - Usunęliśmy błąd związany z
TransformingLazyColumn
, gdy lista zatrzymywała się na górze lub na dole. (I49d00) OpenOnPhoneDialog
w TalkBack powinien odczytywać tekst wygięty w poziomie, a nie opis zawartości ikony. (I4efe8)- Naprawiliśmy błąd w funkcji
SwipeToReveal
, który powodował niewłaściwe raportowanie kotwicy w funkcjiRevealState.currentValue
, gdy parametrhasPartiallyRevealedState
ma wartość false. (I9c7cf) - Przyciski cofnij w
SwipeToReveal
są teraz domyślnieButtonDefaults.Height
. (I1f6c8) BasicSwipeToDismissBox
została poprawiona dzięki wyeliminowaniu korzystania z Canvas do rysowania zasłon. (I68f2c)- Naprawienie błędu ułatwień dostępu w suwaku, w którym ogłoszony procent nie pasował do wartości po aktualizacjach (I91146)
- Naprawiono błąd implementacji
placeholderShimmer
. (Iee39b - Skuteczność
TransformingLazyColumn
została zwiększona dzięki optymalizacji obliczeńScrollProgress
o 30%. (I4c4cb)
Wersja 1.5.0-beta01
7 maja 2025 r.
Element androidx.wear.compose:compose-*:1.5.0-beta01
został zwolniony. Wersja 1.5.0-beta01 zawiera te komity.
Wersja 1.5.0-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest kompletna pod względem funkcji, a interfejs API jest zablokowany (z wyjątkiem wersji oznaczonych jako eksperymentalne).
Wear Compose 1.5.0-beta01 zawiera bibliotekę Wear Compose Material3, która obsługuje nowy system projektowania interfejsu użytkownika o nazwie Material 3 Expressive. Zalecamy przejście z Material na Material 3, aby wprowadzić nowy projekt wizualny w aplikacjach i korzystać z nowych komponentów w ten sposób:
MaterialTheme
, aby skorzystać z aktualizowanych i rozszerzonych schematów kolorów, typografii i kształtów, które nadadzą Twoim projektom głębi i różnorodności.- Dynamiczne motywy kolorystyczne, które automatycznie generują schemat kolorów aplikacji dopasowany do kolorów tarczy zegarka.
- Nowe komponenty automatycznie dostosowują się do większych rozmiarów ekranu
- Przekształcanie kształtu – komponenty okrągłych przycisków, takie jak
IconButton
,TextButton
,IconToggleButton
iTextToggleButton
, obsługują warianty, które animują się po naciśnięciu lub zaznaczeniu. EdgeButton
– nowy przycisk z zaokrąglonymi rogami o specjalnym kształcie, który pasuje do dolnej części ekranu.- szkielety – wprowadzenie
AppScaffold
iScreenScaffold
w celu rozplanowania struktury ekranu i zsynchronizowania animacjiScrollIndicator
iTimeText
; - Przyciski – obsługiwane są liczne przyciski w kształcie stadionu z elastycznymi kontenerami jednoslotowymi i wariantami wieloslotowymi dla przycisków z ikonami i etykietami.
CheckboxButton
iSwitchButton
są dostępne, gdy potrzebne są przełączniki, aRadioButton
to przycisk wyboru (dostępne są też opcje „Split” przełączników i przycisków wyboru). ButtonGroup
– implementuje wyrazistą grupę przycisków w wierszu, które zmieniają kształt po dotknięciu.AlertDialog
odmiany obsługują przyciski OK/Anuluj lubEdgeButton
.ConfirmationDialog
służy do wyświetlania komunikatu z czasem oczekiwania. Obsługuje specjalne animacje dla wersji na telefony, które wskazują na powodzenie, niepowodzenie lub otwarcie.- Selektory – obsługiwane są warianty
TimePicker
iDatePicker
, a także komponenty Picker iPickerGroup
do tworzenia własnych ekranów selektora. ProgressIndicators
– obsługiwane są wskaźniki postępu okrągłe i liniowe (elementCircularProgressIndicator
ma warianty segmentowane i nieokreślone).- Karty – dostępnych jest kilka wariantów kart, w tym
TitleCard
, który oferuje określone układy kart z polami na tytuł, czas, napisy lub treść.TitleCard
może też mieć tło z obrazem, aby wzmocnić znaczenie informacji na karcie. - Przewijanie – komponenty
HorizontalPagerScaffold
,VerticalPagerScaffold
iAnimatedPage
koordynują animacjeHorizontalPageIndicator
iVerticalPagerIndicator
. KomponentyHorizontalPager
iVerticalPager
są dostępne w bibliotece Compose Foundation na Wear. - Zastępniki – rysują one szkieletowy kształt na komponencie w sytuacjach, gdy nie ma dostępnych treści tymczasowych.
- Suwaki i suwaki krokowe – zarówno suwaki, jak i suwaki krokowe umożliwiają użytkownikom wybór spośród zakresu wartości. Suwaki są bardziej kompaktowe i można je podzielić na segmenty, a Stepper to komponent pełnoekranowy, który jest zwykle połączony z elementem
StepperLevelIndicator
. SwipeToReveal
– służy do dodawania dodatkowych działań do komponentu po jego przesunięciu z prawa do lewej.
Dodatkowo pakiet Wear Compose Foundation 1.5.0-beta01 zawiera te nowe komponenty:
TransformingLazyColumn
– lista z lazy load, która przewija się pionowo i obsługuje animacje skalowania i przekształcania- Hierarchiczne grupy punktów skupienia uwagi – służą do adnotacji komponentów w aplikacji, aby śledzić aktywną część kompozycji i koordynować punkt skupienia uwagi.
- Przeglądarki – komponenty
HorizontalPager
iVerticalPager
, oparte na komponentach Compose Foundation z ulepszeniami dotyczącymi Wear, które zwiększają wydajność i spełniają wytyczne dotyczące Wear OS.
Zmiany w interfejsie API
- Zaktualizowano interfejs API hierarchicznej funkcji Focus – zmieniono nazwę parametru
Modifier.hierarchicalFocus
naModifier.hierarchicalFocusGroup
i usunięto parametr wywołania zwrotnego. Usunięto też przeciążenie parametruModifier.hierarchicalFocusRequester
z parametremFocusRequester
. Utworzono też nowy parametrCompositionLocal
,LocalScreenIsActive
, dzięki któremu komponenty mogą informować i sprawdzać, który ekran jest aktywny. (I5ff7c). - Wycofany interfejs
SwipeToReveal
z fundamentów Wear Compose w zamian zastąpiony interfejsami APISwipeToReveal
w komponencie Wear Compose Material i Wear Compose Material3. Aby nadal korzystać z interfejsów API, zastąp importowanie interfejsu Wear FoundationSwipeToReveal
importowaniem interfejsu Wear Compose Material lub Wear Compose Material3. (Ia147d). - Zależność Wear Compose Material3
SwipeToReveal
od Foundation została przeniesiona do pakietu material3, np.RevealValue
,RevealDirection
,RevealActionType
,RevealState
,rememberRevealState
. Deweloperzy powinni zmienić importowanie tych klas i funkcji zandroidx.wear.compose.foundation
naandroidx.wear.compose.material3
. (I640e6). - Zaktualizowaliśmy interfejs API Wear Compose Material3
SwipeToReveal
w następujący sposób: dodaliśmy parametryprimaryAction
,onFullSwipe
,secondaryAction
,undoPrimaryAction
,undoSecondaryAction
ihasPartiallyRevealedState
do kompozytuSwipeToReveal
; usunęliśmy z komponentuRevealState
możliwość dostosowywania elementówpositionalThreshold
ianimationSpec
; usunęliśmy z komponentuRevealState
parametrylastActionType
,revealThreshold
i szerokość; zmieniliśmy konstruktorRevealState
tak, aby przyjmował elementRevealDirection
zamiast elementów kotwiujących; usunęliśmy funkcjecreateRevealAnchors
, kotwy ibidirectionalAnchors
; funkcjeSwipeToRevealScope
primaryAction
,secondaryAction
,undoPrimaryAction
iundoSecondaryAction
zostały przemianowane naPrimaryActionButton
,SecondaryActionButton
,UndoActionButton
i przekształcone w funkcje kompozytowe; elementRevealActionType
został oznaczony jako wewnętrzny. (I885d0). - Dalsze zmiany interfejsu
SwipeToReveal
: zmieniliśmy nazwęonFullSwipe
naonSwipePrimaryAction
; zmieniliśmy nazwęSwipeToRevealNonAnchoredSample
, aby wskazywała użycie parametruhasPartiallyRevealedState
; usunęliśmyactionButtonHeight
, ponieważ domyślna wysokość przycisku jest domyślna, a większą wysokość można ustawić za pomocą modyfikatora; usunęliśmySmallActionButtonHeight
zSwipeToRevealDefaults
; parametr value w konstruktorachRevealValue
iRevealDirection
jest teraz prywatny. (I465ce).
Poprawki błędów
- Poprawiono obsługę
ScreenScaffold
wEdgeButton
, tak aby po usunięciu elementuTransformingLazyColumn
elementEdgeButton
był animowany na swoje miejsce. (I6d366). - Zaktualizowaliśmy zależności Wear Compose od bibliotek Compose do wersji 1.8.0. (I2ef3f).
- Zaktualizowano ruch nieokreślony
CircularProgressIndicator
, aby nie cofał się tymczasowo. (Ieddb1). - Rozwiązanie problemu z interfejsem
SwipeDismissableNavHost
– po przesunięciu palcem w lewo nie przełączał się fokus, co powodowało niepowodzenie wprowadzania za pomocą pokrętła (dotyczy to interfejsu API 36+, który używa przewidywanego cofnięcia). (Ieddb1). - Poprawiona dokumentacja interfejsu Hierarchical Focus API (Idf2ff).
- Zaktualizowaliśmy dokumentację dotyczącą przycisków i kart, aby wyjaśnić, jak
containerPainter
idisabledContainerPainter
zastępującontainerColor
idisabledContainerColor
(I4a453). - W poprzedniej wersji cofnęliśmy zmianę w komponencie
TimeText
, która przeniosłaBroadcastReceiver
do wątku roboczego, ponieważ powodowała problemy w przypadku aplikacji zarządzających własnymi wątkami podczas nawigacji. (I34d02). - Zaktualizowaliśmy przykłady selektora, aby usunąć niepotrzebne wywołania funkcji remember i zamiast tego używać w Pickerze funkcji
rememberUpdatedState
, aby zapamiętać najnowszą funkcję lambdacontentDescription
. (Icb5b1). - Zaktualizowano style tekstu w
TimePicker
iDatePicker
, aby zmiany czcionki nie powodowały już obcinania tekstu. (I26194). - Domyślne wyrównanie tekstu w elementach
ListHeader
iListSubHeader
to odpowiednio wyrównanie do środka i wyrównanie do lewej. (I78339). - Zaktualizowaliśmy przykłady i demonstracje komponentu Foundation oraz komponentu Material Swipe to Reveal, aby uwzględnić w nich niestandardowe działania ułatwień dostępu (niestandardowe działania muszą zostać dodane jako semantyka w treści, a nie w samym komponencie
SwipeToReveal
). (Ie92a3). - Zaktualizowano domyślny
MaxLines
ustawiony na treściEdgeButton
zgodnie z ich rozmiarem – teraz jest to 1 dla bardzo małych, 2 dla małych i średnich oraz 3 dla dużych. (Ie35f6). - Uproszczone
LocalReduceMotion
, aby zwiększyć wydajność. Dzięki temu obserwator jest rejestrowany tylko raz. (Ib1979). - Zmniejszono liczbę ponownych rysowań w
ScrollIndicator
, aby poprawić wydajność. (Ia7a67). - Rozwiązaliśmy błąd w
TransformingLazyColumn
, który powodował, że górny widoczny element na liście nie był prawidłowo skalowany, gdy przycisk krawędzi osiągnął pełną wysokość. (I30580).
Wersja 1.5.0-alpha14
23 kwietnia 2025 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha14
został zwolniony. Wersja 1.5.0-alpha14 zawiera te komity.
Zmiany w interfejsie API
- Wszystkie zależności
SwipeToReveal
w bibliotece Material, które zależą od biblioteki FoundationSwipeToReveal
, zostały przeniesione do pakietu Material, np.RevealValue
,RevealDirection
,RevealActionType
,RevealState
,rememberRevealState
. Deweloperzy powinni zmienić importowanie tych klas i funkcji zandroidx.wear.compose.foundation
naandroidx.wear.compose.material
. (Ib7cb8) - Zaktualizowaliśmy interfejs API funkcji
HierarchicalFocusCoordinator
, aby zamiast kompozytowych używać modyfikatorów. - Informacje o migracji:
HierarchicalFocusCoordinator(function, content)
może zostać zastąpiony przez dodanieModifier.hierarchicalFocus(function())
docontent
lub do otaczającego elementu składanego.ActiveFocusListener { if (it) focusRequester.requestFocus() }
można zastąpić, dodającModifier.hierarchicalFocusRequester(focusRequester)
- Inne rzadsze zastosowania
ActiveFocusListener
mogą używać nowego parametru wModifier.hierarchicalFocus
focusRequester(rememberActiveFocusRequester())
może być zastąpiony przezhierarchicalFocusRequester()
val focusRequester = rememberActiveFocusRequester()
może zostać zastąpiony przezremember { FocusRequester() }
i dodanyModifier.hierarchicalFocusRequester(focusRequester)
. (Ie319a)
Poprawki błędów
- W przypadku tych komponentów:
SwipeToReveal
,BasicSwipeToDismissBox
iSwipeDismissableNavHost
(w przypadkuSwipeDismissableNavHost
tylko w wersji API 35 i starszych) zwiększono próg prędkości, który gesty przesuwania muszą przekroczyć, aby wywołać zmianę stanu. (If47bf) - Rozwiązaliśmy problem z animacją podczas dodawania nowych elementów do
TransformingLazyColumn
. (I589b2)
Wersja 1.5.0-alpha13
9 kwietnia 2025 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha13
został zwolniony. Wersja 1.5.0-alpha13 zawiera te komity.
Zmiany w interfejsie API
- Projekty opublikowane z Kotlin 2.0 wymagają KGP 2.0.0 lub nowszej wersji (Idb6b5).
- Do właściwości
PagerState
dodano usługętargetPage
(I4de8b).
Poprawki błędów
- Zapobieganie niepotrzebnemu przekształceniu podczas odtwarzania z wykorzystaniem przewidywania. (Iecd6d)
- Naprawiono właściwość
isScrollable
obiektuScrollInfoProvider
, aby zwracała bieżącą wartość. (Icbfb8)
Wersja 1.5.0-alpha12
26 marca 2025 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha12
został zwolniony. Wersja 1.5.0-alpha12 zawiera te komity.
Zmiany w interfejsie API
- Ulepszona domyślna implementacja
SwipeToReveal
gestureInclusion
, która ignoruje gesty tylko wtedy, gdy stan komponentu to Covered (Zakryte). (I7e3d6) - W funkcji
SwipeToReveal
zmiennabidirectionalGestureInclusion
jest teraz wartością zamiast funkcją, a do parametruedgeZoneFraction
w funkcjigestureInclusion
dodano parametr@FloatRange
. (Ica7c3)
Poprawki błędów
- Zmień
SwipeToReveal
bidirectionalGestureInclusion
, aby zwracać obiekt zamiast klasy. (I29597) - Wyłączenie korzystania z wibracji podczas przeprowadzania testów w ramach
RoboElectric
. (I58bd1) - Zaktualizuj
SwipeToReveal
dopełnienie między treścią a przyciskami akcji, a także dopełnienie między ikoną a tekstem przycisków akcji. (Ic46cb)
Wersja 1.5.0-alpha11
12 marca 2025 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha11
został zwolniony. Wersja 1.5.0-alpha11 zawiera te komisy.
Zmiany w interfejsie API
- Zaktualizowano klasę
PagerState
, usuwając z niej klasę podstawową Compose FoundationPagerState
i dodając właściwościcurrentPage
,currentPageOffsetFraction
orazpageCount
. Zaktualizowaliśmy interfejsGestureInclusion
, zmieniając nazwę metody naignoreGestureStart
. (I4ae07) - Dodaj
requireOffset
doSwipeToDismissBoxState
jako zalecany sposób uzyskania przesunięciaSwipeToDismissBoxState
. (I21042) - Dodano
CurvedModifier.semantics
, początkowo obsługując opis treści i indeks przejścia (I0b093). - Dodaliśmy opcję
CurvedModifier.clearAndSetSemantics
, aby umożliwić wyłączenie wygiętej semantyki.CurvedText
nadal domyślnie ustawia opis treści jako tekst, aletimeTextCurvedText
itimeTextSeparator
nie ogłaszają już treści. (I4b568) - Domyślne obsługiwanie gestów przesuwania przez
HorizontalPager
zostało przemianowane naPagerDefaults.gestureInclusion
. Domyślnie gesty przesuwania są ignorowane tylko wtedy, gdy zaczynają się od lewej krawędzi pierwszej strony i tylko wtedy, gdy Talkback jest wyłączony. W innych przypadkach domyślnie gesty przesuwania nie są ignorowane przez przeglądarkę, więc nie są dostępne dla obsługi gestów przesuwania w celu zamknięcia. (Iee486) - Dodano przewijanie obrotowe w interfejsie API
rotaryScrollable
. Do działaniarotaryScrollable
dodaliśmy przewijanie ponad ekran i przewijanie zagnieżdżone. Ta zmiana powinna zapewnić równorzędną funkcjonalność przewijania i przewijania zagnieżdżonego między przewijaniem dotykowym a przewijaniem obrotowym. (I71926) - Dodano obsługę strefy przesunięcia palcem po krawędzi w funkcji
SwipeToReveal
. Domyślne działanie przeglądarki FoundationSwipeToReveal
polega teraz na niedopuszczaniu do przesuwania, gdy gest rozpoczyna się od krawędzi. Domyślne zachowanie Material3SwipeToReveal
polega teraz na niedopuszczaniu do przesuwania, gdy gest rozpoczyna się od krawędzi, gdySwipeDirection
jest ustawiony na jeden kierunek. (I32ef0) - TLC używa teraz domyślnie pustego contentPadding zamiast umieszczania pierwszych i ostatnich elementów w środku. (I77ab7)
Poprawki błędów
- Biblioteki Wear Compose zostały zaktualizowane do kompilatora Kotlin 2.0. (I2de79)
- Naprawiono wygięty
LetterSpacing
w przypadku próbki w modelu podstawowym. (Iebf7c)
Wersja 1.5.0-alpha10
26 lutego 2025 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha10
został zwolniony. Wersja 1.5.0-alpha10 zawiera te komity.
Zmiany w interfejsie API
- Ustaw
SwipeToRevealDefaults
jako publiczną. (I0c34c) - Parametr
swipeToDismissEdgeZoneFraction
został zastąpiony parametremHorizontalPager
. Zamiast tego wprowadzono nowy parametrgestureInclusion
, który można wykorzystać do uzyskania odpowiedniego zachowania polegającego na przesunięciu w celu zamknięcia.gestureInclusion
przyjmuje instancjęGestureInclusion
, która decyduje, czy kolejne zdarzenie przewijania powinno być wykonane. Dopuszczanie gestu oznacza, że jest on obsługiwany przez pager. W przeciwnym razie będzie obsługiwany gdzie indziej, np. przez element obsługujący gest przesunięcia w dół. Nowe domyślne działanie polega na niedopuszczaniu do gestów na lewym skraju pierwszej strony w pagerze, a także na umożliwieniu usuwania elementów przez przesunięcie w tym obszarze. Na wszystkich pozostałych stronach pager może obsługiwać wszystkie gesty, co oznacza, że nie można na nich używać funkcji przesunięcia w bok, aby zamknąć. Aby uzyskać działanie funkcji „przesuń, aby zamknąć” na wszystkich stronach, po prostu podaj niestandardowy elementGestureInclusion
(patrzPagerDefaults.disableLeftEdgeOnFirstPage
), który ignoruje bieżącą stronę. Kolejną wprowadzoną tutaj zmianą jest to, że komponent Pager nie jest już domyślnie wyświetlany na pełnym ekranie. Aby uzyskać takie działanie, dodaj elementModifier.fillMaxSize()
. (I9d3aa) - Zmieniliśmy nazwę interfejsu API przesuń, aby wyświetlić na
createAnchors
nacreateRevealAnchors
(If5999). - Usunęliśmy
RevealScope
z interfejsu API do wyświetlania treści po przesunięciu palcem. (Ie4ad5) - Usunęliśmy z interfejsu API przesuń, aby wyświetlić wartości
RevealValue
i Revealing (Odsłanianie) oraz Revealed (Odsłonięty). (I8dbc5) - Zmieniliśmy nazwę interfejsu API przesuń, aby wyświetlić na
SwipeDirection
naRevealDirection
. (I7472f) - Zmieniliśmy podpis parametru
positionalThreshold
w funkcjirememberRevealState
w modułuSwipeToReveal
. (I29c0a) - Dodaliśmy nowy parametr
overscrollEffect
do wersjiScalingLazyColumn
,TransformingLazyColumn
iScreenScaffold
. (I0cee8) - W przypadku korzystania z funkcji
PagerDefaults#snapFlingBehaviour
parametrpagerSnapDistance
został zastąpiony parametrem IntmaxFlingPages
, który umożliwia określenie maksymalnej liczby stron, do których ma przenosić użytkownika funkcja Pager. (I8cfc0) - Wear Pager ma teraz własną
PagerScope
zamiast korzystać z Compose FoundationPagerScope
. (I9195b) - Dodaliśmy obsługę
lineHeight
w przypadku krzywych tekstów (I1c936). - Dodaliśmy właściwości
initialAnchorItemIndex
iinitialAnchorItemOffset
do właściwościTransformingLazyColumnState
irememberTransformingLazyColumnState
, aby można było określać początkową pozycję przewijania w elementachTransformationLazyColumn
. (I0a0d5) - Wycofaj parametr
runWithTimingDisabled
i zastąp go parametremrunWithMeasurementDisabled
, który lepiej opisuje zachowanie – wszystkie dane są wstrzymane. Dodatkowo udostępnij superklasęMicrobenchmarkScope
, ponieważ ponowne zadeklarowanie funkcjirunWithMeasurementDisabled
do otwartego dostępu jest niemożliwe, ponieważ jest ona wbudowana. (I9e23b, b/389149423, b/149979716) - Aby uniknąć ograniczania się do
TransformingLazyColumnItemScrollProgress
, dodaliśmy do interfejsu API parametrTransformingLazyColumnItemScrollProgress.Unspecified
. (I0835d)
Poprawki błędów
- Ulepszanie Kdoc w przypadku
CurvedTextStyle
(Id45e3) - Funkcja
SwipeableV2
(część implementacjiSwipeToReveal
) jest teraz wewnętrzna, a nie publiczna, ale jest dostępna tylko dla grupy bibliotek. (Idbb94) - Dodaliśmy testy do projektu
HierarchicalFocusCoordinator
(I1ce54, b/395548918). - Wprowadziliśmy ulepszenia dotyczące
SwipeToReveal
w próbkach skomponowanej podstawy pod makijaż. (I5f307) - Naprawić dane semantyczne osi przewijania w komponencie
verticalScrollAxisRange
w komponencieTransformingLazyColumn
w celu zwiększenia dostępności (I68123) - Zwiększenie wydajności haptycznych przycisków obrotowych w Wear4+ przez usunięcie niepotrzebnych wątków w tle (I39cfe)
- Zmień
SwipeDismissableNavHost
naPredictiveBackNavHost
tylko w przypadku wersji API 36 i późniejszych. (I59bed) - Dodaliśmy zabezpieczenie przed awarią podczas korzystania z ustawienia zmniejszania ruchomości. (I01e2c)
- Wprowadziliśmy pobieranie z wyprzedzeniem w przypadku
TransformingLazyColumn
, aby zmniejszyć zacięcia (Icca88)
Wersja 1.5.0-alpha09
29 stycznia 2025 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha09
został zwolniony. Wersja 1.5.0-alpha09 zawiera te komity.
Zmiany w interfejsie API
- W
CurvedTextStyle
odstępy między literami zostały podzielone na odstępy w lewo i w prawo. Jest to wymagane, ponieważ litery w kierunku zgodnym z kierunkiem ruchu wskazówek zegara rozchodzą się od linii bazowej, a litery w kierunku przeciwnym do ruchu wskazówek zegara – zbliżają się do niej (potrzebne jest więc większe odstępowanie liter) (I4b848) - Funkcja
CompositionLocal
LocalReduceMotion
została uproszczona, aby zwracać wartość logiczną zamiast obiektuReduceMotion
. InterfejsReduceMotion
został wycofany. Poprzednie wywołania, takie jakLocalReduceMotion.current.enabled()
, można zastąpić wywołaniemLocalReduceMotion.current
(I4937f) - W języku
PagerDefaults
elementsnapAnimationSpec
został przemianowany naSnapAnimationSpec
. (I20c9a)
Wersja 1.5.0-alpha08
15 stycznia 2025 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha08
został zwolniony. Wersja 1.5.0-alpha08 zawiera te komity.
Zmiany w interfejsie API
- Zaktualizowaliśmy wszystkie biblioteki Wear Compose do trybu „wyraźnego interfejsu API”. (Iebf9f)
- Parametr animacji przyciągania pager'a został włączony do
PagerDefaults
. (Ifff64) - Dodaliśmy parametr offset do
SwipeToDismissBoxState
. (I586bd)
Poprawki błędów
- Reakcje haptyczne pokrętła są teraz wywoływane w wersjach Wear OS po V (Idb03e).
Wersja 1.5.0-alpha07
11 grudnia 2024 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha07
został zwolniony. Wersja 1.5.0-alpha07 zawiera te komity.
Zmiany w interfejsie API
TransformingLazyColumnState
umożliwia teraz obserwowanie bieżącego postępu przewijania na podstawie indeksów elementów kotwicy. (I72b01)- Dodaliśmy animacje do
TransformingLazyColumn
podczas dodawania, usuwania i przenoszenia elementów, jeśli mają one noweModifier.animateItem
. (Iecb9c) TransformingLazyColumn
udostępnia teraz wartościbeforeContentPadding
iafterContentPadding
. (Iccd5f)TransformingLazyColumn
udostępnia teraz kompozycję lokalnąLocalTransformingLazyColumnItemScope
, której komponenty (takie jakCard
iButton
w Material3) mogą używać do automatycznego przekształcania się po umieszczeniu w komponencieTransformingLazyColumn
. Rozmówcy mogą wyłączyć automatyczne przekształcanie za pomocą nowego opakowaniaTransformExclusion
. (I1652f)
Poprawki błędów
- Zaktualizowaliśmy minimalną i maksymalną prędkość rzutu dla urządzeń z ukierunkowaniem na U i nowszych. (I33559)
- Rozwiązaliśmy problem, który powodował awarię, jeśli element w
TransformingLazyColumn
nie zawierał żadnych komponentów (Idb99d). - Dodaliśmy obsługę
ScrollFeedbackProvider
dla haptycznych przycisków obrotowych w Androidzie Vanilla Ice Cream. (Ibc553) - W celu zmniejszenia prawdopodobieństwa przypadkowego wywołania przesunięcia podczas przewijania pionowego zwiększyliśmy wartość „slop” (siła dotyku) w przypadku
SwipeToReveal
. (Ic0672) - W wersji 35 i nowszych interfejsu API zaktualizowaliśmy funkcję
SwipeDismissableNavHost
, aby używała funkcjiPredictiveBackHandler
, gdy jest dostępna. W takim przypadku zostaną zastosowane nowe animacje. (I08c11)
Wersja 1.5.0-alpha06
13 listopada 2024 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha06
został zwolniony. Wersja 1.5.0-alpha06 zawiera te komity.
Zmiany w interfejsie API
- Uprościliśmy funkcję
ScrollInfoProvider
, zmieniając ją w funkcjęPagerState
, i usunęliśmy parametrorientation
, który nie jest już potrzebny. Nowe zachowanie polega na tym, żeTimeText
pozostaje na swoim miejscu zarówno w przypadku przewijania poziomego, jak i pionowego. (I71767) TransformingLazyColumn
została wprowadzona we wcześniejszych wersjach. Usuwamy aliasyLazyColumn
(które przekierowywały doTransformingLazyColumn
) na rzecz nowej nazwyTransformingLazyColumn
. Usunęliśmy też właściwośćheight
w taguTransformingLazyColumnVisibleItemInfo
. Zamiast niej użyj właściwościmeasuredHeight
. (I0ea1e)- Zmieniliśmy specyfikację
PagerDefaults.snapFlingBehavior
snapAnimationSpec
zTween
naSpring
.(I10d02, b/349781047, b/303807950) - Przekształciliśmy wersję
LocalReduceMotion
CompositionLocal
w wersję stabilną (Ia6f32).
Poprawki błędów
- Zaktualizowaliśmy
Modifier.rotaryScrollable
, aby używaćfocusTargetWithSemantics
na potrzeby lepszej obsługi semantyki w przypadku funkcji obrotowej. (Ief0a0) - W przypadku bibliotek Compose zaktualizowaliśmy minimalną wersję interfejsu API do 1.7.4. (I88b46)
- Aby obejść błąd związany z przycinaniem, wyłączyliśmy w
TransformingLazyColumn
przekształcanie szerokości. (I3dfb8) - Naprawiliśmy błąd powodujący znikanie elementów po przewinięciu za pomocą
TransformingLazyColumn
(Id7668). - Dodano
LazyLayoutSemantics
dlaTransformingLazyColumn
. (Ia8f56)
Wersja 1.5.0-alpha05
30 października 2024 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha05
został zwolniony. Wersja 1.5.0-alpha05 zawiera te komisy.
Zmiany w interfejsie API
- Dodaliśmy obsługę
animateScrollTo
wTransformingLazyColumnState
, aby umożliwić animację przewijania do elementu. (I4097d) - Dodaliśmy
requestScrollTo
w przypadkuTransformingLazyColumnState
, aby opóźnić przewijanie do następnego pomiaru. (I20a5e) - Dodaliśmy obsługę właściwości
contentPadding
w przypadku właściwościTransformingLazyColumn
. (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 elementachTransformingLazyColumn
teraz prawidłowo śledzi pierwszy element. (I1e4a3) TransformingLazyColumnState
zapisuje teraz stan (anchorItemIndex
ianchorItemScrollOffset
). (I3d265)
Wersja 1.5.0-alpha04
16 października 2024 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha04
został zwolniony. Wersja 1.5.0-alpha04 zawiera te komity.
Zmiany w interfejsie API
- Zmieniliśmy nazwę projektu Compose Foundation na Wear
LazyColumn
naTransformingLazyColumn
, aby odróżnić go od projektu Compose FoundationLazyColumn
. (I0608b) - Dodano obsługę przycisków obrotowych w przyciskach poziomych/pionowych, aby umożliwić użytkownikom poruszanie się po przyciskach za pomocą urządzeń z klawiaturą obrotową. (I9770d)
- Zaktualizowaliśmy nową wersję
PagerDefaults
, aby było jasne, że przewijanie będzie domyślnie dopasowywało się do strony. (Iff7d0) TransformingLazyColumnItemScrollProgress
jest teraz klasą wartości, która powinna zwiększyć skuteczność. (Ic399e)TransformingLazyColumn
obsługuje teraz bezpłatnie sterowanie obrotowe. (I05206)- Usługa
TransformingLazyColumnState
obsługuje terazscrollToItem
. (I507b3) - Usunięcie interfejsu API
@ExperimentalWearFoundationApi
z interfejsuSwipeToReveal
(I34a66)
Wersja 1.5.0-alpha03
2 października 2024 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha03
został zwolniony. Wersja 1.5.0-alpha03 zawiera te commity.
Zmiany w interfejsie API
- Dodaliśmy obsługę dwukierunkowego przesuwania w aplikacji
SwipeToReveal
na wypadek rzadkich sytuacji, w których bieżący ekran nie obsługuje funkcji usuwania przez przesunięcie. . Domyślnie przewijanie w celu wyświetlenia jest nadal możliwe tylko przy przesuwaniu od prawej do lewej. Zdecydowanie zalecamy zachowanie domyślnego zachowania, aby uniknąć konfliktu z przesuwaniem w celu zamknięcia. (Ifac04) - Zaktualizowaliśmy
LazyColumnState
, aby zastąpićcanScrollForward
icanScrollBackward
– teraz przewijanie zostaje zatrzymane, gdy pierwszy lub ostatni element znajduje się dokładnie na środku ekranu. (Ia77d7) - Dodaliśmy nowe komponenty
HorizontalPager
iVerticalPager
, które rozwiązują typowe problemy, takie jak obsługa fokusa i interakcja z systemem przesuwania w stronę, które mogą wystąpić na Wear. (I2902b) - Dodaliśmy obsługę
LazyColumn
, aby udostępnić danekey
icontentType
klienta za pomocąlayoutItems
. (I1bd9c)
Poprawki błędów
- Zaktualizowaliśmy animacje wygiętego tekstu, aby były płynniejsze, przy użyciu flag malowania. (I73a15)
- Zaktualizowaliśmy dokumentację Material Dialog, aby odzwierciedlić fakt, że funkcja
onDismissRequest
nie jest wywoływana, gdy flaga wyświetlania ma wartość false. (Ifd8d6) - Naprawiliśmy błąd animacji winiety w oknie dialogowym Material (I126bf).
Wersja 1.5.0-alpha02
18 września 2024 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha02
został zwolniony. Wersja 1.5.0-alpha02 zawiera te komity.
Zmiany w interfejsie API
- Dodaliśmy obsługę
LazyColumn
w komponencie Wear Compose w komponencieScreenScaffold
(i dodaliśmy implementacjęScrollInfoProvider
w komponencieLazyColumnState
). (Ib8d29) - Dodano
viewportSize
doLazyColumnLayoutInfo
. (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 flagauserScrollEnabled
ma wartośćfalse
. (I490ab, b/360295825) - Wprowadziliśmy poprawkę, która rozwiązuje problem z nieoczekiwanym wypełnieniem pionowym w przypadku wygiętego tekstu. Wysokość wygiętego tekstu jest teraz lepiej dopasowana do rzeczywistej przestrzeni zajmowanej przez tekst. Pamiętaj, że może to spowodować nieprawidłowe działanie testów zrzutów ekranu, które obejmują wygięty tekst (Iaa6ef).
- Wprowadziliśmy cofnięcie poprawki
Dialog
, w której wywoływana była funkcjaonDismissRequest
callback, gdyshowDialog
była ustawiona na wartość false, ponieważ w niektórych przypadkach powodowało to wielokrotne wywoływanie funkcjionDismissRequest
. (I64656)
Wersja 1.5.0-alpha01
4 września 2024 r.
Element androidx.wear.compose:compose-*:1.5.0-alpha01
został zwolniony. Wersja 1.5.0-alpha01 zawiera te komity.
Zmiany w interfejsie API
- Dodaliśmy do biblioteki Wear Compose Foundation nowy komponent
LazyColumn
z powiązanymi interfejsami APILazyColumnState
iLazyColumnScope
. 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 interfejsuitemsIndexed
jego wersję z indeksem.LazyColumnScope
(Ib4a57) - Dodaliśmy modyfikatory
LazyColumn
, aby umożliwić skalowanie i przekształcanie. (Ie229a) HierarchicalFocusCoordinator
została przeniesiona do wersji stabilnej. (I31035)- Dodaliśmy obsługę odstępów między literami w tekstach zakrzywionych. (I3c740)
- Dodaliśmy parametr
rotationLocked
doCurvedLayout.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, gdySwipeToReveal
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 funkcjaanimatedTo
zakończy działanie. (I59b03) - Ulepszona dokumentacja nowego parametru
rotationLocked
w przypadkucurvedComposable
. (Ifbd57) - Naprawiono awarię podczas przekazywania wartości
NaN
do argumentuperformFling
w funkcjiperformFling
.ScalingLazyColumnSnapFlingBehavior
(Ic13da) - Poprawiono błąd związany z modyfikatorem rozmiaru wygiętego układu (I0fedf).
- Dodaliśmy obsługę odstępów między literami określonych w sposób podany w parametrze „sp”. (I9f6e3)
- Usunęliśmy błąd w Material2 Dialog, który powodował, że funkcja
onDismissRequest
nie była wywoływana, gdy okno dialogowe stało się niewidoczne (I64656). - Nazwa
LayoutCoordinates.introducesFrameOfReference
została zmieniona naLayoutCoordinates.introducesMotionFrameOfReference
, aby lepiej odzwierciedlała jej przeznaczenie. Zmieniono nazwę powiązanej funkcji, aby obliczała współrzędne na podstawie tej flagi. (I3a330)
Wersja 1.4
Wersja 1.4.1
12 lutego 2025 r.
Element androidx.wear.compose:compose-*:1.4.1
został zwolniony. Wersja 1.4.1 zawiera te komity.
Poprawki błędów
- Zapobiegliśmy awarii podczas korzystania z ustawienia globalnego zmniejszenia ruchu, które było wywoływane na niektórych platformach, na których to ustawienie nie było dostępne. (I01e2c)
Wersja 1.4.0
4 września 2024 r.
Element androidx.wear.compose:compose-*:1.4.0
został zwolniony. Wersja 1.4.0 zawiera te komitowane zmiany.
Ważne zmiany od wersji 1.3.0
ScalingLazyColumn
iPicker
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 parametrurotaryScrollableBehavior
, aby skonfigurować zachowanie przewijania lub przyciągania. W przypadku przyciągania zalecamy użycie parametruflingBehavior
, aby zapewnić obsługę przyciągania i przewijania dotykiem.Modifier.rotaryScrollable
to nowy modyfikator, który łączy zdarzenia obrotowe z przewijalnymi kontenerami, umożliwiając użytkownikom przewijanie za pomocą pierścienia lub obramowania na urządzeniu z Wear OS.SwipeDismissableNavHost
zawiera teraz animację wejścia dla przejść w aplikacji.PositionIndicator
jest teraz domyślnie wyświetlany podczas pierwszego wyświetlania ekranu.
Dodatkowe zmiany
- Pełny zestaw zmian wprowadzonych w wersji 1.3.0 znajdziesz w informacjach o wersji beta01.
Wersja 1.4.0-rc01
21 sierpnia 2024 r.
Element androidx.wear.compose:compose-*:1.4.0-rc01
został zwolniony. Wersja 1.4.0-rc01 zawiera te komisy.
- Zaktualizowaliśmy zależności Compose do wersji 1.7.0-rc01 i przypiąć nawigację Compose na Wear do androidx.lifecycle 2.8.3.
Wersja 1.4.0-beta03
12 czerwca 2024 r.
Element androidx.wear.compose:compose-*:1.4.0-beta03
został zwolniony. Wersja 1.4.0-beta03 zawiera te komity.
Poprawki błędów
- Zaktualizowaliśmy
Modifier.rotaryScrollable
, aby zastąpić atrybut „focusable” atrybutem „focusTarget”, co zwiększa skuteczność. (Id294b) - Rozwiązaliśmy problem, który powodował, że
ProgressIndicator
powtarzał swoje ogłoszenie wTalkBack
. (I94563) - Zaktualizowaliśmy profile bazowe biblioteki Compose na Wear. (I3cbc3)
Wersja 1.4.0-beta02
29 maja 2024 r.
Element androidx.wear.compose:compose-*:1.4.0-beta02
został zwolniony. Wersja 1.4.0-beta02 zawiera te komity.
Poprawki błędów
- Aby rozwiązać problemy z obcinaniem tekstu, zwiększyliśmy szerokość granicy przekazywaną czytnikom ekranu z tekstu wygiętego (Id865f).
- Ograniczyliśmy granicę
HorizontalPageIndicator
przekazywaną czytnikom ekranu – wcześniej wskaźnik zajmował cały ekran (Id8d7a).
Wersja 1.4.0-beta01
14 maja 2024 r.
Element androidx.wear.compose:compose-*:1.4.0-beta01
został zwolniony. Wersja 1.4.0-beta01 zawiera te komity.
Wersja 1.4-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest kompletna pod względem funkcji, a interfejs API jest zablokowany (z wyjątkiem wersji oznaczonych jako eksperymentalne). Wersja Wear Compose 1.4 zawiera te nowe funkcje:
- Dodaliśmy
Modifier.rotaryScrollable
, nowy modyfikator, który łączy zdarzenia obrotowe z przewijalnymi kontenerami, umożliwiając użytkownikom przewijanie za pomocą pierścienia lub obramowania na urządzeniu z Wear OS. DodatkowoScalingLazyColumn
iPicker
obsługują teraz domyślnie wejście obrotowe. Aby skonfigurować przewijanie lub przyciąganie, użyj parametrurotaryScrollableBehavior
. W przypadku zachowania przyciągania zalecamy użycie parametruflingBehavior
również do przewijania dotykiem. SwipeDismissableNavHost
zawiera teraz animację wejścia dla przejść w aplikacji.PositionIndicator
jest teraz domyślnie wyświetlany podczas pierwszego wyświetlania ekranu.- Dodano
SelectableChip
iSplitSelectableChip
jako wariantToggleChip
. Użyj ich z opcjąRadioButton
, aby zapewnić semantyczne opcje wyboru zamiast przełączania opcji semantycznych na potrzeby ułatwień dostępu. ListHeader
obsługuje teraz dostosowywanie wysokości, gdy treść wymaga dodatkowej wysokości, aby dopasować duże rozmiary czcionki.
Poprawki błędów
- Naprawiliśmy błąd polegający na tym, że elementy do wyboru wyświetlały komunikat o kliknięciu dwukrotnie, aby je zaznaczyć, gdy były już zaznaczone. (I7ed88)
Wersja 1.4.0-alpha08
1 maja 2024 r.
Element androidx.wear.compose:compose-*:1.4.0-alpha08
został zwolniony. Wersja 1.4.0-alpha08 zawiera te komisy.
Zmiany w interfejsie API
- Wprowadziliśmy następujące zmiany w nowym interfejsie API rotary: zmieniliśmy nazwę interfejsu
Modifier.rotary
naModifier.rotaryScrollable
, zmieniliśmy nazwę interfejsuRotaryBehavior
naRotaryScrollableBehavior
, a funkcjęhandleScrollEvent
naperformScroll
, zmieniliśmy nazwęRotaryScrollableAdapter
naRotaryScrollableLayoutInfoProvider
i usunęliśmy właściwośćscrollableState
. (I0c8a6) - Wprowadziliśmy dodatkowe zmiany w interfejsie API rotary: zmieniliśmy nazwę
RotaryScrollableLayoutInfoProvider
naRotarySnapLayoutInfoProvider
(ten dostawca jest potrzebny tylko w przypadku rotary z snapem); zmieniliśmy typ parametrusnapOffset
wRotaryScrollableDefaults.snapBehavior snapOffset
z Int na Dp. (Iddebe) - Zmieniliśmy nazwę parametru
clickInteractionSource
w plikuSplitSelectableChip
nacontainerInteractionSource
. (Ia8f84) - Zmieniliśmy nazwy parametrów wywołania zwrotnego kliknięcia w przypadku
SplitSelectableChip
– zonClick
naonSelectionClick
i zonBodyClick
naonContainerClick
. (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, żePositionIndicator
(pasek przewijania) nakłada się na przewijane treści. Pamiętaj, że ta zmiana może spowodować nieprawidłowe wyświetlanie dotychczasowych zrzutów ekranu zawierającychPositionIndicator
ze względu na zmianę odstępów. (I57472) - Ulepszamy dokumentację nowego interfejsu API obrotowego, opisując różnice między urządzeniami obrotowymi o niskiej i wysokiej rozdzielczości. (I63abe)
- Usunęliśmy błąd związany z wartością poza zakresem w funkcji
SwipeDismissableNavHost
, który mógł być wywoływany, gdy interpolowane wartości alfa były mniejsze od zera. (Ib75a1, b/335782510)
Wersja 1.4.0-alpha07
17 kwietnia 2024 r.
Element androidx.wear.compose:compose-*:1.4.0-alpha07
został zwolniony. Wersja 1.4.0-alpha07 zawiera te komity.
Zmiany w interfejsie API
- Dodaliśmy
Modifier.rotary
, nowy modyfikator, który łączy zdarzenia obrotowe z przewijalnymi kontenerami, umożliwiając użytkownikom przewijanie za pomocą pierścienia lub obramowania na urządzeniu z Wear OS. Dodatkowo komponentyScalingLazyColumn
i Picker obsługują teraz domyślnie wejście obrotowe z nowymi przeciążeniami, które obejmują parametrrotaryBehavior
umożliwiający określenie konfiguracji przewijania lub przyciągania. Jeśli parametrrotaryBehavior
ma wartość snap, zalecamy też podanie wartości snap w parametrzeflingBehavior
, aby umożliwić przewijanie dotykiem. (I2ef6f) - Źródła
NestedScroll
Drag i Fling są zastępowane przezUserInput
iSideEffect
, 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
SelectableChip
iSplitSelectableChip
, aby wyraźniej odróżnić przełączniki, takie jakSwitch/Checkbox
, od elementów sterujących, które można wybrać, takich jakRadioButton
. Spowoduje to zastąpienie wcześniej dodanych przeciążeń funkcjiToggleChip/SplitToggleChip
parametramiselectionControl
. (Ia0217) - Zmieniono modyfikator widoczności
IndeterminateStrokeWidth
wProgressIndicatorDefaults
na publiczny. (I5b5a4)
Wersja 1.4.0-alpha06
3 kwietnia 2024 r.
Element androidx.wear.compose:compose-*:1.4.0-alpha06
został zwolniony. Wersja 1.4.0-alpha06 zawiera te komisy.
Poprawki błędów
- Dodaliśmy wewnętrzny projekt obsługi urządzeń z klawiaturą obrotową w ramach większego projektu przenoszenia zachowania takich urządzeń do Androida X z Horologist. (I617d1)
- Dodaliśmy wewnętrzny projekt obsługi haptycznej w ramach większego projektu przenoszenia działania kółka z Horologist do AndroidX. (I5568a)
Wersja 1.4.0-alpha05
20 marca 2024 r.
Element androidx.wear.compose:compose-*:1.4.0-alpha05
został zwolniony. Wersja 1.4.0-alpha05 zawiera te komity.
Zmiany w interfejsie API
- Upubliczniliśmy właściwości
initialCenterItemIndex
iinitialCenterItemScrollOffset
usługiScalingLazyListState
. (I0c616) - Ustawiliśmy
FullScreenStrokeWidth
zProgressIndicatorDefaults
jako publiczne. (Ibea23)
Poprawki błędów
- Zwiększyliśmy wydajność usługi
PositionIndicator
, zmniejszając liczbę wywołań do usługilayoutInfo
z poziomuScalingLazyColumn
. (Idc83d)
Wersja 1.4.0-alpha04
6 marca 2024 roku
Element androidx.wear.compose:compose-*:1.4.0-alpha04
został zwolniony. Wersja 1.4.0-alpha04 zawiera te komisy.
Zmiany w interfejsie API
- Dodaliśmy nową przeciążenie funkcji
ToggleChip
iSplitToggleChip
, która zamiast parametrutoggleControl
przyjmuje parametrselectionControl
. Należy go używać z elementemRadioButton
, aby zapewnić możliwość wyboru semantyki zamiast przełączania semantyki na potrzeby ułatwień dostępu (I1d6d9) - Zaktualizowaliśmy nazwy parametrów nowej funkcji przeciążenia
selectionControl
zonSelected
naonSelect
w przypadku zdarzeńToggleChip
iSplitToggleChip
(I1a971).
Wersja 1.4.0-alpha03
21 lutego 2024 r.
Element androidx.wear.compose:compose-*:1.4.0-alpha03
został zwolniony. Wersja 1.4.0-alpha03 zawiera te commity.
Zmiany w interfejsie API
- Opakowanie
Modifier.inspectable
zostało wycofane. Ten interfejs API spowoduje więcej niepotrzebnych unieważnień modyfikatora, dlatego nie zalecamy jego używania. Jeśli deweloperzy chcą udostępnić właściwości modyfikatora narzędziom, zachęcamy ich do implementowania metodyinspectableProperties()
w obiekcieModifierNodeElement
. (Ib3236)
Poprawki błędów
- Naprawiliśmy błąd w dokumentacji dotyczącej adnotacji
WearPreview*
. (Id526d)
Wersja 1.4.0-alpha02
7 lutego 2024 r.
Element androidx.wear.compose:compose-*:1.4.0-alpha02
został zwolniony. Wersja 1.4.0-alpha02 zawiera te commity.
Poprawki błędów
- Naprawiliśmy błąd związany z funkcją przesuwania w celu wyświetlenia, w której można było wchodzić w interakcje z wykonywanym działaniem dotyczącym jednego elementu (i go anulować) przez rozpoczęcie przesuwania innego elementu (Ide059).
- Zaktualizowaliśmy funkcję
ListHeader
, aby umożliwić dostosowywanie wysokości, gdy treści wymagają dodatkowej wysokości, aby pomieścić duże rozmiary czcionki. (I7290c, b/251166127)
Wersja 1.4.0-alpha01
24 stycznia 2024 r.
Element androidx.wear.compose:compose-*:1.4.0-alpha01
został zwolniony. Wersja 1.4.0-alpha01 zawiera te commity.
Nowe funkcje
- Dodaliśmy animację wejścia do aplikacji
SwipeDismissableNavHost
(cfeb79a). PositionIndicator
jest teraz domyślnie wyświetlany podczas pierwszego wyświetlania ekranu. Ta zmiana została wprowadzona, aby ułatwić spełnienie wytycznych dotyczących jakości na Wear. Oznacza to, że testy zrzutów ekranu będą musiały zostać zaktualizowane na ekranach, które zawierająPositionIndicator
, ponieważPositionIndicator
nie były wcześniej wyświetlane. (419cef7)
Zmiany w interfejsie API
- Dodaliśmy nowy interfejs API ripple do bibliotek
wear:compose-material
iwear:compose-material3
, który zastępuje wycofany interfejsrememberRipple
. Dodaje też tymczasowyCompositionLocal
,LocalUseFallbackRippleImplementation
, aby przywrócić komponentom Material Design korzystanie z wycofanych interfejsów APIrememberRipple/RippleTheme
. Zostanie on usunięty w kolejnych stabilnych wersjach. Jest to tylko tymczasowe ułatwienie migracji w przypadku, gdy używasz niestandardowegoRippleTheme
. Więcej informacji o migracji i tłumaczenie tej zmiany znajdziesz na stronie developer.android.com. (af92b21) - Zmieniliśmy właściwości
ColorScheme
, aby były niezmienne, co zmniejsza efektywność zmian poszczególnych kolorów, ale zwiększa efektywność częstszego ich używania. Powodem tej zmiany jest fakt, że większość aplikacji nie ma potrzeby aktualizowania poszczególnych kolorów. Nadal jest to możliwe, ale będzie wymagać większej liczby ponownych kompilacji niż wcześniej. W związku z tym znacznie zmniejszyliśmy liczbę subskrypcji stanu we wszystkich plikach kodu źródłowego. Spowoduje to wzrost kosztów inicjalizacji i kosztów działania w przypadku standardowych zastosowań. (f5c48b7) - Komponenty Wear Material i Wear Material 3, które w swoim interfejsie API udostępniają wartość
MutableInteractionSource
, zostały zaktualizowane, aby udostępniać wartość opcjonalnąMutableInteractionSource
, która domyślnie jest ustawiana na null. Nie ma tu żadnych zmian semantycznych: przekazanie wartości null oznacza, że nie chcesz podnosićMutableInteractionSource
, i w razie potrzeby zostanie on utworzony wewnątrz komponentu. Ustawienie wartości null pozwala niektórym komponentom nigdy nie przydzielaćMutableInteractionSource
, a innym pozwala tworzyć instancję tylko wtedy, gdy jest to konieczne, co zwiększa wydajność tych komponentów. Jeśli nie używasz wartościMutableInteractionSource
przekazywanej do tych komponentów, zalecamy przekazanie zamiast niej wartości null. Zalecamy też wprowadzenie podobnych zmian w własnych komponentach. (f8fa920) - Zaktualizowaliśmy
rememberExpandableState
, aby zapisywać stan rozwinięcia. Dzięki temu dane są przechowywane podczas przechodzenia na inny ekran i przywracane po powrocie do pierwotnego ekranu. (5c80095)
Poprawki błędów
- Zaktualizowaliśmy ustawienie
ReduceMotion
, aby używać odtwarzacza z uwzględnieniem cyklu życia. (7c6b122) - Zaktualizowaliśmy listenera
TouchExplorationStateProvider
, aby uwzględniał cykl życia (be28b01). - Usunęliśmy warstwę materialcore w przypadku
CompactButton
, aby poprawić wydajność (25db8e9) - Ulepszyliśmy odporność funkcji
BasicSwipeToDismissBox
na przesunięcia NaN, aby uniknąć wyjątków (b983739). - Zaktualizowaliśmy
BasicSwipeToDismissBox
, aby wartości alfa mieściły się w zakresie 0,1. - Naprawiliśmy błąd w elementach
ToggleButton
,SplitToggleButton
,Checkbox
,Switch
iRadioButton
, aby zapobiec powtarzaniu się komunikatów ułatwień dostępu (wcześniej dublowały się role semantyczne) (d11eeb7)
Wersja 1.3
Wersja 1.3.1
3 kwietnia 2024 r.
Element androidx.wear.compose:compose-*:1.3.1
został zwolniony. Wersja 1.3.1 zawiera te komitowane zmiany.
Poprawki błędów
- Naprawiliśmy błąd związany z funkcja wyświetlania po przesunięciu, w którym można było wchodzić w interakcje z wykonywanym działaniem dotyczącym jednego elementu (i go anulować) przez rozpoczęcie przesuwania innego elementu. (Ide059)
Wersja 1.3.0
24 stycznia 2024 r.
Element androidx.wear.compose:compose-*:1.3.0
został zwolniony. Wersja 1.3.0 zawiera te commity.
Ważne zmiany od wersji 1.2.0
- Klasa
SwipeToDismissBoxState
, enumeracjaSwipeToDismissValue
i funkcja rozszerzeniaModifier.edgeSwipeToDismiss
są teraz częścią pakietuandroidx.wear.compose.foundation
, a nieandroidx.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
iSwipeToRevealChip
pomogą Ci wdrożyćrecommended swipe-to-reveal guidance
. KlasaSwipeToRevealSample
pokazuje, jak używać tych komponentów. W wersji 1.3.0-alpha02 wprowadziliśmy zmianę, która powoduje, że obiekty
Chip
iToggleChip
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łtlarge
dlaMaterialTheme
wykorzystuje teraz większy promień narożnika (26 dp zamiast 24 dp). ObiektyChip
iToggleChip
używają nowego promienia zaokrąglenia rogów, aby uniknąć przycinania treści w rogach elementu Chip iToggleChip
.- Większość elementów
Chips
iToggleChips
pozostaje niezmieniona, ponieważ ich wysokość wynosi domyślnie 52 piksele. Jednak obiektyChip
iToggleChip
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.
- Większość elementów
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
nafalse
w komponencieSwipeDismissableNavHost
, i dodaj przycisk, który umożliwia użytkownikom przejście do poprzedniego ekranu. - Aby wyłączyć animacje wskaźnika pozycji podczas animacji łagodnego pojawiania się i zmieniania pozycji na liście przewijanej, użyj obiektu
SnapSpec
. - Podczas oczekiwania na załadowanie treści do odtworzenia w aplikacji multimedialnej wyświetl pustą kompozycję
Placeholder
. - Aby utworzyć kolekcję elementów, które można rozwinąć na żądanie, użyj eksperymentalnej klasy
ExpandableStateMapping
.
Wersja 1.3.0-rc01
10 stycznia 2024 r.
Element androidx.wear.compose:compose-*:1.3.0-rc01
został zwolniony. Wersja 1.3.0-rc01 zawiera te commity.
Poprawki błędów
-
Zaktualizowaliśmy duży kształt
MaterialTheme
, aby miał zaokrąglone rogi o promieniu 26 dp. Będzie on teraz używany przez element Chip iToggleChip
. Ta zmiana jest potrzebna, aby umożliwić dostosowanie wysokości, gdy treści wymagają dodatkowej wysokości, aby pomieścić duże rozmiary czcionek. W przeciwnym razie istniejący kształt stadionu będzie przycinać niektóre treści.Rysunek 1. Tekst przycięty w rogu. Rysunek 2.: tekst nie został obcięty. Ta zmiana może spowodować przerwanie testów zrzutów ekranu. (I2e6ae)
Wersja 1.3.0-beta02
13 grudnia 2023 r.
Element androidx.wear.compose:compose-*:1.3.0-beta02
został zwolniony. Wersja 1.3.0-beta02 zawiera te commity.
Poprawki błędów
- Przywróciliśmy domyślne przesuwanie w aplikacji
BasicSwipeToDismissBox
. W poprzedniej wersji ta funkcja została zmieniona, tak aby przesuwanie było możliwe tylko wtedy, gdy palec dotyka ekranu. (Id8e76)
Wersja 1.3.0-beta01
15 listopada 2023 r.
Element androidx.wear.compose:compose-*:1.3.0-beta01
został zwolniony. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
Wersja 1.3-beta01 Compose na Wear OS oznacza, że ta wersja biblioteki jest kompletna pod względem funkcji, a interfejs API jest zablokowany (z wyjątkiem wersji oznaczonych jako eksperymentalne). Wersja Wear Compose 1.3 zawiera te nowe funkcje:
- Funkcje
SwipeToDismissBoxState
,SwipeToDismissValue
iModifier.edgeSwipeToDismiss
zostały przeniesione z wersjiandroidx.wear.compose.material
do wersjiandroidx.wear.compose.foundation
, wraz z podstawową implementacją funkcji przesunięcia w poziomie, aby zamknąć, w wersjiBasicSwipeToDismissBox
. Dzięki temu gest przesunięcia w bok do zamknięcia może być używany niezależnie od Material Design, np. z elementuSwipeDismissableNavHost
w komponencieandroidx.wear.compose.navigation
. W przypadku Material Design zalecamy nadal korzystanie z elementuSwipeToDismissBox
z poziomuandroidx.wear.compose.material
, ponieważ pobiera on kolory z poziomuMaterialTheme
, a potem deleguje pozostałą implementację do elementuBasicSwipeToDismissBox
. SwipeDismissableNavHost
obsługuje teraz nowy parametruserSwipeEnabled
, 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 komponentySwipeToRevealCard
iSwipeToRevealChip
w Material Design, które są zgodne z zaleceniami dotyczącymi UX w przypadkuCard
iChip
. Obsługuje też cofanie w przypadku działania dodatkowego.DefaultTextStyle
wyłącza teraz wypełnienie czcionki, aby zachować spójność na platformie Android.- Elementy
Chip
iToggleChip
mają teraz regulowaną wysokość, aby uwzględnić treści, które zostały powiększone ze względu na duże czcionki ułatwiające dostępność. PositionIndicator
ma teraz osobne specyfikacje animacji dla animacji w pojawianiu się, znikania i zmiany pozycji. Ze względu na wydajność zalecamy wyłączenie efektów łagodnego pojawiania się i zmiany pozycji, gdy są one używane w przypadku list przewijanych.ExpandableStateMapping
udostępnia nowy sposób generowaniaExpandableStates
, gdy trzeba je tworzyć na żądanie, a niekoniecznie w zakresie@Composable
.Placeholder
umożliwia teraz zresetowanie treści, jeśli nie są już w stanie gotowości. Ustawienie zmniejszania ruchu dotyczy teraz efektu migotania i ruchu wycierania w filmachPlaceholder
.
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
naBasicSwipeToDismissBox
. Dzięki temu komponent na poziomie Foundation wyraźniej odróżnia się od komponentu na poziomie Material.SwipeToDismissBox
Drugi z nich pobiera kolory z poziomuMaterialTheme
, aby wykorzystać je w przesłonach, a pozostałe elementy implementuje w poziomieBasicSwipeToDismissBox
. (Ibecfc) - Oznaczyliśmy model
rememberExpandableStateMapping
jako eksperymentalny i poprawiliśmy skuteczność modeluexpandableItem
. (I5f6bc) - Klasę
SwipeToRevealAction
w interfejsach API karty i elementu karty MaterialSwipeToReveal
zastąpiliśmy interfejsem API opartym na slotach, który korzysta z komponentówSwipeToRevealPrimaryAction
,SwipeToRevealSecondaryAction
iSwipeToRevealUndoAction
. Przykłady korzystania z nowego interfejsu API znajdziesz w przykładowym kodzie. (Ia8943) - Flagi animacji
PositionIndicator
zostały zastąpione parametramiAnimationSpec
. Poszczególne animacje można wyłączyć, przekazując wartośćsnap
jako parametrAnimationSpec
. (I6c523)
Poprawki błędów
- Naprawiliśmy błąd powodowany przez ograniczony tekst zakrzywiony, gdy rozmiar jest ograniczony (I50efe)
- Rozwiązaliśmy problem z potencjalnym błędem NaN związanym z urządzeniem
curvedComposable
(I970eb). - Cofnęliśmy usunięcie animacji podświetlenia zmiany pozycji w wersji
PositionIndicator
. (Ieb424) - Aby zwiększyć wydajność komponentu Chip, usunęliśmy warstwę material-core. (If2dcb)
Wersja 1.3.0-alpha08
18 października 2023 r.
Element androidx.wear.compose:compose-*:1.3.0-alpha08
został zwolniony. Wersja 1.3.0-alpha08 zawiera te commity.
Zmiany w interfejsie API
- Do funkcji
PositionIndicator
dodaliśmy osobne flagi, aby umożliwić kontrolowanie różnych animacji:showFadeInAnimation
,showFadeOutAnimation
ishowPositionAnimation
. Poprzedni interfejs API został wycofany i przekierowuje wywołania do nowego. Ze względu na wydajność i spójność interfejsu użytkownika, gdy elementPositionIndicator
jest używany z listą przewijalną, zalecamy wyłączenie flagshowFadeInAnimation
ishowPositionAnimation
. JeśliPositionIndicator
jest używany jako samodzielny wskaźnik, np. do zmiany głośności, zalecamy włączenie wszystkich 3 animacji. (I44294) - Materiały
SwipeToDismissBoxState
,SwipeToDismissValue
iedgeSwipeToDismiss
zostały wycofane po przeniesieniu funkcji przesuwania w bok dowear.compose.foundation
. Zastąp je odpowiednikami z poziomuwear.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 abyPositionIndicator
była animowana podczas początkowego wyświetlania ekranu. Zamierzamy wprowadzić podobną zmianę w wersji 1.4 alpha, abyPositionIndicator
była wyświetlana na początku, ale bez animacji. (I41843) - Rozwiązaliśmy kilka problemów z wydajnością w wersji
PositionIndicator
. (I1c654, b/302399827) - Zoptymalizowaliśmy wydajność domyślnej implementacji dostawcy stanu eksploracji dotykiem, aby polegała ona na
State<Boolean>
, a nie na stanie pochodnej. (Ieec4d) - W przypadku Androida 13 i nowszych ustawiliśmy
systemGestureExclusion
prostokąty. (Ib1f4b)
Wersja 1.3.0-alpha07
4 października 2023 roku
Element androidx.wear.compose:compose-*:1.3.0-alpha07
został zwolniony. Wersja 1.3.0-alpha07 zawiera te commity.
Zmiany w interfejsie API
- Do
PositionIndicator
dodaliśmy osobne flagi, aby umożliwić sterowanie różnymi animacjami:showFadeInAnimation
,showFadeOutAnimation
ishowPositionAnimation
. Poprzedni interfejs API został wycofany i przekierowuje wywołania do nowego. Ze względu na wydajność i spójność interfejsu użytkownika, gdy elementPositionIndicator
jest używany z listą przewijalną, zalecamy wyłączenie flagshowFadeInAnimation
ishowPositionAnimation
. JeśliPositionIndicator
jest używany jako samodzielny wskaźnik, np. do zmiany głośności, zalecamy włączenie wszystkich 3 animacji. (Ia2d63)
Poprawki błędów
- Wprowadziliśmy ulepszenia w przypadku animacji odsłaniania treści po przesunięciu, dodając animację znikania tekstu głównego działania oraz znikającego działania dodatkowego lub zmieniając skalę ikony po pełnym rozwinięciu. (Ib7223)
- Zalecamy, aby działania „Przesuń, aby wyświetlić” były dostępne. W naszych przykładach działania „Przesuń, aby wyświetlić” dodaliśmy niestandardowe działania ułatwień dostępu. (I42224)
- Zwiększyliśmy wydajność funkcji
SwipeToDismissBox
, m.in. dzięki refaktoryzacji, która ma zapewnić, że początkowa logika nie spowoduje ponownego skompilowania. ElementSwipeToDismissBox
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
,fadeOut
ipositionChange
) (patrz Zmiany w interfejsie API) (Ifac7d) - Dodaliśmy testy mikrobenchmarków dla
PositionIndicator
(Idf875)
Wersja 1.3.0-alpha06
20 września 2023 r.
Element androidx.wear.compose:compose-*:1.3.0-alpha06
został zwolniony. Wersja 1.3.0-alpha06 zawiera te commity.
Poprawki błędów
- Dodaliśmy obsługę właściwości
Modifier.edgeSwipeToDismiss
w przypadku właściwościSwipeToReveal
. (I95774, b/293444286) - Dodaliśmy próbki materiałów
SwipeToRevealChip
iSwipeToRevealCard
. (Ieb974) - Zaktualizowaliśmy profile bazowe dla bibliotek Wear Compose Foundation i Material. (I1dd1f)
Wersja 1.3.0-alpha05
6 września 2023 r.
Element androidx.wear.compose:compose-*:1.3.0-alpha05
został zwolniony. Wersja 1.3.0-alpha05 zawiera te commity.
Poprawki błędów
- Dodaliśmy obsługę funkcji Przesuń, aby wyświetlić, aby można było przesuwać tylko jeden element naraz. (I3cd7a)
- Ulepszona dokumentacja funkcji
ScalingLazyColumnDefaults
, aby lepiej odzwierciedlała jej rzeczywiste działanie. (I886d3)
Wersja 1.3.0-alpha04
23 sierpnia 2023 r.
Element androidx.wear.compose:compose-*:1.3.0-alpha04
został zwolniony. Wersja 1.3.0-alpha04 zawiera te commity.
Nowe funkcje
- Dodaliśmy obsługę cofnięcia dla działania wtórnego
SwipeToReveal
. (I7a22d)
Zmiany w interfejsie API
- Dodaj
HorizontalPageIndicator
do biblioteki Material3 na Wear. (Ifee99) - Zaktualizowano narzędzia do podglądu na Wear Compose, aby używały biblioteki
androidx.wear.tooling.preview
. (Ib036e)
Poprawki błędów
- Naprawiliśmy błąd w przyciskach okrągłych, w których modyfikatory nie były prawidłowo połączone. (I5e162)
Wersja 1.3.0-alpha03
9 sierpnia 2023 r.
Element androidx.wear.compose:compose-*:1.3.0-alpha03
został zwolniony. Wersja 1.3.0-alpha03 zawiera te commity.
Zmiany w interfejsie API
- Dodaliśmy do Material 2 nowe komponenty do implementacji
SwipeToReveal
za pomocą kart i elementów. Te komponenty są zgodne ze sprawdzonymi metodami dotyczącymi interfejsu użytkownika i ułatwiają deweloperom implementowanieSwipeToReveal
za pomocą dotychczasowych komponentów w Material Design na Wear OS. (I7ec65) - Włączyliśmy adnotacje
FloatRange
jako ograniczenia interfejsu API, które zostały wcześniej podane w komentarzach. (Icb401)
Poprawki błędów
- Przemieściliśmy początkową logikę przewijania z funkcji
ScalingLazyColumn
do funkcjionGloballyPositioned()
. (Ic90f1) - Aby zoptymalizować przydziały skrótów, używamy teraz w plikach
PositionIndicator
,ProgressIndicator
iSelectionControls
wartościdrawWithCache
. (I5f225, b/288234617) - Rozwiązaliśmy problem z widokością pola wyboru w wyłączonych stanach. (Ib25bf)
- Zaktualizowaliśmy
Placeholder
, aby umożliwić zresetowanie i wyświetlenie placeholdera, jeśli treści nie są już gotowe. (Ibd820) - Wprowadziliśmy poprawki dotyczące testów
Placeholder
(Idb560), które nie zawsze działały prawidłowo.
Wersja 1.3.0-alpha02
26 lipca 2023 r.
Element androidx.wear.compose:compose-*:1.3.0-alpha02
został zwolniony. Wersja 1.3.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Udostępniliśmy
ExpandableStateMapping
, nowy sposób generowaniaExpandableStates
na potrzeby przypadków, w których muszą one być tworzone na żądanie, niekoniecznie w zakresie@Composable
(Iff9e0). SwipeToDismissBox
został przeniesiony z pakietuandroidx.wear.compose.material
do pakietuandroidx.wear.compose.foundation
. (I275fb)- zaktualizowane pliki interfejsu API, aby dodać adnotacje do pomijania zgodności; (I8e87a, b/287516207)
- Stałe wysokości
Chip
,CompactChip
iToggleChip
są teraz publicznie dostępne (Idbfde). - Opublikowaliśmy poziome i pionowe wypełnienie dla elementów
Chip
iCompactChip
. (Ieeaf7) - Dodano funkcję wyłączania obsługi przesuwania w elementach
SwipeDismissableNavHost
za pomocą nowego parametruuserSwipeEnabled
. (Id2a0b, b/230865655) - Zaktualizowaliśmy bibliotekę nawigacji Compose na Wear, aby używała nowego komponentu
SwipeToDismissBox
z fundacji Wear Compose. (I4ff8e)
Poprawki błędów
- Naprawiliśmy błąd związany z z-order, który powodował, że
expandedItem
nie wyświetlał prawidłowej treści po kliknięciu przycisku. (I1899d, b/289991514) - Poprawa obsługi zaznaczenia
SwipeToDismissBox
(a tym samymSwipeDismissableNavHost
) 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 MaterialSwipeToDismissBox
jest teraz przekazywana do Foundation i zawiera domyślne wartości kolorów z jej motywu (If8451). - Dodaliśmy do
ListHeader
semantyczne nagłówki. (Ic5420) - Elementy
Chip
iToggleChip
będą teraz dostosowywać swoją wysokość do treści, które zostały powiększone ze względu na duże czcionki, aby zapewnić ułatwienia dostępu. (Iaf302) - Naprawiono błąd związany z rolą semantyczną obszaru dotykowego
SplitToggleChip
, aby ułatwić dostępność. (Ieed3a) - Ustawienie „Ogranicz ruch” wyłącza teraz efekt migotania i wymazywania obiektów zastępczych. (I91046)
Stepper
iInlineSlider
obsługują teraz powtarzane kliknięcia przy długim naciśnięciu, dzięki czemu możesz szybko zwiększać lub zmniejszać wartośćStepper
iInlineSlider
, przytrzymując przyciski + lub -. (I27359)
Wersja 1.3.0-alpha01
21 czerwca 2023 r.
Element androidx.wear.compose:compose-*:1.3.0-alpha01
został zwolniony. Wersja 1.3.0-alpha01 zawiera te commity.
Poprawki błędów
- Zgodnie z informacjami podanymi w artykułach
1.2.0-alpha07
i1.2.0-alpha10
zmieniamy terazDefaultTextStyle
, 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)

- Nie jest już widoczny, gdy wyłączysz wypełnienie czcionki:

- Zaktualizowaliśmy usługę
wear.compose.foundation
, aby była zależna od interfejsu API usługiwear.compose.material
(I72004, b/285404743). - Naprawiliśmy błąd w
SwipeToDismissBox
. Klucze tła i treści są teraz przekazywane do bloku zapamiętaj, aby podczas zmiany treści lub tła były tworzone nowe modyfikatory. (Ib876c, b/280392104) - Zaktualizowaliśmy usługę
TimeText
, aby używała lokalizacji przy wyborze formatu czasu 12- lub 24-godzinnego. (If4a3d) - Naprawiliśmy niespójność w parametrach domyślnych
SwipeToDismissBox
contentScrimColor
. (I2d70f) - Ulepszono obsługę ruchu w aplikacji
SwipeToReveal
. (I28fb7)
Znane problemy
- Obsługa rozmiarów czcionek konfigurowanych przez użytkownika jest wymagana ze względu na ułatwienia dostępu. Wiemy, że elementy wielowierszowe mogą powodować przycinanie tekstu, gdy są wyświetlane z dużymi rozmiarami czcionek. W związku z tym zaktualizujemy element Chip w wersji alfa 1.3, aby w takich przypadkach dokonywać korekt wysokości.
Wersja 1.2
Wersja 1.2.1
18 października 2023 r.
Element androidx.wear.compose:compose-*:1.2.1
został zwolniony. Wersja 1.2.1 zawiera te zatwierdzenia.
Poprawki błędów
- Usunęliśmy błąd, który powodował nieprawidłowe zniknięcie
PositionIndicator
. (7a167f)
Wersja 1.2.0
9 sierpnia 2023 r.
Element androidx.wear.compose:compose-*:1.2.0
został zwolniony. Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
- stabilna wersja Compose 1.2.0 na Wear OS (więcej informacji);
- Listę najważniejszych zmian w wersji 1.2 aplikacji Compose na Wear OS znajdziesz w informacjach o wersji (Compose na Wear OS 1.2 Beta01).
Wersja 1.2.0-rc01
26 lipca 2023 r.
Element androidx.wear.compose:compose-*:1.2.0-rc01
został zwolniony. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
- Sfinalizowaliśmy profile bazowe dla wersji 1.2 (Id5740).
Wersja 1.2.0-beta02
7 czerwca 2023 r.
Element androidx.wear.compose:compose-*:1.2.0-beta02
został zwolniony. Wersja 1.2.0-beta02 zawiera te commity.
Nowe funkcje
- Dodaliśmy nową eksperymentalną zmienną
LocalReduceMotion
CompositionLocal
, która wyłącza skalowanie i rozjaśnianie w przypadkuScalingLazyColumn
. (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 ustawieniuIncludeFontPadding
(I737ed)
Wersja 1.2.0-beta01
24 maja 2023 r.
Element androidx.wear.compose:compose-*:1.2.0-beta01
został zwolniony. Wersja 1.2.0-beta01 zawiera te commity.
Co zawiera Compose w wersji 1.2 na Wear OS
Wersja 1.2-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest kompletna pod względem funkcji, a interfejs API jest zablokowany (z wyjątkiem wersji oznaczonych jako eksperymentalne). Wersja Wear Compose 1.2 zawiera te nowe funkcje:
expandableItem
iexpandableItems
to 2 nowe komponentyFoundation
, które umożliwiają rozwijanie elementów wScalingLazyColumn
. UżyjexpandableItem
w przypadku pojedynczego elementu, który można rozwinąć, np. tekstu, w którym liczba wierszy. Użyj elementuexpandableItems
dla grupy elementów, które można rozwinąć, a elementuexpandableButton
, aby ułatwić tworzenie przycisku, który zwija się po rozwinięciu treści.HierarchicalFocusCoordinator
– ta eksperymentalna kompozycja umożliwia oznaczenie poddrzewi kompozycji jako włączone lub wyłączone.Picker
– interfejs API zawiera teraz parametruserScrollEnabled
, który umożliwia określenie, czy selektor jest aktywny podczas przewijania przez użytkownika.PickerGroup
– nowy element kompozytowy do obsługi wielu selektorów jednocześnie. Obsługuje fokus między selektorami za pomocą interfejsu APIHierarchicalFocusCoordinator
i umożliwia automatyczne wyśrodkowanie elementów selektora.Placeholder
– wprowadziliśmy aktualizacje animacji migotania i „wymazywania”. Efekt wymazywania jest teraz stosowany natychmiast po tym, jak treści są gotowe.ScalingLazyColumn
– przeniesiono użytkownikaScalingLazyColumn
i powiązane z nim klasy zandroidx.wear.compose.material.ScalingLazyColumn
doandroidx.wear.compose.foundation.lazy.ScalingLazyColumn
. Zaktualizuj aplikację do wersjiFoundation.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 parametremenableRangeSemantics
, 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, aWearPreviewDevices
– na różnych urządzeniach Wear OS.- Do Wear Compose dodaliśmy parametr
DefaultTextStyle
, który domyślnie ustawia wartość właściwościPlatformTextStyle.includeFontPadding
na „prawda” (jest to bieżące ustawienie). Umożliwi nam to zsynchronizowanie domyślnego wyłączania wypełnienia czcionki z bibliotekami w Compose w wczesnej wersji 1.3 w wersji alfa. Więcej informacji znajdziesz w 1.2.0-alpha10.
Nowe funkcje
- Dodaliśmy eksperymentalną obsługę wyłączonego skalowania i animacji zanikania, gdy włączone jest ustawienie reduce_motion. (I58024)
Poprawki błędów
- Ulepszona dokumentacja
angularWidthDp
wCurvedSize.kt
(Iab75c) SwipeDismissableNavHost
rejestruje teraz ostrzeżenie z potencjalnymi przyczynami pustego stosu. Ma to na celu zapobieganie nieoczekiwanym awariom spowodowanym przezIllegalArgumentException
, które wystąpiło, gdy stos wsteczny był pusty. (I04a81, b/277700155)
Wersja 1.2.0-alpha10
10 maja 2023 r.
Element androidx.wear.compose:compose-*:1.2.0-alpha10
został zwolniony. Wersja 1.2.0-alpha10 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaliśmy obsługę funkcji Przesuń, aby wyświetlić, która umożliwia dostęp do działań dodatkowych. Ten wzór uzupełnia wzór „długiego naciśnięcia”, czyli dotychczasowy sposób wyświetlania (różnych) działań dodatkowych. (I60862)
Zmiany w interfejsie API
- Dodaliśmy
RevealScope
do komponentów akcji w komponencieSwipeToReveal
, co umożliwia dostęp do przesunięcia, przy którym pojawiają się dodatkowe działania. (I3fd56)
Poprawki błędów
- Rozwiązano problem z
ScalingLazyColumn
, który po przesunięciu zatrzymywał się na Wear API 33 (Ic4599). - Wprowadziliśmy kilka ulepszeń dotyczących szybkości działania
PositionIndicator
, aby zmniejszyć zacięcia. (I35e92) - Naprawiliśmy błąd w elementach typu chip i
CompactChip
, w których rola semantyczna nie była już ustawiona naRole.Button
. (I93f91, b/277326264)
Znane problemy
Wykryliśmy błąd w Android Studio, który powoduje problemy z renderowaniem podglądu, gdy jest on opatrzony adnotacjami @WearPreviewDevices i @WearPreviewFontScales. Wkrótce udostępnimy rozwiązanie. Pamiętaj, że inne adnotacje podglądu na Wear OS działają zgodnie z oczekiwaniami w Android Studio Giraffe 2022.3.1 i nowszych wersjach.
W wersji 1.2.0-alpha07 dodaliśmy do usługi Compose na Wear DefaultTextStyle, zachowując dotychczasową wartość PlatformTextStyle.includeFontPadding jako true. W przypadku tła zobacz artykuł Poprawka marginesu czcionki w Compose. W pierwszej wersji alfa 1.3 zmienimy wartość DefaultTextStyle, aby wyłączyć wypełnienie czcionki, co zapewni spójność na platformie Android. Rozwiązanie to pozwoli rozwiązać niektóre przypadki przycinania tekstu przy dużych rozmiarach czcionki i może też wpłynąć na układy ekranu, dlatego testy zrzutów ekranu wymagają aktualizacji. Na przykład w przypadku dużych rozmiarów czcionki tekst jest przycinany:

- Nie jest już widoczny, gdy wyłączysz wypełnienie czcionki:

Nowe ustawienie można zastosować, zastępując typografię w motywie. W tym celu użyj przykładowego kodu.
Wersja 1.2.0-alpha09
19 kwietnia 2023 r.
Element androidx.wear.compose:compose-*:1.2.0-alpha09
został zwolniony. Wersja 1.2.0-alpha09 zawiera te commity.
Zmiany w interfejsie API
- Dodanie do interfejsu API
CurvedModifier
wartościangularSizeDp
, która służy do ustawiania szerokości kątowej w DP (I89a52).
Poprawki błędów
- Rozwiązaliśmy problemy z dostępnością w demo selektora czasu(Id0eb7).
Wersja 1.2.0-alpha08
5 kwietnia 2023 r.
Element androidx.wear.compose:compose-*:1.2.0-alpha08
został zwolniony. Wersja 1.2.0-alpha08 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmieniliśmy nazwę
ExpandableItemsState
naExpandableState
. (If85ea) - Dodaliśmy element
expandableButton
, aby ułatwić tworzenie przycisku, który zwija się, gdy treść jest rozwinięta. Zaktualizowaliśmy też przykłady elementów rozwijanych. (Iae309)
Poprawki błędów
- Ulepszone przykłady z możliwością rozwinięcia, które pokazują więcej możliwości. Zmodyfikowana animacja
expandableItem
, aby jej zawartość była wyśrodkowana. (I2f637) - Zaktualizowano
ToggleControls
, aby uniknąć dodatkowych przekształceń podczas ręcznej animacji kolorów za pomocą stanu. (I5d319)
Wersja 1.2.0-alpha07
22 marca 2023 r.
Element androidx.wear.compose:compose-*:1.2.0-alpha07
został zwolniony. Wersja 1.2.0-alpha07 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Komponenty elementów rozszerzalnych (dodane w wersji 1.2.0-alpha06) zostały przeniesione z kategorii „Materiały” do kategorii „Podstawy”, ponieważ nie odwoływały się w żaden znaczący sposób do
MaterialTheme
. (Ib0525)
Poprawki błędów
- Rozwiązaliśmy problem z zawieszaniem się aplikacji, który występował na ekranie z użyciem komponentu
PickerGroup
. Upewniliśmy się, że komponentPickerGroup
poprawnie obsługuje fokus, gdy żaden selektor nie ma fokusu. Dodaliśmy też obsługę przewijania RSB w demo selektorów. (If8c19) - Poprawiliśmy przejścia między dialogami – przejście w intronie jest teraz płynniejsze, aby pasowało do zakończenia. (Ib5af9)
- Do Wear Compose dodaliśmy parametr
DefaultTextStyle
, który domyślnie ustawia wartość właściwościPlatformTextStyle.includeFontPadding
na „prawda” (jest to bieżące ustawienie). Dzięki temu będziemy mogli w przyszłości zsynchronizować wyłączenie wyrównywania czcionki z bibliotekami w edytorze – więcej informacji znajdziesz w artykule Poprawka wyrównywania czcionki w edytorze. (I2aee8) - Przywróciliśmy zależność od podglądu
UpsideDownCake
za pomocą funkcji activity-compose, która blokowała publikowanie aplikacji w Sklepie Google Play. (I6443d)
Wersja 1.2.0-alpha06
8 marca 2023 r.
Element androidx.wear.compose:compose-*:1.2.0-alpha06
został zwolniony. Wersja 1.2.0-alpha06 zawiera te commity.
Zmiany w interfejsie API
- Dodaj komponent
CurvedBox
, który umieszcza komponenty jeden na drugim w krzywoliniowym świecie. (I29200) - Dodano elementy, które można rozwijać – 2 nowe komponenty obsługujące grupę elementów do rozwinięcia w elementach
ScalingLazyColumn
lub pojedynczy element do rozwinięcia, np. tekst, w którym można zwiększać liczbę wierszy. (I95dd5) - Dodaliśmy te niestandardowe adnotacje do podglądu kompozytów na ekranach Wear:
WearPreviewSmallRound
wyświetla podgląd kompozytu na małym, okrągłym urządzeniu;WearPreviewLargeRound
wyświetla podgląd kompozytu na dużym, okrągłym urządzeniu;WearPreviewSquare
wyświetla podgląd kompozytu na kwadratowym urządzeniu. Dostępne są też te adnotacje i adnotacje dotyczące podglądu wielu elementów:WearPreviewFontScales
wyświetla elementy na urządzeniu Wear OS z różnymi rozmiarami czcionki, aWearPreviewDevices
– na różnych urządzeniach Wear OS. Aby korzystać z tych wersji, musisz mieć zainstalowaną najnowszą wersję Android Studio (Giraffe Canary 6) lub nowszą. Jeśli te adnotacje nie spełniają Twoich oczekiwań, możesz nadal korzystać z podglądu, który umożliwia dalsze dostosowywanie za pomocą parametrów. (I397ff) - Oznaczyliśmy
HierarchicalFocusCoordinator
jako funkcję eksperymentalną, ale ze względu na jej szerokie zastosowanie rozważamy przeniesienie jej do głównych bibliotek compose. (I3a768)
Poprawki błędów
- Usunęliśmy błąd w funkcji
HierarchicalFocusCoordinator
. Gdy zmieni się wartość parametru lambda przekazywanego do funkcjifocusEnabled
, będziemy teraz prawidłowo używać nowej wartości. (Icb353) - Zaktualizowaliśmy domyślny kolor wyłączonej zawartości na tło, gdy w usługach
Button
,CompactButton
,Chip
,CompactChip
iToggleButton
używane są kolory podstawowe. Dzięki temu poprawisz kontrast w celu ułatwienia dostępu. (I527cc)
Wersja 1.2.0-alpha05
22 lutego 2023 roku
Element androidx.wear.compose:compose-*:1.2.0-alpha05
został zwolniony. Wersja 1.2.0-alpha05 zawiera te commity.
Zmiany w interfejsie API
- Zaktualizowano interfejs API
PickerGroup
, aby umożliwić opcjonalne propagowanie minimalnych ograniczeń do komponentu. Gdy ma wartość Prawda, minimalne ograniczenia przekazane z elementu kompozytowego nadrzędnego będą dozwolone w komponenciePickerGroup
. Jeśli opcjaPickerGroup
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 zTestNavHostController
(I61d54)
Wersja 1.2.0-alpha04
8 lutego 2023 r.
Element androidx.wear.compose:compose-*:1.2.0-alpha04
został zwolniony. Wersja 1.2.0-alpha04 zawiera te commity.
Nowe funkcje
PickerGroup
do obsługi wielu selektorów jednocześnie za pomocą interfejsu Focus API. Obsługuje fokus między różnymi selektorami, umożliwia automatyczne wyśrodkowanie selektorów na podstawie parametrów i umożliwia deweloperom zmianę fokusu między różnymi selektorami podczas obsługi zdarzeń z grupy. W trybie TalkBack elementPickerGroup
obsługuje TalkBack, przenosząc zaznaczenie na wybrany selektor z grupy. (I60840)
Zmiany w interfejsie API
- Dodaliśmy do funkcji Stepper przeciążenie z dodatkowym parametrem
enableRangeSemantics
, aby ułatwić wyłączenie domyślnej semantyki zakresu (Ia61d4).
Poprawki błędów
- Zezwalaj na zagnieżdżanie
ScalingLazyColumn
na stronie przewijanej poziomo (Iec3f8, b/266555016) - Ulepszenie czyszczenia testów kdocs i
StepperTest
w Stepperze. (Ic118e) - Zaktualizowano zależność
androidx.navigation
do wersji 2.5.3 (If58ed)
Wersja 1.2.0-alpha03
25 stycznia 2023 r.
Element androidx.wear.compose:compose-*:1.2.0-alpha03
został zwolniony. Wersja 1.2.0-alpha03 zawiera te komisy.
Zmiany w interfejsie API
- Z poziomu
androidx.wear.compose.material.ScalingLazyColumn
doandrdoidx.wear.compose.foundation.lazy.ScalingLazyColumn
przeniesionoScalingLazyColumn
(i powiązane z nim klasy) (patrz ten przykład migracji). Nowa lokalizacja jest bardziej zbliżona docompose.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 MaterialScalingLazyColumn
zostały wycofane. Zaktualizuj je do wersjiFoundation.Lazy ScalingLazyColumn
. Dodatkowo do polaScalingLazyListLayoutInfo
dodano poleanchorType
. (I29d95) ScalingLazyColumn
został oznaczony jako wycofany w pakiecie Wear Compose Material (I16d34).- Zaktualizowaliśmy modyfikator
ScrollAway
, aby używaćScalingLazyListState
z komponenta Wear ComposeFoundation.Lazy
, i wycofaliśmy przeciążenie, które używałoScalingLazyListState
z komponentu Wear Compose Material. (Ifc42c) - Zaktualizowaliśmy interfejsy API Dialog, aby używały
ScalingLazyListState
zFoundation.Lazy
, i wycofaliśmy przeciążenia, które używały interfejsu MaterialScalingLazyListState
(Ic8960). - Zaktualizowaliśmy interfejsy API selektora, aby używały
ScalingParams
zFoundation.Lazy
, i wycofaliśmy przeciążenia, które używały MaterialScalingParams
. (Idc3d8)
Poprawki błędów
- Naprawiliśmy błąd, który powodował niepotrzebne zmiany w komponowaniu w funkcji
ScalingLazyListState.centerItemIndex
, tak aby aktualizacje były wysyłane tylko wtedy, gdy wartość się zmieniła (Ia9f38). - Zwiększyliśmy wydajność urządzenia
SwipeToDismissBox
(I3933b). - Dodano testy porównawcze dla
ScalingLazyColumn
w komponencie Compose Foundation na Wear (Ie00f9). - Zaktualizowaliśmy niektóre wewnętrzne metody klas
ScalingLazyColumn
w Material, aby używały ich odpowiedników zFoundation.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 doFoundation.Lazy
zamiast do MateriałuScalingLazyColumn
(Ic6caa). - Dodaliśmy opcjonalne parametry
fromDate/toDate
do wersji demonstracyjnejDatePicker
(I961cd).
Wersja 1.2.0-alpha02
11 stycznia 2023 r.
Element androidx.wear.compose:compose-*:1.2.0-alpha02
został zwolniony. Wersja 1.2.0-alpha02 zawiera te commity.
Zmiany w interfejsie API
- Testy interfejsu użytkownika w Android Compose będą teraz wykonywać przejścia układu dla każdej ramki podczas wykonywania ramek, aby przejść do stanu bezczynności (np. za pomocą
waitForIdle
). Może to mieć wpływ na testy, które sprawdzają poszczególne ramki animacji układu. (I8ea08, b/222093277) - Parametr
minLines
został dodany do Wear Text, aby zapewnić spójne działanie z parametremBasicText
(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()
narememberUpdatedState
, aby stan się aktualizował, jeśli funkcja lambdaonContentReady
. (I02635, b/260343754) - Poprawiliśmy problem z drżeniem tekstu w komponencie
Picker
, wykorzystując nową strategię kompozytowania dodaną doModifier.graphicsLayer
. (I99302) - Naprawiliśmy błąd, który powodował migotanie w wersji demonstracyjnej
DatePicker
(I660bd). - Ulepszyliśmy ułatwienia dostępu w przypadku prezentacji selektora daty i czasu w systemie 12-godzinnym (I05e12).
- Zaktualizowaliśmy nasze demonstracje selektorów daty i godziny, aby zmiany w pliku RSB nie wpływały na selektory, gdy są niewybrane (I4aecb).
Wersja 1.2.0-alpha01
7 grudnia 2022 r.
Element androidx.wear.compose:compose-*:1.2.0-alpha01
został zwolniony. Wersja 1.2.0-alpha01 zawiera te commity.
Nowe funkcje
- Zaktualizowaliśmy eksperymentalną funkcję placeholdera, aby efekt „wymazywania” był stosowany natychmiast po przygotowaniu treści, zamiast czekać na rozpoczęcie następnej pętli animacji. Wprowadziliśmy też kilka zmian w animacji migotania i wymazywania. (I5a7f4)
Zmiany w interfejsie API
- Dodaliśmy kompozyt
HierarchicalFocusCoordinator
, aby umożliwić oznaczanie poddrzew kompozycji jako włączone lub wyłączone w trybie pełnej koncentracji (I827cb). - Dodaliśmy nową właściwość, aby zastąpić semantyczną rolę elementu
ToggleButton
.(I67132) - Zaktualizowaliśmy
TimeTextDefaults.TimeFormat12Hours
, aby usunąć AM/PM wTimeText
. Spowoduje to zmianę domyślnej wartości parametrówtimeSource
w interfejsie APITimeText
. (I1eb7f) - Rozszerzyliśmy interfejs Picker API, aby ułatwić dostęp do ekranów z wielokrotnie wyświetlanymi elementami. Dodano nową właściwość
userScrollEnabled
, która pozwala określić, czy selektor jest aktywny podczas przewijania przez użytkownika. (I3c3aa)
Poprawki błędów
- Zmieniliśmy domyślną szerokość obramowania
OutlinedButton/OutlinedCompactButton
z 2 pikseli na 1 piksel, aby dostosować się do ostatecznych specyfikacji interfejsu użytkownika. (Icf84d) - Aby zmniejszyć efekt przesuwania się pierwszego elementu dodanego do pustego
ScalingLazyColumn
, dodaliśmy szacowanyautoCentering topPadding
, gdy zawartość jest pusta. Ta zmiana oblicza ilość wypełnienia u góry, zakładając, że początkowa wysokość elementu to 0 dp. W przypadkuScalingLazyListAnchorType.ItemStart
zostanie obliczone prawidłowe wypełnienie góry, a w przypadkuScalingLazyListAnchorType.ItemCenter
obliczenie będzie nieprawidłowe, ponieważ wysokość elementów jest potrzebna do prawidłowego dopasowania rozmiaru zawartości, co powoduje niewielki efekt przewijania na miejsce na podstawie rzeczywistej wysokości elementów (I239a4). - Zaktualizowaliśmy tło stosowane w animacji
SwipeToDismiss
, aby pasowało do platformy Wear. (I9003e) - Poprawiono obsługę funkcji
PositionIndicator
w przypadku funkcjiLazyListState
iScalingLazyListState
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.2
i androidx.wear.compose:compose-navigation:1.1.2
są dostępne. Wersja 1.1.2 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy błąd, który powodował niepotrzebne zmiany w komponowaniu w funkcji
ScalingLazyListState.centerItemIndex
, tak aby aktualizacje były wysyłane tylko wtedy, gdy wartość się zmieniła (Ia9f38).
Wersja 1.1.1
11 stycznia 2023 r.
Funkcje androidx.wear.compose:compose-foundation:1.1.1
, androidx.wear.compose:compose-material:1.1.1
i androidx.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()
narememberUpdatedState
, aby stan się aktualizował, jeśli funkcja lambdaonContentReady
. (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.0
i androidx.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
- stabilna wersja Compose 1.1.0 na Wear OS (więcej informacji);
- Lista najważniejszych zmian w wersji 1.1 aplikacji Compose na Wear OS znajduje się w informacjach o wersji (Compose na Wear OS 1.1 Beta01).
Nowe funkcje
- Zaktualizowaliśmy eksperymentalną funkcję placeholdera, aby efekt „wymazywania” był stosowany natychmiast po przygotowaniu treści, zamiast czekać na rozpoczęcie następnej pętli animacji. Wprowadziliśmy też kilka zmian w animacji migotania i wymazywania. (I5a7f4)
Poprawki błędów
- Zmieniliśmy domyślną szerokość obramowania
OutlinedButton/OutlinedCompactButton
z 2 pikseli na 1 piksel, aby dostosować się do ostatecznych specyfikacji interfejsu użytkownika. (Icf84d) - Aby zmniejszyć efekt przesuwania się pierwszego elementu dodanego do pustego
ScalingLazyColumn
, dodaliśmy szacowanyautoCentering topPadding
, gdy zawartość jest pusta. Ta zmiana oblicza ilość wypełnienia u góry, zakładając, że początkowa wysokość elementu wynosi 0 dp. W przypadkuScalingLazyListAnchorType.ItemStart
zostanie obliczone prawidłowe wypełnienie góry, a w przypadkuScalingLazyListAnchorType.ItemCenter
obliczenie będzie nieprawidłowe, ponieważ wysokość elementów jest potrzebna do prawidłowego dopasowania rozmiaru zawartości, co powoduje niewielki efekt przewijania na miejsce na podstawie rzeczywistej wysokości elementów (I239a4). - Zaktualizowaliśmy tło stosowane w animacji
SwipeToDismiss
, aby pasowało do platformy Wear.(I9003e) - Poprawiono obsługę funkcji
PositionIndicator
w przypadku funkcjiLazyListState
iScalingLazyListState
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-rc01
i androidx.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
,OutlinedChip
iOutlinedCompactChip
. (I8249c) - Naprawiliśmy błąd w funkcji
Modifier.scrollAway
, dzięki czemu jeśli podana wartośćitemIndex
jest nieprawidłowa (np. indeks elementu jest poza zakresem), funkcjaTimeText
będzie nadal wyświetlana. (I2137a) - Zaktualizowaliśmy animację
SwipeToDismissBox
, aby pasowała do implementacji na platformie. Po początkowej animacji ściskania ekran przesuwa się w prawo, gdy zostanie wywołana funkcja odrzucenia. (I41d34) - W ramach optymalizacji zaktualizowaliśmy funkcję
Modifier.scrollAway
, aby odczytywała tylko wartośćscrollState
w bloku pomiaru, co pozwoli uniknąć ponownego tworzenia modyfikatora po każdym pomiarze. (I4c6f1) - Dodaliśmy dokumentację i przykłady do obiektów zastępczych, aby pokazać prawidłową kolejność
Modifier.placeholder
iModifier.placeholderShimmer
w przypadku zastosowania ich do tego samego komponentu. (Ie96f4, b/256583229) - Zmieniliśmy domyślną szerokość obramowania
OutlinedCompactChip/OutlinedChip
z 2 pikseli na 1 piksel, aby dostosować się do ostatecznych specyfikacji interfejsu użytkownika. (Ib3d8e) - Naprawiliśmy błąd w
rememberPickerState
, który powodował, że zaktualizowane dane wejściowe nie były zapisywane, przez co komponenty nie były aktualizowane po zmianie danych wejściowych. (I49ff6, b/255323197) - Wprowadziliśmy kilka zmian w interfejsie zastępników: 1) zmieniliśmy gradient migotania na 1, 5 x rozmiar ekranu, 2) dodaliśmy łagodne przejście (cubic bezier) dla migotania i 3) przyspieszyliśmy animację wymazywania (250 ms). (Id29c1)
- Poprawiliśmy błąd interfejsu użytkownika w przypadku efektu usuwania obiektu zastępczego, w którym tło elementu Elementu i Karty było usuwane nieco za wcześnie, ponieważ nie uwzględniano pozycji komponentu na ekranie. (I2c7cb)
- Zaktualizowaliśmy rysunek tła w miejscu zastępczym, aby w miarę możliwości łączyć kolory zamiast je układać na warstwach. Dzięki temu zmniejszyliśmy ryzyko, że łączenie przezroczystości różnych przyciętych warstw spowoduje przenikanie kolorów z podległych warstw przez krawędzie tła w miejscu zastępczym. (I2ea26)
- Poprawiliśmy obliczenie
ScalingLazyListState.centerItemIndex/centerItemOffset
, aby w przypadku 2 elementów po obu stronach linii środkowej widoku urządzenia mobilnegocenterItem
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 funkcjiScalingLazyColumn
. Teraz zwracana jest pusta lista, dopóki wszystkie elementy listy nie będą widoczne i nie będą mieć prawidłowych przesunięć. SprawdzanieScalingLazyListState.layoutInfo.visibleItemsInfo.isNotEmpty()
potwierdzi, że inicjalizacjaScalingLazyColumn
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-beta01
i androidx.wear.compose:compose-navigation:1.1.0-beta01
są dostępne. Wersja 1.1.0-beta01 zawiera te commity.
Co zawiera Compose w wersji 1.1 na Wear OS
Wersja 1.1.0-beta01 biblioteki Compose na Wear OS wskazuje, że ta wersja biblioteki jest kompletna i interfejs API jest zablokowany.
- Wersja Wear Compose 1.1 zawiera te nowe funkcje:
- Selektor – ulepszenia dotyczące ułatwień dostępu w selektorze, dzięki którym można poruszać się po ekranach selektora za pomocą czytników ekranu, a opis treści jest dostępny dla osób z niepełnosprawnością
- Parametr Picker
contentDescription
jest teraz używany tylko w przypadku wybranej opcji selektora i przyjmuje typ String z możliwością wartości null (w poprzednim commitie konieczne było przekazanie mapowania z opcji do opisu treści, ale używana była tylko wybrana opcja). - Elementy selektora są teraz zawsze wyrównane do środka. Rozwiązaliśmy błąd, który powodował, że zmiana wartości
gradientRatio
na 0 zmieniała wyrównanie. Chip/ToggleChip
– zaktualizowaliśmy domyślne gradienty wChip/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ówChip/Button/ToggleButton
– dodaliśmy nowy styl z obwódką dla elementów typu „elementy do kliknięcia” i przycisków oraz nowe elementy kompozytoweOutlinedChip
iOutlinedButton
, które zapewniają przezroczystyChip/Button
z cienką ramką.- Karta – zaktualizowano domyślne gradienty kart, aby dostosować je do najnowszej specyfikacji UX.
CardDefaults.cardBackgroundPainter
zaczyna się teraz od 30% wartości podstawowej i kończy na 20% wartościonSurfaceVariant
(wcześniej było to 20%–10%onSurfaceVariant
).ToggleChip.toggleChipColors
zmienia się z gradientu liniowego 75% powierzchni na 32,5% powierzchni podstawowej na 0% powierzchni podstawowej na 50% powierzchni. Button/ToggleButton
– dodano właściwości umożliwiające modyfikowanie kształtów przycisków.- Motyw – zaktualizowano kilka domyślnych kolorów w
MaterialTheme
, aby ułatwić dostępność. Pierwotne kolory nie miały wystarczającego kontrastu, przez co użytkownicy mieli trudności z odróżnieniem tła elementów sterujących od tła motywu. InlineSlider/Stepper
– dodano role przycisków, abyTalkback
mogła je rozpoznać jako przyciski.- Scaffold –
PositionIndicator
ma teraz pozycję i rozmiar, które zajmują tylko potrzebną przestrzeń. Jest to przydatne, gdy do obrazu dodawane są informacje semantyczne, ponieważ TalkBack może teraz uzyskać prawidłowe granicePositionIndicator
na ekranie. CurvedText/TimeText
– dodanoModifier.scrollAway
, która przewija element w górę lub w dół, zależnie od stanu przewijania (z przeciążeniami do pracy z funkcjamiColumn
,LazyColumn
iScalingLazyColumn
).ScrollAway
jest zwykle używana do przewijania elementuTimeText
poza widok, gdy użytkownik zaczyna przewijać listę elementów w górę.CurvedText/TimeText
– dodano obsługę właściwościfontFamily
,fontStyle
ifontSynthesis
wCurvedTextStyle
, które można stosować wcurvedText
ibasicCurvedText
CurvedText/TimeText
– do konstruktora i metody kopiowania obiektuCurvedTextStyle
dodanofontWeight
ToggleControls
– dodano animowane przełącznikiCheckbox
,Switch
iRadioButton
do użycia z elementamiToggleChip
iSplitToggleChip
. Można ich używać zamiast ikon statycznych udostępnianych przezToggleChipDefaults
(switchIcon
,checkboxIcon
iradioIcon
).- Obiekt zastępczy – dodano eksperymentalną obsługę obiektów zastępczych. Zawiera on 3 różne efekty wizualne, które zostały zaprojektowane tak, aby działać razem.
- Po pierwsze, efekt pędzla tła zastępczego używany w kontenerach takich jak chipy i karty, aby nakładać go na normalne tło podczas oczekiwania na załadowanie treści.
- Po drugie, modyfikator (
Modifier.placeholder()
) do rysowania widżetu zastępczego w kształcie stadionu nad wczytywanymi treściami. - Po trzecie, efekt gradientu modyfikującego lub migotania (
Modifier.placeholderShimmer()
), który jest nakładany na inne efekty, aby poinformować użytkowników, że czekamy na załadowanie danych.- Wszystkie te efekty są zsynchronizowane i migają oraz znikają w zaplanowany sposób.
- Zaktualizowano zależności Compose Core z wersji 1.2 na 1.3
Zmiany w interfejsie API
- Parametry czcionki (
fontFamily
,fontWeight
,fontStyle
ifontSynthesis
) można teraz określić bezpośrednio jako parametrycurvedText
(Idc422)
Poprawki błędów
curveText
ibasicCurvedText
będą teraz prawidłowo działać z talkback (mają prawidłowo umieszczony i wymiarowo dopasowany (ale pusty) węzeł interfejsu tworzenia, który używa tekstu jako opisu treści) (I7af7c, b/210721259)- Poprawka błędu w
Picker
, gdyPickerState.repeatedItems = false
, aby dodać jawne ustawienie parametrów autoCentering w Pickers wewnętrznymScalingLazyColumn
, 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-alpha07
i androidx.wear.compose:compose-navigation:1.1.0-alpha07
są dostępne. Wersja 1.1.0-alpha07 zawiera te commity.
Nowe funkcje
- Dodaliśmy eksperymentalną obsługę obiektów zastępczych. Zawiera on 3 różne efekty wizualne, które zostały zaprojektowane tak, aby działać razem. Po pierwsze, efekt pędzla tła zastępczego używany w kontenerach takich jak chipy i karty, aby nakładać go na normalne tło podczas oczekiwania na załadowanie treści. Po drugie, modyfikator (
Modifier.placeholder()
) do rysowania widżetu zastępczego w kształcie stadionu nad wczytywanymi treściami. Po trzecie, efekt gradientu modyfikującego lub migotania (Modifier.placeholderShimmer()
), który jest nakładany na inne efekty, aby poinformować użytkowników, że czekamy na załadowanie danych. Wszystkie te efekty są zsynchronizowane i migają oraz znikają w zaplanowany sposób. (I3c339)
Zmiany w interfejsie API
- Dodano obsługę funkcji
fontWeight
,fontFamily
,fontStyle
ifontSynthesis
wCurvedTextStyle
, które można używać wcurvedText
ibasicCurvedText
. Parametry te można wykorzystać do określenia czcionki i stylu, które mają być używane w przypadku wygiętego tekstu.(Iaa1a8),(I72759) - Zaktualizowano parametr offset w funkcji
Modifier.scrollAway
, aby był zgodny z parametremModifier.offset
(wcześniej był w pikselach). Zoptymalizowano też kod w funkcjiLayoutModifier
. (I9f94b) - W ramach nowego interfejsu API przemianowaliśmy interfejs
RadioButton’s circleColor
naringColor
. (I28fa9) - Dodaliśmy animowane przełączniki
Checkbox
,Switch
iRadioButton
do stosowania w przypadku właściwościToggleChip
iSplitToggleChip
. Można ich używać zamiast statycznych ikon udostępnianych przezToggleChipDefaults
(switchIcon
,checkboxIcon
iradioIcon
). (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-alpha06
i androidx.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 funkcjamiColumn
,LazyColumn
iScalingLazyColumn
). FunkcjaScrollAway
jest zwykle używana do przewijania elementuTimeText
poza widok, gdy użytkownik zaczyna przewijać listę elementów w górę. (I61766)
Poprawki błędów
- Element
PositionIndicator
ma teraz odpowiedni rozmiar i położenie, dzięki czemu zajmuje tylko potrzebną przestrzeń. Jest to przydatne, gdy do obrazu dodawane są informacje semantyczne, ponieważ TalkBack może teraz uzyskać prawidłowe granicePositionIndicator
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-alpha05
i androidx.wear.compose:compose-navigation:1.1.0-alpha05
są dostępne. Wersja 1.1.0-alpha05 zawiera te commity.
Poprawki błędów
- Do
InlineSlider
iStepper
dodano role przycisków, aby Talkback mógł je rozpoznawać jako przyciski. (Icb46c, b/244260275) - Poprawiliśmy kolejność pozycji i wskaźników strony w Scaffold. Wskaźniki będą teraz znajdować się na wierzchu winiety, więc nie będą zasłonięte przez winietę, jeśli taka występuje. (Ib988f, b/244207528)
Wersja 1.1.0-alpha04
24 sierpnia 2022 r.
Funkcje androidx.wear.compose:compose-foundation:1.1.0-alpha04
, androidx.wear.compose:compose-material:1.1.0-alpha04
i androidx.wear.compose:compose-navigation:1.1.0-alpha04
są dostępne. Wersja 1.1.0-alpha04 zawiera te commity.
Zmiany w interfejsie API
- Zaktualizowaliśmy kilka domyślnych kolorów w MaterialTheme, aby ulepszyć dostępność. Pierwotne kolory nie miały wystarczającego kontrastu, przez co użytkownicy mieli trudności z odróżnieniem tła elementów takich jak elementy sterujące, karty czy przyciski od tła motywu. Zaktualizowane kolory to surface(0xFF202124->0xFF303133), onPrimary(0xFF202124->0xFF303133), onSecondary(0xFF202124->0xFF303133), primaryVariant(0xFF669DF6->0xFF8AB4F8) i onError(0xFF202124->0xFF000000). Zmiany kolorów, choć stosunkowo subtelne, mogą mieć wpływ na dotychczasowe testy zrzutów ekranu. (81ab09)
Poprawki błędów
- Naprawiono błąd logiczny w funkcji
ScalingLazyColumn
, który mógł powodować, że listy z małą (zazwyczaj dokładnie 2) liczbą elementów nie kończyły inicjalizacji i w konsekwencji były przezroczyste. (504347)
Wersja 1.1.0-alpha03
10 sierpnia 2022 r.
Funkcje androidx.wear.compose:compose-foundation:1.1.0-alpha03
, androidx.wear.compose:compose-material:1.1.0-alpha03
i androidx.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
iButtons
oraz nowe komponentyOutlinedChip
iOutlinedButton
, które zapewniają przezroczysteChip/Button
z cienką ramką. (Id5972)
Zmiany w interfejsie API
- Dodano przeciążenia do modyfikowania kształtów przycisków (Icccde)
Poprawki błędów
- Poprawiliśmy rozmiar obszaru przełącznika w
ToggleChip
, ponieważ nie odpowiadał on specyfikacji UX. Specyfikacja UX wymaga 4 dp odstępu między etykietą a obszarem ikony przełącznika o wymiarach 24 x 24 dp, co daje w sumie 28 dp szerokości. Jednak implementacja nieprawidłowo wyświetla obszar przełącznika 36x24.dp. W efekcie zmniejsza to użyteczną powierzchnię etykiety tekstowej o 8 dp. UWAGA: ta poprawka zapewnia dodatkową przestrzeń na etykietę tekstową, co może pozytywnie wpłynąć na układ tekstu, który się wylewa. Jeśli masz testy zrzutów ekranu, które zawierająToggleChips
, może być konieczne ich zaktualizowanie. (I514c8, b/240548670)
Wersja 1.1.0-alpha02
27 lipca 2022 roku
Funkcje androidx.wear.compose:compose-foundation:1.1.0-alpha02
, androidx.wear.compose:compose-material:1.1.0-alpha02
i androidx.wear.compose:compose-navigation:1.1.0-alpha02
są dostępne. Wersja 1.1.0-alpha02 zawiera te commity.
Nowe funkcje
- Zmiana zależności Compose na Wear OS z wersji 1.2.0 na 1.3.0-alpha0X w bibliotekach podstawowych Compose
Zmiany w interfejsie API
- Dodano przeciążenia do modyfikowania kształtów elementów (I02e87)
Poprawki błędów
- Wprowadziliśmy animację widoczności winiety podczas wyświetlania lub ukrywania okna dialogowego, aby była ona spójna z istniejącą animacją skalowania. (Ida33e)
- Naprawiliśmy błąd, który powodował dzielenie przez 0 podczas przewijania. (I86cb6)
- Naprawiliśmy błąd w
ChipDefaults.childChipColor()
, aby wyłączony kolor tła był całkowicie przezroczysty. (I2b3c3, b/238057342)
Wersja 1.1.0-alpha01
29 czerwca 2022 r.
Funkcje androidx.wear.compose:compose-foundation:1.1.0-alpha01
, androidx.wear.compose:compose-material:1.1.0-alpha01
i androidx.wear.compose:compose-navigation:1.1.0-alpha01
są dostępne. Wersja 1.1.0-alpha01 zawiera te commity.
Zmiany w interfejsie API
- Parametr
contentDescription
selektora jest teraz używany tylko w przypadku wybranej opcji selektora i przyjmuje typ String z możliwością wartości null (wcześniej konieczne było przekazanie mapowania z opcji do opisu treści, ale używana była tylko wybrana opcja). (Ife6a7) - Wprowadziliśmy ułatwienia dostępu w selektorze, aby można było poruszać się po ekranach selektora za pomocą czytników ekranu i aby opis treści był dostępny (I64edb)
Poprawki błędów
- Zaktualizowaliśmy reguły profilu bazowego w bibliotece Compose na Wear (I9c694).
- Poprawiliśmy kierunek gradientu w przypadku elementów interfejsu w trybie od prawej do lewej. Domyślny kierunek przesuwania to teraz od prawego górnego do lewego dolnego rogu (wcześniej odwrotnie). (Ic2e77)
- Zaktualizowaliśmy domyślne gradienty w
Chip/ToggleChip/Card
, aby dostosować je do najnowszej specyfikacji UX.ChipDefaults.gradientBackgroundChipColors
zaczyna się teraz od 50% koloru podstawowego zamiast 32,5%.CardDefaults.cardBackgroundPainter
został zaktualizowany, aby zaczynać się od 30% powierzchni podstawowej i kończyć na 20% powierzchnionSurfaceVariant
(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 elementamiChip/ToggleChips
, które mają tło z gradientem, aby były one dobrze widoczne w nieprawdopodobnej sytuacji, gdy tło będzie jasne. (Ibe1a4, b/235937657) - Elementy selektora są teraz zawsze wyrównane do środka. Rozwiązaliśmy błąd, który powodował, że po ustawieniu wartości
gradientRatio
na 0 zmieniało się wyrównanie. (I712b8)
Wersja 1.0
Wersja 1.0.2
7 września 2022 roku
Funkcje androidx.wear.compose:compose-foundation:1.0.2
, androidx.wear.compose:compose-material:1.0.2
i androidx.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.1
i androidx.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.0
i androidx.wear.compose:compose-navigation:1.0.0
są dostępne. Wersja 1.0.0 zawiera te zatwierdzenia.
Najważniejsze funkcje wersji 1.0.0
- To pierwsza stabilna wersja Compose na Wear OS (więcej informacji).
- Compose na Wear OS opiera się na podstawowych bibliotekach Compose i zawiera dodatkowe komponenty przeznaczone do noszenia, a także, w stosownych przypadkach, alternatywne implementacje podstawowych komponentów Compose dostosowanych do urządzeń do noszenia.
- Listę najważniejszych komponentów w Compose na Wear OS znajdziesz w informacjach o wersji (Compose na Wear OS Beta01).
Poprawki błędów
- Wprowadziliśmy animację widoczności winiety podczas wyświetlania lub ukrywania okna dialogowego, aby była ona spójna z istniejącą animacją skalowania. (Ida33e)
- Naprawiliśmy błąd, który powodował dzielenie przez 0 podczas przewijania. (I86cb6)
- Naprawiliśmy błąd w
ChipDefaults.childChipColor()
, aby wyłączony kolor tła był całkowicie przezroczysty. (I2b3c3, b/238057342)
Wersja 1.0.0-rc02
22 czerwca 2022 r.
Funkcje androidx.wear.compose:compose-foundation:1.0.0-rc02
, androidx.wear.compose:compose-material:1.0.0-rc02
i androidx.wear.compose:compose-navigation:1.0.0-rc02
są dostępne. Wersja 1.0.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Wprowadziliśmy poprawki kierunku gradientu w przypadku kart w trybie od prawej do lewej. Domyślny kierunek przesuwania to od lewego górnego do prawego dolnego rogu, a teraz jest odwrotnie. (Ic2e77)
- Zaktualizowaliśmy domyślne gradienty
Chip/ToggleChip/Card
, aby dostosować je do najnowszej specyfikacji UX.ChipDefaults.gradientBackgroundChipColors
został zaktualizowany, aby zacząć od 50% koloru podstawowego zamiast 32,5%. WartośćCardDefaults.cardBackgroundPainter
została zaktualizowana, aby zaczynała się od 30% wartości podstawowej i kończyła się na 20% wartościonSurfaceVariant
(wcześniej było to 20%–10% w SurfaceVariant).ToggleChip.toggleChipColors
zmienia się z gradientu liniowego od 75% powierzchni do 32,5% powierzchni podstawowej do 0% powierzchni podstawowej do 50% powierzchni. (I43bbd) - Dodaliśmy kolor tła (
MaterialTheme.color.surface
) za elementamiChip/ToggleChips
, które mają tło z gradientem, aby były one dobrze widoczne w nieprawdopodobnej sytuacji, gdy tło będzie jasne. (Ibe1a4, b/235937657) - Zaktualizowaliśmy reguły profilu bazowego w bibliotece Compose na Wear (I9c694).
Wersja 1.0.0-rc01
15 czerwca 2022 r.
Funkcje androidx.wear.compose:compose-foundation:1.0.0-rc01
, androidx.wear.compose:compose-material:1.0.0-rc01
i androidx.wear.compose:compose-navigation:1.0.0-rc01
są dostępne. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Interfejsy w bibliotekach compose są teraz tworzone za pomocą domyślnych metod interfejsu JDK 8 (I5bcf1).
Poprawki błędów
- Usunęliśmy wyraźne odwołanie do
fillMaxWidth()
w nagłówku listy, ponieważ jest ono zbędne i może powodować problemy, jeśliScalinglazyColumn
zawiera elementyListHeader()
iChip()
, ponieważ szerokość będzie się zwiększać lub zmniejszać wraz z przewijaniem elementówListHeader
. (I37144, b/235074035) - Naprawiliśmy błąd w
ScalingLazyColumn
, który powodował, że elementy listy nie były wyświetlane prawidłowo, dopóki nie przewinięto listy, jeśli 0 element listy był wystarczająco duży (w tym wypełnienie) (Ic6159, b/234328517) - Wprowadziliśmy niewielką zmianę w
ScalingLazyColumn
, aby dopasować animację do aktualizacji specyfikacji UX. Stare wartościCubicBezierEasing(0.25f, 0.00f, 0.75f, 1.00f)
-> nowe wartościCubicBezierEasing(0.3f, 0f, 0.7f, 1f)
. Aby zachować stare działanie, możesz zastąpićscalingParams
wScalingLazyColumn
(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 elementuCompactChips
, 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-beta03
i androidx.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 naCenterHorizontally
, aby zapewnić, że gdy elementy listy nie wypełniają całej szerokości kolumny, są wyrównane w celu zapewnienia maksymalnej widoczności. Aby wrócić do poprzedniego zestawu zachowańhorizontalAlignment = Alignment.Start
.(I9ed4b)
Znane problemy
- Wysokość dotknięcia przycisku CompactChip jest mniejsza niż wymagana w wytycznych dotyczących ułatwień dostępu w Material Design. Naprawimy to w kolejne aktualizacji (15 czerwca). Jeśli używasz elementu CompactChip, wpłynie to na Twoje układy, ponieważ elementy CompactChip będą teraz miały dodatkowy margines u góry i u dołu. Dostosuj i przetestuj układy lub zapoznaj się z komentarzami dotyczącymi błędów, aby dowiedzieć się, jak zachować dotychczasowe działanie. (b/234332135)
Poprawki błędów
- Nowe demo do animowania dodawania lub usuwania tekstu startowego na
TimeText
. (I16d75) - Dodawanie testów dla
HorizontalPageIndicator.PagesState
(I64ed0) - Aktualizacja
TimeText
w celu dostosowania go do specyfikacji UX (Ib7ea1)
Wersja 1.0.0-beta02
18 maja 2022 r.
Funkcje androidx.wear.compose:compose-foundation:1.0.0-beta02
, androidx.wear.compose:compose-material:1.0.0-beta02
i androidx.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ścifillMaxWidth
. Zamiast tego będą się rozszerzać, aby dopasować się do zawartości. Aby zachować poprzednie działanie, po prostu dodajmodifier = Modifier.fillMaxWidth()
(I60a2c, b/232206371).
Poprawki błędów
- Konstruktor
CurvedTextStyle
przyjmujący argumentTextStyle
uwzględnia teraz także parametrfontWeight
(może on zostać dodany do konstruktora i metod kopiowania w przyszłych wersjach interfejsu API) (Ieebb9) - Ulepszenia dotyczące przesuwania krawędzi. Gdy używasz
Modifier.edgeSwipeToDismiss
i przesunięcie w lewo jest wywoływane z obszaru krawędzi, nie powoduje już usunięcia po przesunięciu w prawo. Wcześniej można było uruchomić funkcję przesuwania, aby zamknąć, przesuwając palcem w lewo, a potem w prawo (I916ea). HorizontalPageIndicator
wyświetla teraz maksymalnie 6 stron na ekranie. Jeśli jest ich więcej niż 6, po lewej lub prawej stronie wyświetla się wskaźnik o połowie wielkości, a strony przechodzą płynnie jedna w drugą (I2ac29).- Ulepszone domyślne zachowanie funkcji snap w
ScalingLazyColumn
iPicker
(I49539) - Ulepszenia dotyczące przesuwania krawędzi. Gdy używasz
Modifier.edgeSwipeToDismiss
, funkcja przesuwania w bok, aby zamknąć, jest uruchamiany tylko wtedy, gdy pierwszy dotyk nastąpi na krawędzi i przesunięcie jest w prawo. Wcześniej można było go aktywować, przesuwając palcem w dowolnym miejscu ekranu, jeśli przewijanie docierało do początku.(I8ca2a)
Wersja 1.0.0-beta01
11 maja 2022 roku
Funkcje androidx.wear.compose:compose-foundation:1.0.0-beta01
, androidx.wear.compose:compose-material:1.0.0-beta01
i androidx.wear.compose:compose-navigation:1.0.0-beta01
są dostępne. Wersja 1.0.0-beta01 zawiera te commity.
Co zawiera Compose w wersji 1.0 na Wear OS
Wersja 1.0.0-beta01
biblioteki Compose na Wear OS to ważny kamień milowy, ponieważ biblioteka jest już kompletna, a interfejs API jest zamknięty.
Komponenty Material Design w wersji 1.0 dla Wear Compose:
- Motyw Material Design – służy jako zamiennik Compose for Mobile
MaterialTheme
. Zawiera kolory, kształty i typografię do tworzenia komponentów na urządzeniach noszonych, które od razu implementują wytyczne UX w stylu Material Design na Wear. Button
,CompactButton
iToggleButton
– przycisk zawiera 1 miejsce na ikonę, obraz lub krótki tekst (maksymalnie 3 znaki). okrągłe, w zalecanych rozmiarach: domyślnym, dużym lub małym;CompactButton
zawiera 1 miejsce na dowolne treści (ikonę, obraz lub tekst) i ma okrągły kształt z bardzo małym tłem.CompactButton
ma opcjonalne przezroczyste wypełnienie wokół tła, które zwiększa obszar klikalny.ToggleButton
to przycisk, który ma 1 miejsce na dowolne treści (krótki tekst, ikonę lub obraz) i stan włączony/wyłączony (zaznaczony/niezaznaczony) z kolorem i różnymi ikonami, które wskazują, czy jest włączony czy wyłączony.- Karty – służą do wyświetlania informacji o aplikacjach, np. powiadomień. Elastyczny projekt do różnych zastosowań z użyciem
AppCard
iTitleCard
, który umożliwia tworzenie różnych układów i obsługę obrazów jako zawartości karty lub tła. - Elementy typu „chip” – elementy w kształcie stadionu podobne do przycisków, ale o większej powierzchni i z większą liczbą slotów, co umożliwia umieszczanie etykiet, etykiet pomocniczych i ikon. w różnych rozmiarach i z obsługą obrazów jako tła;
- ToggleChips i SplitToggleChips – element ToggleChips to element z opcją zaznaczania/odznaczania, a SplitToggleChips to element z opcją zaznaczania/odznaczania oraz dodatkowym slotem
ToggleControl
, w którym można umieścić ikonę, np. przełącznik lub przycisk radiowy, aby pokazać zaznaczony stan komponentu. DodatkowoSplitToggleChip
ma 2 obszary, które można dotykać: jeden klikalny i jeden przełączalny. - CircularProgressIndicator – wskaźnik postępu w stylu Material Design z 2 wariantami. Pierwszy z nich wyraża proporcję ukończenia bieżącego zadania i obsługuje przerwę w okresie kołowego między kątami początkowym i końcowym. Drugi wskazuje nieokreślony postęp w nieokreślonym czasie oczekiwania.
- curvedText – stanowi część języka DSL służącego do opisywania
CurvedLayouts
(wraz z elementamicurvedRow
icurvedColumn
), aby rozmieszczać komponenty wokół urządzeń o kształcie koła. Więcej informacji o elementachCurvedLayout
iCurvedModifier
znajdziesz poniżej w sekcji poświęconej komponentom podstawowym Wear. Elementy te pełnią podobną rolę jak modyfikatory w przypadku niekrzywych komponentów i umożliwiają konfigurowanie różnych aspektów układu, wypełnienia, gradientów itp. - Dialog, alert i potwierdzenie – dialog wyświetla się na pełnym ekranie, nałożony na inne treści, i umożliwia odrzucenie przez przesunięcie. Zajmuje 1 miejsce i ma zawierać treści w formacie Wear Material, takie jak alert lub potwierdzenie. Alert to treści dialogowe z opiniami z miejscami na ikonę, tytuł i wiadomość. Zawiera ona przeciążenia dla 2 przycisków (ujemnego i dodatniego) wyświetlanych obok siebie lub gniazdo na co najmniej 1 układany pionowo element. Potwierdzenie to treści dialogowe z opinią, które wyświetlają wiadomość przez określony czas. Ma miejsce na ikonę lub obraz (który może być animowany).
- HorizontalPageIndicator – pokazuje pozycję poziomą strony w sposób odpowiedni dla formatu urządzenia do noszenia. Zaprojektowane tak, aby zajmowały cały ekran i wyświetlały zaokrąglony wskaźnik na urządzeniach z okrągłym ekranem. Można go używać z przeglądarką strony Accompanist.
- Ikona – implementacja ikony na Wear, która pobiera kolor i przezroczystość z motywu Material na Wear. Informacje o klikalnej ikonie znajdziesz w sekcji przycisk lub element.
- Selektor – wyświetla listę elementów, z których można wybierać. Domyślnie elementy będą powtarzane „nieskończenie” w obu kierunkach. Można wyświetlać w trybie tylko do odczytu, aby ukryć niewybrane opcje.
- PositionIndicator – służy do wyświetlania pozycji przewijania lub innych wskazań pozycji w sposób odpowiedni dla urządzeń noszonych. Zajmuje cały ekran i pokazuje zaokrąglony wskaźnik na urządzeniach z okrągłym ekranem.
- Scaffold – implementuje podstawową strukturę układu wizualnego w stylu Material Design na Wear. Ten komponent udostępnia interfejs API, który pozwala połączyć kilka komponentów w ramach Wear Material (takich jak
TimeText
,PositionIndicator
iVignette
), aby utworzyć ekran. Zapewnia on odpowiednią strategię układu dla tych komponentów i zbiera niezbędne dane, dzięki którym będą one ze sobą współpracować. - ScalingLazyColumn – komponent listy z przewijaniem i powiększeniem/efektem rybiego oka, który stanowi kluczowy element języka Material Design na Wear. Umożliwia skalowanie i dodawanie efektów przezroczystości do elementów treści.
ScalingLazyColumn
jest zaprojektowany tak, aby obsługiwać potencjalnie dużą liczbę elementów treści, które są materializowane i komponowane tylko wtedy, gdy jest to konieczne. - Suwak – pozwala użytkownikom na wybór spośród zakresu wartości. Zakres wyboru jest wyświetlany jako słupek, który może być opcjonalnie wyświetlany z separatorami.
- Stepper – komponent pełnoekranowy, który umożliwia użytkownikom wybór spośród zakresu wartości za pomocą przycisków zwiększania/zmniejszania u góry i u dołu ekranu. W środku znajduje się pole na tekst lub element.
- SwipeToDismissBox – obsługuje gest przesuwania w celu zamknięcia. Zajmuje jeden slot na tło (wyświetlany tylko podczas przesuwania) i treści na pierwszym planie. Opcjonalnie można go połączyć z biblioteką nawigacji androidx, używając
SwipeDismissableNavHost
(patrz poniżej biblioteka nawigacji Compose na Wear). - Text – implementacja na Wear komponentu Compose Material Text, która pobiera kolor i wartość alfa z motywu Material na Wear.
- TimeText – komponent do wyświetlania czasu i stanu aplikacji u góry ekranu. Dostosowuje się do kształtu ekranu, wyświetlając tekst wygięty na okrągłych ekranach.
Vignette – element graficzny do użycia w ramce, który zaciera górną i dolną część ekranu, gdy użytkownik korzysta z przewijanych treści.
Z komponentów z wersji Wear Compose Foundation są też dostępne te komponenty:
CurvedLayout – Wear Foundation
CurvedLayout
to kompozyt układu, który umieszcza swoje elementy podrzędne w łuku, obracając je w razie potrzeby. Jest to podobne do układu wiersza wygiętego w sekcji pierścienia. Pamiętaj, że zawartość funkcjiCurvedLayout
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 poziomuCurvedModifier
.basicCurvedText – element w języku
CurvedLayout
DSL,basicCurvedText
, który pozwala deweloperom na łatwe pisanie wygiętego tekstu zgodnie z krzywizną koła (zwykle na krawędzi okrągłego ekranu). Aby zapewnić najlepszą jakość,basicCurvedText
można tworzyć tylko w ramachCurvedLayout
. Dotyczy to na przykład określania pozycji i używaniaCurvedModifiers
. Pamiętaj, że w większości przypadków należy użyć elementu curvedText, ponieważ korzysta on z motywu Material.curvedComposable – owija normalne treści kompozycyjne, aby można było ich używać z elementem
CurvedLayout
. JeślicurvedComposable
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 elementemcurvedComposable
.curvedRow i curvedColumn – podobnie jak Row i Column,
curvedRow
icurvedColumn
mogą być zagnieżdżone w elementachCurvedLayout
, aby w razie potrzeby układać elementy w odpowiedniej kolejności. W przypadkucurvedRow
można określić kierunek układu kątowego i wyrównanie promieniowe. W przypadkucurvedColumn
można określić kierunek kątowy i kierunek promieniowy.CurvedModifier – wszystkie komponenty zakrzywione akceptują parametr modyfikatora, który można utworzyć za pomocą
CurvedModifier
: obsługiwane są opcje background, size, weight i padding.W ramach nawigacji w komponencie na Wear dodano też ten komponent:
SwipeDismissableNavHost – zapewnia miejsce w hierarchii Compose, w którym może odbywać się nawigacja samodzielna, z możliwością cofnięcia za pomocą gestów przesuwania. Treści są wyświetlane w ramach
SwipeToDismissBox
, co wskazuje bieżący poziom nawigacji. Podczas gestu przesunięcia w bok w tle jest widoczny poprzedni poziom nawigacji (jeśli istnieje).Aby dowiedzieć się więcej o tym, co zostało dostarczone, zapoznaj się z informacjami o poprzednich wersjach alfa.
Zmiany w interfejsie API
- Dodano funkcje
CurvedModifier.padding*
. Służy do określenia dodatkowej przestrzeni wokół zakrzywionego elementu. (I4dbb4) - Usunięto klasę wewnętrzną
CompositionLocal
(I42490) - Dodaliśmy stałe wartości rozmiarów ikon
Button
,CompactButton
iToggleButton
jako wskazówki. (I57cab) - Dodaj parametr enabled do elementów
AppCard
iTitleCard
. Teraz mają interfejs API podobny doandroidx.compose.material
Cards. Jeśli parametr ma wartość Fałsz, karty nie będzie można kliknąć. (Idc48d, b/228869805)
Poprawki błędów
- Po osiągnięciu dolnego lub górnego limitu suwak wyłącza przyciski zmniejszania i zwiększania (i zastosuje ContentAlpha.disabled do iconColor) (I4be9f)
- Dodaliśmy 1 dp odstępu wokół elementów selektora, gdy są one rysowane z gradientem, aby zapobiec drżeniu tekstu podczas przesuwania. (I0b7b9)
- Dodaj testy zrzutów ekranu dla
PositionIndicator
(I5e8bc) - Dodaj więcej testów dla
AppCard
iTitleCard
(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-alpha21
i androidx.wear.compose:compose-navigation:1.0.0-alpha21
są dostępne. Wersja 1.0.0-alpha21 zawiera te commity.
Nowe funkcje
- Dodaliśmy nowe modyfikatory krzywych, aby określić tło elementu krzywego:
CurvedModifier.background
,.radialGradientBackground
i.angularGradientBackground
(I8f392) - Umożliwia określenie trybu przepełnienia krzywizny tekstu (przycięty/kropka wielokropka/widoczny). (I8e7aa)
- Dodano modyfikator
CurvedModifier.weight
podobny do tego w sekcji „Tworzenie”. Można go używać w przypadku elementów podrzędnych curvedRow i CurvedLayout (w przypadku szerokości) oraz elementów podrzędnych curvedColumn (w przypadku wysokości). (I8abbd) - Dodano modyfikatory
CurvedModifier.size
,.angularSize
i.radialSize
, aby określić rozmiar elementu zakrzywionego. (I623c7)
Zmiany w interfejsie API
- Zmień kolejność parametrów, aby zapewnić spójność w przypadku parametrów tła i kolorów w interfejsie Compose API na Wear (I43208)
- Usunięto parametry clockwise &
insideOut
i zastąpiono je bardziej precyzyjnymi stałymi w przypadku nowych klas. Kierunek wygiętego układu może teraz uwzględniaćLayoutDirection
, a jeśli nie zostanie określony, jest dziedziczony (If0e6a) - Aby rozwiązać problem z interfejsem API w usłudze
ScalingLazyColumn
, zastąpiliśmy interfejsautoCenter: Boolean
interfejsemautoCenter: AutoCentringParams
. (Ia9c90) - W całym interfejsie API (elementy typu Chip/ToggleChip/Dialog/Slider/Stepper itp.) zmieniliśmy nazwy elementów
iconTintColor
itoggleControlTintColor
naiconColor
itoggleControlColor
, ponieważ kolor jest stosowany w przypadku ikony lub elementu typu toggleControl. (Ied238) - Przepisanie typu wyliczeniowego
PageIndicatorStyle
na klasę wartości (I2dc72) - Dodaliśmy
RowScope/ColumnScope/BoxScope
do niektórych slotów w naszych komponentach, aby poinformować deweloperów o założeniach dotyczących układów. Umożliwi to deweloperom używanie dodatkowych modyfikatorów w przypadku niektórych treści w miejscu reklamy i uniknięcie konieczności dodawania dodatkowych elementów układu. Dodatkowo wprowadziliśmy drobne zmiany w kolorach kart aplikacji i kart tytułowych, tak aby domyślnietimeColor
iappColor
miały kolorcontentColor
. W razie potrzeby wszystkie te właściwości można zastąpić indywidualnie. (I26b59) - obiekt
SwipeToDismissBoxState.Companion
został oznaczony jako prywatny (I39e84); - Popraw kolejność parametrów
InlineSlider
iStepper
. Prosta zmiana zgodna z wytycznymi dotyczącymi interfejsu API (I11fec) - Usunęliśmy obiekt oszczędzania danych dla
SwipeToDismissBoxState
, ponieważ nie był używany. (Ifb54e) - Zaktualizowaliśmy
CompactChip
, aby był zgodny z najnowszą specyfikacją UX. Odstęp został zmniejszony do 12 dp w poziomie i 0 dp w pionie. Czcionka etykiety została zmieniona z przycisku na caption1. Zalecane rozmiary ikony to 20 x 20 pikseli, gdy obecne są zarówno ikona, jak i etykieta, oraz 24 x 24 piksele w przypadku tylko ikony. W przypadku użycia tylko ikony upewniliśmy się też, że jest ona wyśrodkowana. (Iea2be) - Dodaliśmy do
ScalingLazyListLayoutInfo
kilka nowych pól, aby umożliwić deweloperom poznanie zastosowanych wartościcontentPadding
iautoCenteringPadding
. Mogą być one przydatne deweloperom przy obliczaniu przewijania/przesuwania (I7577b). - Wprowadziliśmy przejścia do i z dialogu. Dodano parametr
showDialog
, dzięki któremu Dialog może kontrolować własną widoczność (umożliwia to odtwarzanie przez Dialog animacji wstępu i outro, gdy Dialog jest widoczny lub ukryty). Pamiętaj, że animacja outro nie jest wykonywana, gdy użytkownik zamyka okno za pomocą gestu przesunięcia. Dodaliśmy też domyślną wartość stanu w niedawno dodanej funkcjiSwipeToDismissBox
. (I682a0) - Aby lepiej obsługiwać i18n i a11y, zmieniliśmy elementy
ToggleChip
iSplitToggleChip
, tak aby nie miały już domyślnej wartości w miejscutoggleControl
. Zmieniliśmy teżToggleChipDefaults
, aby podawane przez te metody wartości były typu ImageVector, a nie Icon (ponieważ nie zwracają już @Composables, zmieniliśmy je na wartości zaczynające się od małych liter),SwitchIcon()->switchIcon()
,CheckboxIcon->checkboxIcon()
iRadioIcon()->radioIcon()
. Pozwala to deweloperom tworzyć własne komponentyIcon()
z odpowiednim zestawemcontentDescription
. (I5bb5b) - Dodaliśmy parametr
SwipeDismissableNavHostState
doSwipeDismissableNavHost
. Umożliwia to używanie przesuwania palcem po krawędzi na ekranach używanych jako miejsca docelowe nawigacji, ponieważSwipeToDismissBoxState
może teraz być podnoszone i używane do inicjowania zarównoSwipeDismissableNavHostState
, jak iModifier.edgeSwipeToDismiss
na ekranach, które wymagają przesuwania po krawędzi. (I819f5, b/228336555)
Poprawki błędów
- W razie potrzeby sprawdź, czy układy zakrzywione zostały zaktualizowane. (Ie8bfa, b/229079150)
- Poprawka błędu https://issuetracker.google.com/issues/226648931 (Ia0a0a, b/226648931)
- Usunięto niepotrzebne eksperymentalne adnotacje (I88d7e)
Wersja 1.0.0-alpha20
6 kwietnia 2022 roku
Funkcje androidx.wear.compose:compose-foundation:1.0.0-alpha20
, androidx.wear.compose:compose-material:1.0.0-alpha20
i androidx.wear.compose:compose-navigation:1.0.0-alpha20
są dostępne. Wersja 1.0.0-alpha20 zawiera te commity.
Nowe funkcje
- Dodaj modyfikator
edgeSwipeToDismiss
doSwipeToDismiss
. Umożliwia aktywnośćswipeToDismiss
tylko na lewej krawędzi widocznego obszaru. Używane, gdy środek ekranu musi obsługiwać przewijanie poziome, np. przewijanie mapy w 2D lub przesuwanie poziome między stronami.(I3fcec, b/200699800)
Zmiany w interfejsie API
- Podstawowa implementacja
CurvedModifiers
otwiera drogę do wprowadzenia sposobów dostosowywania krzywych treści (aleCurvedModifiers
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. DodaniePageIndicator
bezpośrednio do Scaffold zapewni prawidłowe wyświetlanie na urządzeniach z ekranem okrągłym. (Ia6042) - Usuń domyślne ikony z parametrów
InlineSlider
i Stepper. Pomoże to deweloperom zwracać większą uwagę na wymagania dotyczące lokalizacji i dostępności. Domyślne ikony zostały użyte w prezentacjach i próbkach. (I7e6fd) - Zastępowanie nazw parametrów końcowych i wstępnych parametrami Start i End w elementach TimeText (Iaac32)
- Dodaliśmy funkcję
SwipeToDismissBox
z parametremonDismissed
, aby umożliwić częste wywoływanie zdarzenia nawigacji po zakończeniu przesuwania. (I50353, b/226565726) - Usunięto adnotacje
ExperimentalWearMaterialApi
z elementuTimeText
(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 interfejsuScrollableState
. (Ib89c7)
Poprawki błędów
- Zaktualizuj reguły profilu bazowego środowiska wykonawczego Androida (ART) dla bibliotek Compose na Wear. ART może wykorzystywać reguły profilu na urządzeniach, aby z wyprzedzeniem skompilować określony podzbiór aplikacji i w ten sposób zwiększyć jej wydajność. Pamiętaj, że nie będzie to miało wpływu na aplikacje z możliwością debugowania. (Iaa8ef)
- Ulepszona dokumentacja (I2c051)
Wersja 1.0.0-alpha19
23 marca 2022 r.
Funkcje androidx.wear.compose:compose-foundation:1.0.0-alpha19
, androidx.wear.compose:compose-material:1.0.0-alpha19
i androidx.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
naCurvedLayout
i przekształciliśmy ją w zakres z DSL. Za pomocą tego języka można określać bardziej złożone wygięte układy za pomocą serii zagnieżdżonych elementówcurvedRow
icurvedColumn
(które są odpowiednikami elementów wiersza i kolumny w wygiętym układzie). W tych elementach układu można używać 3 elementów:curvedComposable
(dodawanie dowolnego elementu @Composable),basicCurvedText
(zaokrąglony tekst w fundamentach) icurvedText
(zaokrąglony tekst uwzględniający materiał Wear). (Ib776a) - Umożliw konfigurowanie strony
PositionIndicator
. Podstawową pozycję PositionIndicator można teraz skonfigurować jako End (zorientowaną na kierunek układu), OppositeRsb (uwzględniającą obrót ekranu, aby ustawić się naprzeciwko fizycznego przycisku RSB) lub Left & Right (zorientowaną na pozycję bezwzględną). (I2f1f3) - W przypadku wersji
SwipeToDismissBox
zmieniliśmy nazwę plikuSwipeDismissTarget
.Original naSwipeToDismissValue.Default
, aSwipeDismissTarget.Dismissal
naSwipeToDismissValue.Dismissed
. Przemieściliśmy teżSwipeToDismissBoxDefaults.BackgroundKey
iSwipeToDismissBoxDefaults.ContentKey
odpowiednio doSwipeToDismissKeys.Background
iSwipeToDismissKeys.Content
. (I47a36) - Dodaliśmy tryb tylko do odczytu w selektorze na potrzeby ekranów z kilkoma selektorami, na których można edytować tylko jeden selektor naraz. Gdy selektor jest tylko do odczytu, wyświetla aktualnie wybraną opcję i etykietę, jeśli została podana. (I879de)
- Usługa
SwipeToDismissBoxState
została przebudowana, aby ograniczyć zakres usługiExperimentalWearMaterialApi
do usługModifier.swipeable
iSwipeableState
, które są teraz używane wewnętrznie. UsługaSwipeToDismissBoxState
obsługuje teraz użytkowników z poziomówcurrentValue
,targetValue
,isAnimationRunning
isnapTo
, aby obsługiwać typowe przypadki użycia. Daj nam znać, jeśli chcesz, abyśmy udostępnili dodatkowe poziomy. Poprawiliśmy też działanie funkcjiSwipeableState
w przypadku, gdy przesunięcie przesunięcia mieści się w błędach zaokrągleń w przypadku punktu zakotwiczonego. (I58302)
Poprawki błędów
- Uproszczony i naprawiony kod służący do wykrywania, czy można przewijać zawartość
ScalingLazyColumn
(używany do podejmowania decyzji, czy wyświetlić pasek przewijania) (I7bce0) - Usunęliśmy błąd wskaźnika pozycji, który występował podczas używania więcej niż jednego stanu i przełączania się między nimi (I320b5).
- Zaktualizowaliśmy domyślną typografię/czcionki motywu aplikacji Compose na Wear OS, aby była zgodna z najwcześniejszymi wskazówkami dotyczącymi UX. Wartości display1 (40.sp) i display2 (34.sp) są teraz mniejsze niż ich poprzednie wartości. Wprowadziliśmy też kilka drobnych zmian wysokości i interlinii. (Ie3077)
- Dodaliśmy opór do
SwipeToDismissBox
, aby ruch odbywał się tylko podczas przesuwania w celu zamknięcia, a nie w ogóle w przeciwnym kierunku. (Ifdfb9) - Zmieniliśmy niektóre domyślne wartości parametrów funkcji
CircularProgressIndicator
, aby były zgodne ze wskazówkami dotyczącymi interfejsu użytkownika w ramach Material Design na Wear OS. W wersji spinnera/nieokreślonego zaktualizowano rozmiar (40 >24 dp), kolor wskaźnika (primary->onBackground), przezroczystość koloru ścieżki (30%->10%) i szerokość obrysu (4 >3 dp). W wersji z wskaźnikiem postępu lub wskaźnikiem określania przejrzystość koloru ścieżki (30% >10%) została zaktualizowana. (I659cc) - Zaktualizowaliśmy domyślne parametry skalowania
ScalingLazyColumn
zgodnie z najnowszymi specyfikacjami interfejsu użytkownika Material Design na Wear. W efekcie elementy listy zaczynają być skalowane bliżej środka listy, ale mniej niż wcześniej przy krawędzi. (Ica8f3) - Niektóre korekty w
ScalingLazyColumnDefaults.snapFlingBehavior
, aby ulepszyć koniec animacji (If3260)
Wersja 1.0.0-alpha18
9 marca 2022 r.
Funkcje androidx.wear.compose:compose-foundation:1.0.0-alpha18
, androidx.wear.compose:compose-material:1.0.0-alpha18
i androidx.wear.compose:compose-navigation:1.0.0-alpha18
są dostępne. Wersja 1.0.0-alpha18 zawiera te commity.
Zmiany w interfejsie API
- Kilka ulepszeń funkcji PositionIndicator: ShowResult zmieniono na PositionIndicatorVisibility. Niektóre ulepszenia wydajności, aby uniknąć ponownych obliczeń, gdy nie są potrzebne (Iaed9d)
- Zalecana kolorystyka dla
SplitToggleChip
została zaktualizowana. Elementy typu SplitToggleChip mają teraz jednolite tło, gdy są zaznaczone lub niezaznaczone. Kolor elementu ToggleControl jest głównym wskaźnikiem tego, czy komponent jest zaznaczony. Dodaliśmy nową opcjęToggleDefaults.splitToggleChipColors()
, aby umożliwić korzystanie z nowego schematu kolorów. Uprościliśmy też metodytoggleChipColors()
, usuwając parametr splitBackgroundOverlayColor (I7e66e). - Do atrybutu
ScalingLazyListItemInfo
dodaliśmy atrybut unadjustedSize, ponieważ ze względu na precyzję obliczeń typu float nie jest bezpieczne obliczanie oryginalnego rozmiaru produktu za pomocą skalowanego rozmiaru i współczynnika skalowania. (I54657, b/221079441) - Dodaj
HorizontalPageIndicator
. Reprezentuje łączną liczbę stron i wybraną stronę. Może być liniowy lub zakrzywiony, w zależności od kształtu urządzenia. Obsługuje też niestandardowy kształt wskaźnika, który określa, jak ma być on wizualnie przedstawiany. (Iac898) - Zaktualizowaliśmy element
PickerState
, aby można było zaktualizować element numberOfOptions. Umożliwia to obsługę takich przypadków użycia jakDatePicker
, 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
PositionIndicator
iVignette
. ZamiastColumn
używamy terazScalingLazyColumn
, co oznacza, że zawartość dialogu jest teraz wScalingLazyListScope
(i zwykle musi być ujęta w element { /* content */ }). Dialog obsługuje odpowiednio parametr verticalArrangement. (Idea13) - Zmieniliśmy nazwę właściwości
ToggleChip
iSplitToggleChip
toggleIcon na toggleControl, aby lepiej dostosować ją do projektu Material Design. Ma to ułatwić projektantom i programistom poruszanie się po interfejsie API. (If5921, b/220129803) - Dodaliśmy nowy wpis caption3 do Typologii motywów Material na Wear.Caption3 to mała czcionka używana do bardzo długich tekstów, takich jak teksty prawne. (I74b13, b/220128356)
Poprawki błędów
- Zatrzymaj animację przyciągania. (Idb69d)
- Animowanie zmian w elementach PositionIndicator. (I94cb9)
- Na podstawie opinii dotyczących interfejsu użytkownika i doświadczeń użytkownika zmieniliśmy automatyczne wyśrodkowywanie
ScalingLazyColumn
, tak aby zajmowało tylko tyle miejsca, aby elementy o indeksieScalingLazyListState.initialCenterItemIndex
lub wyższym można było w pełni przewinąć do środka widoku. Umożliwia to programistom umieszczenie 1 lub 2 elementów dotyczących danego elementu na środku, które nie mogą być przewijane. Oznacza to, że automatyczne wyśrodkowywanieScalingLazyColumn
nie będzie mogło przewijać powyżejinitialCenterItemIndex/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-alpha17
i androidx.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
. UstawflingBehavior = ScalingLazyColumnDefaults.flingWithSnapBehavior(state)
, aby włączyć obsługę przypinania. (I068d3, b/217377069) - Dodaliśmy demonstracje selektora służącego do wybierania czasu w systemie 24-godzinnym lub 12-godzinnym. (Ie5552)
Zmiany w interfejsie API
- Rozwiązanie problemu z niestandardowymi czcionkami i stylami
TimeText
na urządzeniach kwadratowych (Iea76e) - Obiekt
ScalingLazyListLayoutInfo
ma teraz właściwościreverseLayout
,viewportSize
i orientation odpowiadające właściwościom obiektuLazyListLayoutInfo
(I4f258, b/217917020) - Użytkownik
ScalingLazyColumn
ma teraz właściwośćuserScrollEnabled
, która pasuje do właściwości użytkownikaLazyList
(I164d0, b/217912513). - Selektory mają teraz domyślnie gradient u góry i u dołu (Iab92a)
Poprawki błędów
- Zmieniliśmy
ScalingLazyColumn
, aby nie zajmował całej przestrzeni w swoim elemencie nadrzędnym. Zamiast tego będzie ono mieć rozmiar odpowiadający rozmiarowi zawartości. Dzięki temu jest ona zgodna z działaniem funkcjiLazyColumn
. Jeśli chcesz przywrócić poprzednie działanie, prześlijModifier.fillMaxWidth()/width()/widthIn()
doScalingLazyColumn
(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-alpha16
i androidx.wear.compose:compose-navigation:1.0.0-alpha16
są dostępne. Wersja 1.0.0-alpha16 zawiera te commity.
Nowe funkcje
- Dodaj
CircularProgressIndicator
. Wskaźniki postępu wskazują czas trwania procesu lub nieokreślony czas oczekiwania. Obsługuje przerwę (wycięcie) dla TimeText lub innych komponentów, jeśli są używane w trybie pełnoekranowym. (Iab8da)
Zmiany w interfejsie API
- Selektory mają teraz parametr
flingBehavior
. Wartość domyślna sprawia, że podczas przewijania lub przeciągania selektory przyklejają się do najbliższej opcji. (I09000) - Dodatkowy interfejs API typu integer do Slidera i Steppera (I1b5d6)
Poprawki błędów
- Domyślny initialCenterItemIndex dla
ScalingLazyListState
zmieniliśmy z 0 na 1. Oznacza to, że jeśli nie zostanie zastąpiony podczas tworzenia stanu za pomocąScalingLazyListState.rememberScalingLazyListState(initialCenterItemIndex =
)
, 2 element listy (index == 1) zostanie umieszczony na środku widoku podczas inicjalizacji, a 1 element (index == 0) – przed nim. Dzięki temu można uzyskać lepszy domyślny efekt wizualny, ponieważ większość widocznego obszaru będzie wypełniona elementami listy. (I0c623, b/217344252) - Zmniejszyliśmy domyślną wartość parametru
ScalingLazyColumn
z 10% do 5%, aby zapewnić wystarczającą liczbę elementów listy do wyświetlenia (nawet jeśli niektóre z nich są zmniejszane).extraPadding
Dzięki temu unikniesz tworzenia dodatkowych elementów listy, które mogą nie być widoczne w obszarze widoku. Jeśli używane są niestandardowe parametry skalowania (np. bardziej ekstremalne skalowanie), deweloper może dostosować dodatkowy margines za pomocąviewportVerticalOffsetResolver
. (I76be4) - Rozwiązanie problemu z tekstem czasu na kilku wierszach na urządzeniu kwadratowym (Ibd3fb)
- Zmieniliśmy
ScalingLazyColumn
, aby nie zajmował całej przestrzeni w swoim elemencie nadrzędnym. Zamiast tego będzie ono mieć rozmiar odpowiadający rozmiarowi zawartości. Dzięki temu jest ona zgodna z działaniemLazyColumn
. Jeśli chcesz przywrócić poprzednie działanie, ustawModifier.fillMaxSize()
naScalingLazyColumn
. 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-alpha15
i androidx.wear.compose:compose-navigation:1.0.0-alpha15
są dostępne. Wersja 1.0.0-alpha15 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Do usługi
ScalingLazyColumn
dodaliśmy nową właściwośćautoCentering
. Gdy ta opcja jest ustawiona na wartość Prawda (wartość domyślna), wszystkie elementy, w tym pierwszy i ostatni, można przewijać, aby były widoczne w środku widoku listy. Pamiętaj, że jeśli używasz automatycznego wyrównywania do środka, warto ustawić pionowy margines treści na 0 dp. Jeśli ustawisz automatyczne wyśrodkowanie i dodatk do treści w pionowej, to spowoduje to, że przed pierwszym i po ostatnim elemencie listy będzie dostępna dodatkowa przestrzeń, co pozwoli na przewijanie jeszcze dalej. (I2a282, b/214922490) - Dodaliśmy komponent
Dialog
, który umożliwia dowolnemu komponentowi wywołanie pełnoekranowego okna dialogowego, które wyświetla się na wierzchu innych treści. Gdy dialog jest wyświetlany, można go zamknąć przez przesunięcie palcem. Podczas tego gestu będzie widoczna zawartość elementu nadrzędnego. Treść dialogu powinna byćAlert
lubConfirmation
(przemianowane z wcześniejszych komponentówAlertDialog
iConfirmationDialog
) – komponentyAlert
,Confirmation
iDialog
znajdują się w pakiecieandroidx.wear.compose.material.dialog
. Alert i potwierdzenie mogą być używane jako miejsca docelowe nawigacji. W razie potrzeby dodaliśmy też parametr zakresu kolumny do parametrów alertu i potwierdzenia. (Ia9014) - Usunęliśmy kolor
onSurfaceVariant2
z komponentu Compose na WearOS w Material Theme Colors i zastąpiliśmy jego użycie w bibliotece koloremonSurfaceVariant
. (Icd592) - Dodano metodę umożliwiającą wybór opcji w
PickerState
za pomocą kodu. Opcję wybraną na początku można teraz również określić podczas tworzeniaPickerState
. (I92bdf) - Dodaliśmy obsługę dostosowywania zachowania
ScalingLazyColumn
. (I1ad2e, b/208842968) - Dodaliśmy
NavController.currentBackStackEntryAsState()
do bibliotekiWear.Compose.Navigation
. (If9028, b/212739653) - Dodano
Modifier.onRotaryScrollEvent()
iModifier.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-alpha14
i androidx.wear.compose:compose-navigation:1.0.0-alpha14
są dostępne. Wersja 1.0.0-alpha14 zawiera te zatwierdzenia.
Nowe funkcje
Dodaliśmy do klasy
ScalingLazyListState
kilka metod, aby umożliwić deweloperom kontrolowanie przewijania do określonych elementów listy oraz ustawianie początkowego elementu listy i przesunięcia.W ramach tej zmiany zmodyfikowaliśmy też komponent ScalingLazyList, tak aby był on zorientowany wokół środka obszaru widocznego komponentu ScalingLazyList, a nie początku obszaru widocznego.
Do właściwości
ScalingLazyList
dodaliśmy nową właściwośćanchorType: ScalingLazyListAnchorType = ScalingLazyListAnchorType.ItemCenter
, która pozwala określić, czy środek (ScalingLazyListAnchorType.ItemCenter
) czyEdge
(ScalingLazyListAnchorType.ItemStart
) ma być wyrównany do osi środkowej widoku.W rezultacie wartości
ScalingLazyListItemInfo.offset
iScalingLazyListItemInfo.adjustedOffset
uległy zmianie i odzwierciedlają teraz przesunięcie elementu względem pozycji elementu na liście ianchorType
listy. Na przykład w przypadkuScalingLazyColumn
zanchorType
=ItemCenter
i elementu listy umieszczonego na środku osi widoku offset wynosi0
.Nowe metody to
scrollTo
,animatedScrollTo
,centerItemIndex
icenterItemOffset
. (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-alpha13
i androidx.wear.compose:compose-navigation:1.0.0-alpha13
są dostępne. Wersja 1.0.0-alpha13 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Użytkownik
RangeIcons
został przeniesiony do wewnętrznego katalogu (wewnętrzne odwołania do niego toInlineSlider
iStepper
). (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 życiaCREATED
, co powodowało błądIllegalStateException
. Ta poprawka była warunkiem wstępnym do aktualizacji zależności od wersjinavigation-compose
do wersji2.4.0-beta02
i późniejszych. (I40a2b, b/207328687)Dodano klasę typu enum Drawables do pobierania zasobów drawable w bibliotece Wear Compose, dzięki czemu nie jest już potrzebna refleksja. Naprawiono błąd, który powodował usuwanie obiektów do rysowania z biblioteki podczas
minifyEnabled=true
lubshrinkResources=true
. (Ib2a98)Dodano testy
Stepper
w komponencie Wear Compose (I2d03a).Dodaliśmy przykłady
SwipeDismissableNavHost
w ramach nawigacji w Compose na Wear. (I85f06)
Wersja 1.0.0-alpha12
1 grudnia 2021 r.
Funkcje androidx.wear.compose:compose-foundation:1.0.0-alpha12
, androidx.wear.compose:compose-material:1.0.0-alpha12
i androidx.wear.compose:compose-navigation:1.0.0-alpha12
są dostępne. Wersja 1.0.0-alpha12 zawiera te commity.
Nowe funkcje
Dodaliśmy komponent Stepper, który pozwala użytkownikom wybierać spośród zakresu wartości. Regulator to kontrola na pełnym ekranie z przyciskami zwiększania i zmniejszania u góry i u dołu oraz gniazdem pośrodku (ma zawierać element Chip lub element Tekst). W razie potrzeby ikony przycisków można dostosować. (I625fe)
Dodaliśmy 2 nowe komponenty do wyświetlania dialogów: AlertDialog czeka na odpowiedź użytkownika i wyświetla tytuł, ikonę, wiadomość oraz: a) 2 przyciski umożliwiające proste wybory pozytywne/negatywne lub b) ułożone pionowo elementy lub przełączniki umożliwiające bardziej elastyczne wybory. ConfirmationDialog wyświetla potwierdzenie z czasem oczekiwania. To proste okno zawiera miejsca na tytuł i (animowaną) ikonę. (Ic2cf8)
Zmiany w interfejsie API
- Do sugerowanych wartości czasu trwania dialogu dodaj jednostki (ms). (I09b48)
Wersja 1.0.0-alpha11
17 listopada 2021 r.
Funkcje androidx.wear.compose:compose-foundation:1.0.0-alpha11
, androidx.wear.compose:compose-material:1.0.0-alpha11
i androidx.wear.compose:compose-navigation:1.0.0-alpha11
są dostępne. Wersja 1.0.0-alpha11 zawiera te commity.
Nowe funkcje
- Dodaliśmy komponent selektora, który umożliwia użytkownikowi wybranie elementu z przewijanej listy. Domyślnie lista elementów do wyboru jest powtarzana „nieskończenie” w obu kierunkach, aby stworzyć wrażenie obracającego się walca widzianego z boku. W kolejnych wersjach dodamy 2 funkcje: zablokowanie wartości po przesunięciu palcem lub przeciągnięciu palcem; dodanie do PickerState funkcji, która umożliwia ustawienie lub przewinięcie do bieżącej wartości. (I6461b)
Zmiany w interfejsie API
- Dodano zakres elementów o zmiennym rozmiarze i kilka nowych modyfikatorów fillParentMaxSize/fillParentMaxWidth/fillParentMaxHeight, aby umożliwić dostosowanie rozmiaru elementów listy do rozmiaru kontenera nadrzędnego. Elementy mogą wypełniać cały rozmiar elementu nadrzędnego lub jego część. Udostępnia to funkcje dostępne już w LazyRow/Column (I4612f).
- Dodaliśmy obsługę ScalingLazyColumn, aby umożliwić elementom posiadanie klucza. Dodaliśmy też wygodne metody umożliwiające dodawanie elementów z tablic i list. (Ic1f89)
Poprawki błędów
- Dodatkowe przykłady dla TimeText (I8cb64)
Wersja 1.0.0-alpha10
3 listopada 2021 r.
Funkcje androidx.wear.compose:compose-foundation:1.0.0-alpha10
, androidx.wear.compose:compose-material:1.0.0-alpha10
i androidx.wear.compose:compose-navigation:1.0.0-alpha10
są dostępne. Wersja 1.0.0-alpha10 zawiera te commity.
Nowe funkcje
Dodano suwak w komponowaniu na zegarku. Suwak w linii umożliwia użytkownikom wybór spośród zakresu wartości. Zakres opcji jest wyświetlany jako pasek między minimalną a maksymalną wartością zakresu, z którego użytkownicy mogą wybrać jedną wartość. (If0148)
Poznaj nowe Compose w ramach Codelab dla Wear OS.
Zmiany w interfejsie API
- Makrobenchmark ma teraz
minSdkVersion
23
. (If2655)
Poprawki błędów
- Aktualizacja obsługi przejść w SwipeDismissableNavHost w SideEffect (I04994, b/202863359)
- Zaktualizuj obsługę przejścia w SwipeDismissableNavHost (I1cbe0, b/202863359)
Wersja 1.0.0-alpha09
27 października 2021 roku
Funkcje androidx.wear.compose:compose-foundation:1.0.0-alpha09
, androidx.wear.compose:compose-material:1.0.0-alpha09
i androidx.wear.compose:compose-navigation:1.0.0-alpha09
są dostępne. Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.
Nowe funkcje
- Wprowadziliśmy wersję dla deweloperów Compose na Wear OS. W poście na blogu znajdziesz omówienie głównych komponentów oraz linki do dodatkowych materiałów, które pomogą Ci zacząć z nich korzystać.
Zmiany w interfejsie API
- Dodaliśmy obsługę, aby umożliwić deweloperom dostosowywanie wszystkich kolorów w ramach motywu kolorów w interfejsie Material Design na Wear. (I4759b, b/199754668)
Poprawki błędów
- Dodano przykłady SwipeToDismissBox, które zachowują stan (Ibaffe)
- Dodaliśmy linki do przewodników z KDocs na stronie developer.android.com dotyczących komponentów CurvedText, TimeText i SwipeToDismissBox. (I399d4)
- SwipeDismissableNavHost zgłasza błąd, jeśli nie ma bieżącego miejsca docelowego (co oznacza, że NavGraph nie został utworzony za pomocą funkcji użyteczności wear.compose.navigation.composable). (I91403)
- Dodano dodatkową dokumentację i przykłady użycia źródła czasu w elementach TimeText (I4f6f0).
Wersja 1.0.0-alpha08
13 października 2021 r.
Funkcje androidx.wear.compose:compose-foundation:1.0.0-alpha08
, androidx.wear.compose:compose-material:1.0.0-alpha08
i androidx.wear.compose:compose-navigation:1.0.0-alpha08
są dostępne. Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmieniliśmy nazwy właściwości
body
AppCard i TitleCard nacontent
i przeniosliśmy je na koniec listy właściwości, aby można było je podać jako końcową funkcję lambda. Zmieniliśmy też nazwębodyColor
nacontentColor
, aby zachować spójność z nowymi nazwami przedziałów. (I57e78)
Poprawki błędów
- Dodano linki do poradników na stronie developer.android.com dotyczących przycisków, kart, elementów mapy, motywów, wskaźników pozycji i komponentów kolumny z opóźnionym wczytywaniem z KDocs. (I22428)
- Naprawiono błąd w WearOS, który powodował, że pole SwipeToDismissBox nie reagowało na gest przesunięcia. (I9387e)
- Dodano przykłady przycisku, przycisku kompaktowego, elementu Chip, elementu CompactChip, karty aplikacji, karty tytułu, przycisku przełącznika, elementu ToggleChip i elementu SplitToggleChip (Iddc15).
- Dodano testy wydajności mikrobenchmarków dla komponentów: Card, Chip, ToggleChip, TimeText i ScalingLazyColumn. (If2fe9)
Wersja 1.0.0-alpha07
29 września 2021 r.
Funkcje androidx.wear.compose:compose-foundation:1.0.0-alpha07
, androidx.wear.compose:compose-material:1.0.0-alpha07
i androidx.wear.compose:compose-navigation:1.0.0-alpha07
są dostępne. Wersja 1.0.0-alpha07 zawiera te commity.
Nowe funkcje
- Dodano w materialu komponent CurvedText, który pozwala deweloperom na łatwe pisanie krzywego tekstu zgodnie z krzywizną koła (zwykle na krawędzi okrągłego ekranu). (I19593)
Zmiany w interfejsie API
- Dodano testy dotyczące elementu TimeText (Idfead).
- Przekształcanie wartości ArcPaddingValues w interfejsie. (Iecd4c)
- Dodano animację do pola SwipeToDismissBox (I9ad1b).
- Do interfejsu API SwipeToDismissBox dodaliśmy parametr hasBackground, aby można było wyłączyć gest przesunięcia, gdy nie ma treści tła do wyświetlenia. (I313d8)
- Funkcja
rememberNavController()
przyjmuje teraz opcjonalny zbiór instancjiNavigator
, który zostanie dodany do zwróconegoNavController
, aby lepiej obsługiwać opcjonalne nawigatory, takie jak te z Materiału nawigacyjnego towarzysza. (I4619e) - Odwołuj się do NamedNavArgument z navigation-common i usuń kopię z wear.compose.navigation. (I43af6)
Poprawki błędów
- Naprawiono niestabilność testu CurvedRow na mniejszych urządzeniach. (If7941)
- Usunięto problem z możliwym migotaniem wygiętego wiersza podczas aktualizowania treści. Zapewnienie ponownego pomiaru wygiętego wiersza (Ie4e06)
- Funkcja ChipDefaults.gradientBackgroundChipColors() została zaktualizowana zgodnie ze specyfikacją UX. Gradient zaczyna się teraz od MaterialTheme.colors.primary z alfa 32,5%, a kończy na MaterialTheme.colors.surface z alfa 0% na tle MaterialTheme.colors.surface z alfa 75%. (Id1548)
- Zaktualizowaliśmy kolory przycisków przełączników w wybranym stanie, aby były zgodne z najnowszymi wytycznymi dotyczącymi interfejsu użytkownika w ramach Material Design na Wear. Po wybraniu przełączniki mają teraz tło gradientowe od MaterialTheme.color.surface @ 0% alfa (w lewym górnym rogu) do MaterialTheme.color.primary @ 32% alfa (w prawym dolnym rogu) na tle MaterialTheme.color.surface @ 75% alfa. W efekcie różnica między zaznaczeniem a odznaczeniem elementu ToggleChip jest mniej widoczna. (Idd40b)
Wersja 1.0.0-alpha06
15 września 2021 r.
Funkcje androidx.wear.compose:compose-foundation:1.0.0-alpha06
, androidx.wear.compose:compose-material:1.0.0-alpha06
i androidx.wear.compose:compose-navigation:1.0.0-alpha06
są dostępne. Wersja 1.0.0-alpha06 zawiera te commity.
Nowe funkcje
- Dodaliśmy szkielet – komponent aplikacji najwyższego poziomu, który zapewnia strukturę do obsługi pozycji wskaźników (np. przewijania lub głośności), obszar u góry ekranu do wyświetlania czasu i stanu aplikacji, a także obsługę efektu winiety, który pozwala rozmyć górną i dolną krawędź ekranu w przypadku treści przewijanych. Główna część szkieletu to obszar, w którym umieszczane są treści aplikacji. (I5e0bf)
- Dodano implementację TimeText na potrzeby Compose na Wear (I5654c)
Biblioteka nawigacji w Compose na Wear
Dodaliśmy pierwszą wersję biblioteki nawigacji w Compose na Wear, która umożliwia integrację bibliotek Compose na Wear i Androidx Navigation. Umożliwia ona łatwe przechodzenie między funkcjami @Composable jako miejscami docelowymi w aplikacji.
Ta pierwsza wersja zawiera:
- Komponent
SwipeDismissableNavHost
, który zawiera graf nawigacji i umożliwia nawigację wstecz za pomocą gestów przesuwania. NavGraphBuilder.composable
rozszerzenie ułatwiające tworzenie grafów nawigacjirememberSwipeDismissableNavController()
, aby zezwolić na przenoszenie stanu
- Komponent
Przykładowe użycie, w którym tworzymy 2 ekrany i przechodzimy między nimi:
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "start" ) { composable("start") { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier.fillMaxSize(), ) { Button(onClick = { navController.navigate("next") }) { Text("Go") } } } composable("next") { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier.fillMaxSize(), ) { Text("Swipe to go back") } } }
Nawigacja w komponencie Wear Compose jest pakowana jako osobna biblioteka, aby proste aplikacje korzystające z komponentu Wear Compose, które implementują własną nawigację, nie musiały być zależne od biblioteki Androidx Navigation.
Zmiany w interfejsie API
- Zaktualizowano
SwipeDismissableNavHost
, aby obsługiwałrememberSaveable
przez ustawienie kluczowej tożsamości dla tła i treści (I746fd) - Dodaliśmy adapter PositionIndicator, który obsługuje stan LazyListState (I21b88).
- Zaktualizowano element SwipeToDismissBox, aby obsługiwał pamiętanie możliwości zapisu (Ie728b).
- Dodaliśmy obsługę reverseLayout do ScalingLazyColumn. Umożliwia odwrócenie kierunku przewijania i układu (I9e2fc)
- Wycofane parametry
performGesture
iGestureScope
, które zostały zastąpione przez parametryperformTouchInput
iTouchInjectionScope
. (Ia5f3f, b/190493367) - Zmieniliśmy nazwę parametru VignetteValue na VignettePosition i nazwę parametru VignetteValue.Obydwa zostały przemianowane na VignettePosition.TopAndBottom. (I57ad7)
- Nazwa ScalingLazyColumnState została zmieniona na ScalingLazyListState, ScalingLazyColumnItemInfo na ScalingLazyListItemInfo, ScalingLazyColumnLayoutInfo na ScalingLazyListLayoutInfo, a ScalingLazyColumnScope na ScalingLazyListScope, ponieważ w przyszłości możemy zdecydować się na implementację ScalingLazyRow. (I22734)
Poprawki błędów
- Zaktualizowaliśmy dokumentację dotyczącą elementu CompactChip, aby opisać, co się dzieje, jeśli nie podasz ani ikony, ani etykiety. (I4ba88)
- Wprowadziliśmy kilka zmian w komponentach kart na Wear. (I6b3d0)
- Odstęp między elementami karty tytułu (Tytuł i Treść) zmniejszono z 8 dp do 2 dp.
- Czcionka nagłówka karty tytułowej została zmieniona z body na title3.
- 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-alpha05
i androidx.wear.compose:compose-material:1.0.0-alpha05
są dostępne. Wersja 1.0.0-alpha05 zawiera te commity.
Zmiany w interfejsie API
- Oznacz ArcPaddingValues jako @Stable (I57deb)
- ScalingLazyColumnState implementuje teraz interfejs ScrollableState, który daje deweloperom programowy dostęp do przewijania komponentu. (I47dbc)
Poprawki błędów
- Zmniejszono odstęp między ikoną a tekstem w elementach tekstowych i elementach przełącznika, aby dostosować je do zmian w specyfikacji UX (I83802).
Wersja 1.0.0-alpha04
18 sierpnia 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha04
i androidx.wear.compose:compose-material:1.0.0-alpha04
są dostępne. Wersja 1.0.0-alpha04 zawiera te commity.
Nowe funkcje
- Dodano element SwipeToDismissBox i modyfikator umożliwiający gest przesunięcia w lewo, aby zamknąć. Chociaż jest niezależny od komponentów nawigacji, służy do zamykania jednego ekranu i przechodzenia do innego. Dodano testy integracji do demonstracji funkcji przesuwania w bok w celu zamknięcia. (I7bba)
- Do klasy ScalingLazyColumnState dodaliśmy interfejsy ScalingLazyColumnItemInfo i ScalingLazyColumnLayoutInfo, aby umożliwić deweloperom poznanie rzeczywistych pozycji i rozmiarów elementów w elementach ScalingLazyColumn po zastosowaniu skalowania. Naprawiliśmy też błąd związany ze sposobem obliczania skalowania, gdy do kolumny ScalingLazyColumn zastosowano wypełnienie treści „top”. (I27c07)
Zmiany w interfejsie API
- Dodaj klasę CurvedTextStyle, aby określić styl wygięcia tekstu. Podobny do TextStyle, ale obsługuje tylko kolor, fontSize i tło. W przyszłości dodamy więcej opcji stylizacji. (I96ac3)
- Do klasy ScalingLazyColumnState dodaliśmy interfejsy ScalingLazyColumnItemInfo i ScalingLazyColumnLayoutInfo, aby umożliwić deweloperom poznanie rzeczywistych pozycji i rozmiarów elementów w elementach ScalingLazyColumn po zastosowaniu skalowania. Naprawiliśmy też błąd związany ze sposobem obliczania skalowania, gdy do kolumny ScalingLazyColumn zastosowano wypełnienie treści „top”. (I27c07)
- Dodano wartość
@ExperimentalWearMaterialApi
do wyliczeniaSwipeDismissTarget
, które jest częścią interfejsu APISwipeToDismissBox
. (I48b5e)
Poprawki błędów
- Dodano materiały testowe dotyczące pola SwipeToDismissBox (I9febc).
Wersja 1.0.0-alpha03
4 sierpnia 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha03
i androidx.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()
naCardDefaults.imageWithScrimBackgroundPainter()
, aby było jasne, że obraz tła ma nałożoną zasłonę. (I53206) - Dodanie komponentu ScalingLazyColumn, który zapewnia komponent listy dla Wear Material, który daje efekt rybiego oka, gdy zawartość listy jest zmniejszana i staje się przezroczysta, gdy zbliża się do krawędzi komponentu. (I7070c)
Poprawki błędów
- Zmieniliśmy domyślny kolor treści appName w karcie aplikacji w odpowiedzi na aktualizację specyfikacji UX. Domyślny kolor nazwy aplikacji to teraz
MaterialTheme.colors.onSurfaceVariant
. Dodatkowo dodano brakujący opis dokumentu z parametrami dla pola tytułu. (Ic4ad1)
Wersja 1.0.0-alpha02
21 lipca 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha02
i androidx.wear.compose:compose-material:1.0.0-alpha02
są dostępne. Wersja 1.0.0-alpha02 zawiera te commity.
Nowe funkcje
- Dodano nową klasę CurvedRow do skompilowanych elementów w łuku (I29941)
- Dodano nowy typ karty do stosowania w aplikacjach (karta tytułu), a także dodano obsługę obrazów jako tła kart, aby podkreślić ich zawartość (I53b0f)
Zmiany w interfejsie API
- Dodanie obsługi wyrównania promieniowego do kolumny wygiętej (podobnego do wyrównania pionowego w kolumnie) (Id9de5)
- Dodanie nowej klasy CurvedRow do rozmieszczonych komponentów w kształcie łuku (I29941)
- Dodano nowy typ karty do stosowania w aplikacjach (karta tytułowa), a także dodano obsługę obrazów jako tła kart, aby podkreślić ich zawartość (I53b0f)
- Dodano ikony przełączników (pole wyboru, przełączniki i przyciski opcji) do ToggleChipDefaults, aby ułatwić deweloperom konfigurowanie elementów ToggleChip i SplitToggleChips (I7b639).
- Zaktualizowaliśmy wypełnienie treści na początku i na końcu elementów, aby było ono zawsze równe 14 dp niezależnie od tego, czy element ma ikonę, czy nie (wcześniej było to 12 dp, jeśli ikona była obecna, i 14 dp, jeśli nie) (I34c86)
Poprawki błędów
- Dodaj testy dla CurvedRow (I93cdb)
- Powiązanie zależności Wear Compose z Compose 1.0.0-rc01. (Ie6bc9)
- Zmieniliśmy sposób wyświetlania obrazu tła w kartach i elementach, aby był on przycinany zamiast rozciągany, co pozwala zachować proporcje obrazu. (I29b41)
- Dodaliśmy więcej demonstracji i testów integracji przycisków Button i ToggleButton. (5e27ed2)
- Dodano więcej testów elementów, aby uwzględnić kolory treści w przypadku elementów imageBackground (Ia9183).
Wersja 1.0.0-alpha01
1 lipca 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha01
i androidx.wear.compose:compose-material:1.0.0-alpha01
są dostępne. Wersja 1.0.0-alpha01 zawiera te commity.
Nowe funkcje
Wear Compose to biblioteka na platformę Kotlin, oparta na Compose, która obsługuje interfejs Wear Material Design, czyli rozszerzenie Material Design na potrzeby urządzeń noszonych WearOS. Ta pierwsza wersja alfa zawiera wczesne, funkcjonalne implementacje tych funkcji:
- Motyw Material – pozwala skonfigurować kolory, typografię i kształty w sposób spójny w przypadku komponentów używanych w tej bibliotece.
- Elementy typu „chip” i „compact chip” mają kształt stadionu i są dostępne w różnych wariantach, które umożliwiają umieszczanie treści ikony, etykiety i etykiety dodatkowej.
- – ToggleChip, SplitToggleChip – specjalistyczny typ elementu, który zawiera miejsce na ikonę przełącznika dwustanowego, np. przycisk radiowy lub pole wyboru. Dodatkowo element SplitToggleChip ma 2 obszary, które można dotykać: jeden do klikania i jeden do przełączania.
- Button, CompactButton – przyciski o okrągłym kształcie z jednym miejscem na zawartość (ikonę lub minimalny tekst, maksymalnie 3 znaki).
- ToggleButton – przycisk, który włącza lub wyłącza działanie, z jednym miejscem na ikonę lub minimalny tekst (maksymalnie 3 znaki).
- Karta, karta aplikacji – prostokąt z zaokrąglonymi rogami, który zawiera miejsca na treści takie jak ikona aplikacji, czas, tytuł i tekst.
W przyszłych wersjach zestawu widżetów dodamy obsługę selektorów, suwaków, list, wskaźników stron, dialogów, wskaźników przewijania, powiadomień i innych elementów w stylu Material Design na urządzeniach z Wear.
Dodatkowo zapewniamy obsługę innych funkcji dotyczących urządzeń noszonych, takich jak wygięte układy i tekst, a także szkielety, które ułatwiają deweloperom tworzenie aplikacji i nakładek na urządzenia noszone.
Materiał Compose na Wear został zaprojektowany zgodnie z tymi samymi zasadami co Compose, ale jest przeznaczony do korzystania na urządzeniach do noszenia. Podczas tworzenia aplikacji na urządzenie do noszenia należy używać biblioteki komponentów Compose na Wear zamiast biblioteki komponentów Compose.
Dwie biblioteki „Material” powinny być traktowane jako wzajemnie wykluczające się i nie należy ich łączyć w tej samej aplikacji. Jeśli deweloperzy uwzględnią w swoich zależnościach bibliotekę Compose Material, oznacza to, że: a) w bibliotece Compose Material na Wear brakuje komponentów (prosimy o poinformowanie nas, czego brakuje) lub b) używają komponentu, którego nie zalecamy stosowania na urządzeniu do noszenia.