Wear Compose
Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja Beta | Wersja alfa |
---|---|---|---|---|
2 lipca 2025 r. | 1.4.1 | - | 1.5.0-beta05 | - |
Deklarowanie zależności
Aby dodać zależność od Wear, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle
aplikacji lub modułu:
Odlotowe
dependencies { implementation "androidx.wear.compose:compose-foundation:1.4.1" // For Wear Material Design UX guidelines and specifications implementation "androidx.wear.compose:compose-material:1.4.1" // For integration between Wear Compose and Androidx Navigation libraries implementation "androidx.wear.compose:compose-navigation:1.4.1" // For Wear preview annotations implementation("androidx.wear.compose:compose-ui-tooling:1.4.1") // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material. // androidx.wear.compose:compose-material is designed as a replacement // not an addition to androidx.compose.material:material. // If there are features from that you feel are missing from // androidx.wear.compose:compose-material please raise a bug to let us know. }
Kotlin
dependencies { implementation("androidx.wear.compose:compose-foundation:1.4.1") // For Wear Material Design UX guidelines and specifications implementation("androidx.wear.compose:compose-material:1.4.1") // For integration between Wear Compose and Androidx Navigation libraries implementation("androidx.wear.compose:compose-navigation:1.4.1") // For Wear preview annotations implementation("androidx.wear.compose:compose-ui-tooling:1.4.1") // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material. // androidx.wear.compose:compose-material is designed as a replacement // not an addition to androidx.compose.material:material. // If there are features from that you feel are missing from // androidx.wear.compose:compose-material please raise a bug to let us know. }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wear Compose w wersji 1.5
Wersja 1.5.0-beta05
2 lipca 2025 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-beta05
Wersja 1.5.0-beta05 zawiera te zmiany.
Poprawki błędów
- Zaktualizowaliśmy dokumentację, aby wyjaśnić użycie
Modifier.edgeSwipeToDismiss
(I78cb5). - Usunięto błąd, który powodował, że w listach ładowanych na żądanie mogło się wyświetlać wiele ujawnionych elementów z symbolem
SwipeToReveal
(I1d4f6). - Kształty kontenerów w
TransformingLazyColumn
są teraz skalowane, aby uniknąć przycinania treści. (I9221a) - Etykiety
TimePicker
iDatePicker
dla godziny/minuty/sekundy lub roku/miesiąca/dnia mają teraz semantykę nagłówka dla czytników ekranu (I77d8b). - Usunięto przerwę między pętlami w nieokreślonym stanie
CircularProgressIndicator
(Iaf0bb). - Rozwiązanie problemu z animacją w
TransformingLazyColumn
podczas usuwania elementów. (I73034) - Poprawiono obsługę elementów kotwiczących w
TransformingLazyColumn
po usunięciu elementów. (I841a8) PickerGroup
teraz animuje selektory w poziomie, gdy automatyczne wyśrodkowywanie jest włączone i zmienia się wybrany (wyśrodkowany) selektor. (Ic82c4)
Wersja 1.5.0-beta04
18 czerwca 2025 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-beta04
Wersja 1.5.0-beta04 zawiera te zmiany.
Poprawki błędów
- Usunięto błąd układu w
TransformingLazyColumn
, w którym treści mieszczące się na ekranie były teraz prawidłowo wyrównywane od góry ekranu (I80115). - Rozwiązaliśmy problem z
TransformingLazyColumn
, który powodował nieprawidłowe skalowanie ostatniego elementu podczas przewijania na sam dół listy zEdgeButton
. Podczas przywracania układu postęp przewijania jest teraz zgodny z metodą gradientu zstępującego. (Iea375) TransformingLazyColumn
odczytuje teraz wysokość elementu w malowaniu tła, co umożliwia niestandardowymTransformationSpecs
implementowanie przekształceń. (I022f0)SwipeToReveal
teraz prawidłowo wyśrodkowuje pionowo ujawnione działania. (I4419b)- Usunęliśmy błąd w
SwipeToReveal
, który uniemożliwiał prawidłowe działanie funkcji zamykania gestem przesuwania, jeśli na ekranie były używane zarówno widoki, jak i kompozycja. (I5dc0e) - Usunęliśmy błąd, który powodował, że podczas przewijania działania
SwipeToReveal
były rysowane z pionowym przesunięciem. (I29444) AlertDialog
,ConfirmationDialog
,OpenOnPhoneDialog
iSwipeToReveal
zaokrąglają teraz w górę dopełnienia i rozmiary obliczane jako procent rozmiaru ekranu. (I76367)ButtonDefaults.outlinedButtonBorder
teraz aktualizuje się po zmianach stanu włączony/wyłączony size(If2ddd)- Usunęliśmy błąd wysokości
EdgeButton
, który występował na złożonych ekranach z komponentami Pager iScreenScaffold
. (I946e3) - Naprawiliśmy warunek wyścigu, który mógł powodować zatrzymanie animacji obiektu zastępczego. (I53530)
- Poprawiliśmy wydajność funkcji
HorizontalPageIndicator
iVerticalPageIndicator
, rysując na płótnie. (Ifae1e) - Poprawiliśmy kształt przycisku EdgeButton, aby wygładzić przejścia między wielokropkiem a okręgami tworzącymi kontur. (I7721e)
- Naprawiliśmy błąd w
LevelIndicator
, który powodował zatrzymywanie animacji z powodu niepotrzebnych ponownych kompozycji. (I45d08)
Wersja 1.5.0-beta03
4 czerwca 2025 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-beta03
Wersja 1.5.0-beta03 zawiera te zmiany.
Zmiany w interfejsie API
OpenOnPhoneDialog
odczytuje teraz tylko tekst wiadomości w TalkBack i pomija semantykę ikony. ZaktualizowaliśmyOpenOnPhoneDialogDefaults
, aby usunąć z funkcjiicon()
parametryiconContentDescription
icontentDescription
.ConfirmationDialogDefaults
ma teraz parametry modyfikatora w kompozycjachSuccessIcon
iFailureIcon
. (Id2ae2)
Poprawki błędów
- Zmieniliśmy kolejność stosowania efektu parametrów
SurfaceTransformation
. Wcześniej przekształcenia stosowane do komponentów Wear Material3 były wykonywane w następującej kolejności: malowanie tła, przekształcenie kontenera, przekształcenie treści. Teraz pierwsze 2 elementy są odwrócone, a między nimi stosujemy przekazany modyfikator, więc ma on wpływ na przekształcenia kontenera. Rozwiązuje to problemy, takie jak używanie efektu migotania elementu zastępczego z elementami w TLC przy użyciu parametru przekształcenia. (I786cf) RevealState.Saver
został dodany, aby przywracać stanSwipeToReveal
, gdy aktywność lub proces są odtwarzane. FunkcjarememberRevealState
domyślnie korzysta teraz z tego narzędzia. (Ie0ecb)SwipeToReveal
przyciski działań podstawowych i dodatkowych powinny mieć domyślnie wartośćButtonDefault.Height
(naprawiono błąd, w którym przyciski te wypełniały maksymalną wysokość w przypadku wyższych przycisków); (Ibfba1)- Zmieniliśmy
SwipeToReveal
, aby resetować ostatni komponent, z którym użytkownik wszedł w interakcję, gdy wykona gest przesunięcia w prawo. (Ia8450) SwipeToReveal
zmieniono tak, aby po zakończeniu przesuwania w położeniu między punktami zakotwiczenia stanu odkrywania i odkrytego, bliżej punktu zakotwiczenia stanu odkrywania, przyjmował stanRevealing
. (If4458)- Treści
ButtonGroup
są teraz prawidłowo odwrócone w układzie RTL (Ib378d). AnimatedText
obsługuje teraz kierunek tekstu od prawej do lewej (I4533c).TransformingLazyColumn
– teraz prawidłowo zmienia rozmiar elementów po usunięciu elementu na dole (Idacab)TransformingLazyColumn
wykonuje teraz tylko 1 przejście pomiarowe, co zwiększa wydajność przez skrócenie czasu klatki. (I501a1)
Wersja 1.5.0-beta02
20 maja 2025 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-beta02
Wersja 1.5.0-beta02 zawiera te zmiany.
Poprawki błędów
- Zaktualizowaliśmy profile podstawowe bibliotek foundation, material i material3. (I53f06)
- Naprawiliśmy błąd w
TransformingLazyColumn
, który powodował zmianę rozmiaru elementów po usunięciu elementu znajdującego się na dole. (Idacab) - Usunęliśmy błąd związany z
TransformingLazyColumn
, który powodował, że lista zatrzymywała się u góry lub u dołu. (I49d00) OpenOnPhoneDialog
w sekcji TalkBack powinien odczytywać zakrzywiony tekst, a nie opis zawartości ikony. (I4efe8)- Naprawiliśmy błąd w
SwipeToReveal
, który powodował zgłaszanie nieprawidłowego elementu zakotwiczenia wRevealState.currentValue
, gdy wartośćhasPartiallyRevealedState
była ustawiona na false. (I9c7cf) - Przyciski cofania
SwipeToReveal
są teraz domyślnieButtonDefaults.Height
. (I1f6c8) BasicSwipeToDismissBox
poprawiliśmy wydajność, eliminując użycie elementu Canvas do rysowania półprzezroczystych nakładek. (I68f2c)- Rozwiązanie problemu z dostępnością w suwaku, który powodował, że po aktualizacji ogłaszany odsetek nie zgadzał się z wartością (I91146).
- Naprawiono błąd w implementacji
placeholderShimmer
. (Iee39b TransformingLazyColumn
została zwiększona dzięki optymalizacji obliczeńScrollProgress
o 30%. (I4c4cb)
Wersja 1.5.0-beta01
7 maja 2025 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-beta01
Wersja 1.5.0-beta01 zawiera te zmiany.
Wersja 1.5.0-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany (z wyjątkiem funkcji oznaczonych jako eksperymentalne).
Wear Compose w wersji 1.5.0-beta01 zawiera bibliotekę Wear Compose Material3, która obsługuje nowy system projektowania interfejsu o nazwie Material 3 Expressive. Zalecamy przejście z Material na Material 3, aby wykorzystać nowy wygląd aplikacji i skorzystać z nowych komponentów:
MaterialTheme
– zaktualizowane i rozszerzone schematy kolorów, typografia i kształty, które nadadzą Twoim projektom głębi i różnorodności.- Dynamiczne motywy kolorystyczne, które automatycznie generują schemat kolorów aplikacji pasujący do kolorów tarczy zegarka.
- Nowe komponenty domyślnie automatycznie dostosowują się do większych rozmiarów ekranu.
- Przekształcanie kształtu – okrągłe komponenty przycisków, takie jak
IconButton
,TextButton
,IconToggleButton
iTextToggleButton
, obsługują warianty, które animują się po naciśnięciu lub zaznaczeniu. EdgeButton
– nowy przycisk przylegający do krawędzi o specjalnym kształcie, przeznaczony do umieszczenia u dołu ekranu.- Scaffolds – wprowadzenie
AppScaffold
iScreenScaffold
do określania struktury ekranu i koordynowania animacjiScrollIndicator
iTimeText
. - Przyciski – obsługiwane są liczne przyciski w kształcie stadionu z elastycznymi kontenerami z jednym miejscem i wariantami z wieloma miejscami na przyciski z ikonami i etykietami. Symbole
CheckboxButton
iSwitchButton
są używane, gdy potrzebne są przyciski przełączania, aRadioButton
to dostępny przycisk wyboru (dostępne są też „dzielone” wersje przycisków przełączania i wyboru). ButtonGroup
– implementuje ekspresyjną grupę przycisków w rzędzie, które zmieniają kształt po dotknięciu.AlertDialog
obsługują przyciski OK/Anuluj lubEdgeButton
.ConfirmationDialog
może wyświetlać komunikat z limitem czasu, obsługując specjalne animacje w przypadku powodzenia, niepowodzenia i otwierania na telefonie.- Selektory – obsługiwane są warianty
TimePicker
iDatePicker
, a także komponenty selektora iPickerGroup
do tworzenia własnych ekranów selektora. ProgressIndicators
– obsługiwane są okrągłe i liniowe wskaźniki postępu (CircularProgressIndicator
ma warianty podzielone na segmenty i nieokreślone).- Karty – dostępnych jest kilka wariantów kart, w tym
TitleCard
, który oferuje konkretne układy kart z tytułem, czasem, podtytułem lub miejscami na treści.TitleCard
może też mieć obraz tła, który wzmacnia znaczenie informacji na karcie. - Pagers – komponenty
HorizontalPagerScaffold
,VerticalPagerScaffold
iAnimatedPage
koordynują animacjeHorizontalPageIndicator
iVerticalPagerIndicator
.HorizontalPager
iVerticalPager
są dostępne w bibliotece Wear Compose Foundation. - Elementy zastępcze – rysują szkieletowy kształt nad komponentem w sytuacjach, gdy nie są dostępne żadne treści tymczasowe.
- Suwaki i krokomierze – zarówno suwaki, jak i krokomierze umożliwiają użytkownikom wybór z zakresu wartości. Suwaki są bardziej kompaktowe i można je podzielić na segmenty, a komponent Stepper zajmuje cały ekran i jest zwykle połączony z
StepperLevelIndicator
. SwipeToReveal
– służy do dodawania dodatkowych działań do komponentu, gdy zostanie on przesunięty od prawej do lewej.
Dodatkowo Wear Compose Foundation w wersji 1.5.0-beta01 zawiera te nowe komponenty:
TransformingLazyColumn
– leniwa lista przewijana w pionie, która obsługuje animacje skalowania i przekształcania;- Hierarchical Focus Groups (hierarchiczne grupy fokusowe) – służą do dodawania adnotacji do komponentów w aplikacji, aby śledzić aktywną część kompozycji i koordynować fokus.
- Pagers – komponenty
HorizontalPager
iVerticalPager
oparte na komponentach Compose Foundation z ulepszeniami dostosowanymi do Wear, które zwiększają wydajność i zgodność z wytycznymi Wear OS.
Zmiany w interfejsie API
- Zaktualizowano interfejs Hierarchical Focus API – zmieniono nazwę
Modifier.hierarchicalFocus
naModifier.hierarchicalFocusGroup
i usunięto parametr wywołania zwrotnego; usunięto przeciążenieModifier.hierarchicalFocusRequester
z parametremFocusRequester
; utworzono noweCompositionLocal
iLocalScreenIsActive
, aby komponenty mogły informować o tym, który ekran jest aktywny, i sprawdzać to. (I5ff7c). - Wycofano
SwipeToReveal
z Wear Compose Foundation na rzecz interfejsów APISwipeToReveal
w Wear Compose Material i Wear Compose Material3. Aby nadal korzystać z interfejsów API, zastąp importy Wear FoundationSwipeToReveal
importami Wear Compose Material lub Wear Compose Material3. (Ia147d). - Zależności Wear Compose Material3
SwipeToReveal
od Foundation zostały przeniesione do pakietu material3, np.RevealValue
,RevealDirection
,RevealActionType
,RevealState
,rememberRevealState
. Deweloperzy powinni zmienić importowanie tych klas i funkcji zandroidx.wear.compose.foundation
naandroidx.wear.compose.material3
. (I640e6). - Zaktualizowaliśmy interfejs API Wear Compose Material3
SwipeToReveal
w ten sposób: dodaliśmy parametryprimaryAction
,onFullSwipe
,secondaryAction
,undoPrimaryAction
,undoSecondaryAction
ihasPartiallyRevealedState
do funkcji kompozycyjnejSwipeToReveal
; usunęliśmy możliwość dostosowywania parametrówpositionalThreshold
ianimationSpec
zRevealState
; usunęliśmy parametrylastActionType
,revealThreshold
i szerokość zRevealState
; zmieniliśmy konstruktorRevealState
tak, aby akceptowałRevealDirection
zamiast kotwic; usunęliśmy funkcjecreateRevealAnchors
, kotwice ibidirectionalAnchors
; funkcjeSwipeToRevealScope
primaryAction
,secondaryAction
,undoPrimaryAction
iundoSecondaryAction
zostały zmienione naPrimaryActionButton
,SecondaryActionButton
,UndoActionButton
i przekształcone w funkcje kompozycyjne; oznaczyliśmyRevealActionType
jako wewnętrzny. (I885d0). - Dalsze aktualizacje interfejsu API: zmieniono nazwę
onFullSwipe
naonSwipePrimaryAction
; zmieniono nazwęSwipeToRevealNonAnchoredSample
, aby wskazywała użycie parametruhasPartiallyRevealedState
; usuniętoactionButtonHeight
, ponieważ domyślna wysokość przycisku jest domyślną wysokością, a większą wysokość można ustawić za pomocą modyfikatora; usuniętoSmallActionButtonHeight
zSwipeToRevealDefaults
; ustawiono parametr wartości w konstruktorachRevealValue
iRevealDirection
jako prywatny.SwipeToReveal
(I465ce).
Poprawki błędów
- Poprawiono obsługę
ScreenScaffold
EdgeButton
, tak aby po usunięciu elementuTransformingLazyColumn
EdgeButton
animował się na swoje miejsce. (I6d366). - Zaktualizowaliśmy zależności Wear Compose w bibliotekach Compose do wersji 1.8.0. (I2ef3f).
- Zaktualizowano ruch nieokreślonego
CircularProgressIndicator
, aby nie cofał się już tymczasowo. (Ieddb1). - Rozwiązaliśmy
SwipeDismissableNavHost
błąd – po przesunięciu palcem do tyłu fokus nie przełączał się prawidłowo, co powodowało niepowodzenie wprowadzania danych za pomocą pokrętła (dotyczyło to interfejsu API w wersji 36 lub nowszej, który korzysta z przewidywanego powrotu). (Ieddb1). - Zmieniona dokumentacja interfejsu Hierarchical Focus API (Idf2ff).
- Zaktualizowaliśmy dokumentację dotyczącą komponentów Button i Card, aby wyjaśnić, jak elementy
containerPainter
idisabledContainerPainter
zastępują elementycontainerColor
idisabledContainerColor
(I4a453). - Cofnięto zmianę wprowadzoną w
TimeText
w poprzedniej wersji, która przenosiłaBroadcastReceiver
do wątku roboczego, ponieważ powodowała problemy w aplikacjach, które zarządzają własnymi wątkami podczas nawigacji. (I34d02). - Zaktualizowano przykłady selektora, aby usunąć niepotrzebne wywołania zapamiętywania i zamiast tego używać
rememberUpdatedState
w selektorze do zapamiętywania najnowszej funkcji lambdacontentDescription
. (Icb5b1). - Zaktualizowano style tekstu w
TimePicker
iDatePicker
, aby zmiany czcionki nie powodowały już obcinania tekstu. (I26194). ListHeader
iListSubHeader
mają teraz domyślne wyrównanie tekstu do środka i do początku. (I78339).- Zaktualizowaliśmy przykłady i wersje demonstracyjne komponentu Foundation i Material Swipe to Reveal, aby ogłaszać niestandardowe działania związane z ułatwieniami dostępu (niestandardowe działania muszą być dodane jako semantyka treści, a nie w samym komponencie
SwipeToReveal
). (Ie92a3). - Zaktualizowano domyślny
MaxLines
ustawiony na treściEdgeButton
zgodnie z rozmiarem – teraz wynosi on 1 w przypadku bardzo małych, 2 w przypadku małych i średnich oraz 3 w przypadku dużych. (Ie35f6). - Uproszczono
LocalReduceMotion
, aby obserwator był rejestrowany tylko raz, co zwiększa wydajność. (Ib1979). - Zminimalizowaliśmy liczbę ponownych rysowań w
ScrollIndicator
, aby zwiększyć wydajność. (Ia7a67). - Rozwiązaliśmy błąd w
TransformingLazyColumn
, który powodował, że najwyższy widoczny element na liście nie był prawidłowo skalowany, gdy przycisk EdgeButton osiągał pełną wysokość. (I30580).
Wersja 1.5.0-alpha14
23 kwietnia 2025 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha14
Wersja 1.5.0-alpha14 zawiera te zmiany.
Zmiany w interfejsie API
- Wszystkie zależności Material
SwipeToReveal
od 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
HierarchicalFocusCoordinator
, aby używać modyfikatorów zamiast funkcji kompozycyjnych. - Uwagi dotyczące migracji:
HierarchicalFocusCoordinator(function, content)
można zastąpić, dodającModifier.hierarchicalFocus(function())
docontent
lub do kompozycji obejmującej.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żna zastąpićhierarchicalFocusRequester()
val focusRequester = rememberActiveFocusRequester()
można zastąpić przezremember { FocusRequester() }
i dodaćModifier.hierarchicalFocusRequester(focusRequester)
. (Ie319a)
Poprawki błędów
- Zwiększyliśmy próg szybkości, który gesty przesuwania muszą przekroczyć, aby wywołać zmianę stanu w przypadku tych komponentów:
SwipeToReveal
,BasicSwipeToDismissBox
iSwipeDismissableNavHost
(tylko w przypadku interfejsu API 35 i starszych wersjiSwipeDismissableNavHost
). (If47bf) - Rozwiązaliśmy problem z animacją, który występował, gdy do elementu
TransformingLazyColumn
dodawano nowe elementy. (I589b2)
Wersja 1.5.0-alpha13
9 kwietnia 2025 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha13
Wersja 1.5.0-alpha13 zawiera te zmiany.
Zmiany w interfejsie API
- Projekty wydane w Kotlinie 2.0 wymagają do użycia KGP w wersji 2.0.0 lub nowszej (Idb6b5).
- Do usługi
PagerState
dodano usługętargetPage
(I4de8b)
Poprawki błędów
- Zapobiega niepotrzebnemu ponownemu komponowaniu podczas przewidywanego powrotu. (Iecd6d)
- Poprawiono właściwość
ScrollInfoProvider
isScrollable
, aby zwracała bieżącą wartość. (Icbfb8)
Wersja 1.5.0-alpha12
26 marca 2025 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha12
Wersja 1.5.0-alpha12 zawiera te zmiany.
Zmiany w interfejsie API
- Ulepsz domyślną implementację
SwipeToReveal
gestureInclusion
, aby ignorować gesty tylko wtedy, gdy stan komponentu to Covered. (I7e3d6) - W przypadku
SwipeToReveal
zmieniliśmybidirectionalGestureInclusion
na wartość zamiast funkcji i dodaliśmy@FloatRange
do parametruedgeZoneFraction
wgestureInclusion
. (Ica7c3)
Poprawki błędów
- Zmień
SwipeToReveal
bidirectionalGestureInclusion
, aby zwracać obiekt zamiast klasy. (I29597) - Wyłączono korzystanie z haptyki podczas przeprowadzania testów w
RoboElectric
. (I58bd1) - Zaktualizuj
SwipeToReveal
dopełnienia między treścią a przyciskami działania, a także dopełnienie między ikoną a tekstem przycisków działania. (Ic46cb)
Wersja 1.5.0-alpha11
12 marca 2025 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha11
Wersja 1.5.0-alpha11 zawiera te zmiany.
Zmiany w interfejsie API
- Zaktualizowano
PagerState
, usuwając klasę bazową Compose FoundationPagerState
i dodając właściwościcurrentPage
,currentPageOffsetFraction
ipageCount
. Zaktualizowaliśmy interfejsGestureInclusion
, zmieniając nazwę metody naignoreGestureStart
. (I4ae07) - Dodaj
requireOffset
doSwipeToDismissBoxState
jako zalecany sposób uzyskiwania przesunięciaSwipeToDismissBoxState
. (I21042) - Dodano
CurvedModifier.semantics
, początkowo obsługując opis treści i indeks przechodzenia (I0b093) - Dodaliśmy
CurvedModifier.clearAndSetSemantics
, aby umożliwić wyłączenie zakrzywionej semantyki.CurvedText
nadal domyślnie ustawia opis treści na tekst, aletimeTextCurvedText
itimeTextSeparator
nie odczytują teraz swoich treści. (I4b568) - Domyślna obsługa gestów przesuwania w
HorizontalPager
została zmieniona naPagerDefaults.gestureInclusion
. Domyślnie ignorowane są teraz tylko gesty przesuwania, które zaczynają się na lewej krawędzi pierwszej strony, i tylko wtedy, gdy Talkback jest wyłączony. W innych przypadkach domyślnie gesty przesuwania nie są ignorowane przez pager, więc nie są dostępne dla modułów obsługi przesuwania w celu zamknięcia. (Iee486) - Dodano przewijanie obrotowe dla interfejsu
rotaryScrollable
. Do zachowaniarotaryScrollable
dodano przewijanie poza zakres i przewijanie zagnieżdżone. Ta zmiana powinna wyrównać funkcje przewijania poza zakres i przewijania zagnieżdżonego w przypadku przewijania dotykowego i obrotowego. (I71926) - Dodaliśmy obsługę strefy przesuwania od krawędzi do elementu
SwipeToReveal
. Domyślne działanie biblioteki FoundationSwipeToReveal
polega teraz na blokowaniu przesuwania, gdy gest zaczyna się od krawędzi. Domyślne działanieSwipeToReveal
Material3 polega teraz na blokowaniu przesuwania, gdy gest zaczyna się od krawędzi, a wartośćSwipeDirection
jest ustawiona na jeden kierunek. (I32ef0) - Biblioteka TLC domyślnie używa teraz pustego parametru contentPadding zamiast umieszczać pierwszy i ostatni element na środku. (I77ab7)
Poprawki błędów
- Biblioteki Wear Compose zostały zaktualizowane do kompilatora Kotlin 2.0. (I2de79)
- Poprawiono zakrzywioną próbkę
LetterSpacing
na podkładzie. (Iebf7c)
Wersja 1.5.0-alpha10
26 lutego 2025 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha10
Wersja 1.5.0-alpha10 zawiera te zmiany.
Zmiany w interfejsie API
- Ustaw
SwipeToRevealDefaults
jako publiczną. (I0c34c) - Zastąpiliśmy parametr
swipeToDismissEdgeZoneFraction
w plikuHorizontalPager
. Zamiast tego wprowadziliśmy nowy parametrgestureInclusion
, który można wykorzystać do uzyskania wymaganego zachowania związanego z przesuwaniem w celu zamknięcia.gestureInclusion
przyjmuje instancjęGestureInclusion
, która decyduje, czy kolejne zdarzenie przewijania powinno zostać wykonane. Zezwolenie na gest oznacza, że komponent Pager go wykorzystuje. W przeciwnym razie zostanie on obsłużony w innym miejscu, np. przez moduł obsługi przesuwania w celu zamknięcia. Nowym domyślnym działaniem jest niedozwalanie gestów na lewej krawędzi pierwszej strony w komponencie Pager, a tym samym umożliwienie odrzucenia przez przesunięcie w tym regionie. Wszystkie inne strony będą zezwalać komponentowi Pager na obsługę wszystkich gestów, co oznacza, że nie będzie można na nich wywołać gestu przesuwania w celu zamknięcia. Aby uzyskać efekt przesunięcia w celu zamknięcia na wszystkich stronach, wystarczy podać niestandardową instancjęGestureInclusion
(patrzPagerDefaults.disableLeftEdgeOnFirstPage
), która ignoruje bieżącą stronę. Kolejna wprowadzona tu zmiana powodująca niezgodność wsteczną polega na tym, że komponent Pager nie jest już domyślnie wyświetlany na pełnym ekranie. Aby uzyskać ten efekt, dodajModifier.fillMaxSize()
. (I9d3aa) - W interfejsie API do przesuwania w celu wyświetlenia zmieniliśmy nazwę
createAnchors
nacreateRevealAnchors
(If5999). - Usunęliśmy
RevealScope
z interfejsu API do wyświetlania treści po przesunięciu. (Ie4ad5) - Usunęliśmy stany Revealing i Revealed z interfejsu API
RevealValue
w funkcji przesuwania w celu odkrycia. (I8dbc5) - W interfejsie API do przesuwania w celu wyświetlenia zmieniliśmy nazwę
SwipeDirection
naRevealDirection
. (I7472f) - Zmieniliśmy sygnaturę parametru
positionalThreshold
funkcjirememberRevealState
wSwipeToReveal
. (I29c0a) - Dodaliśmy nowy parametr
overscrollEffect
doScalingLazyColumn
,TransformingLazyColumn
iScreenScaffold
. (I0cee8) - W przypadku używania
PagerDefaults#snapFlingBehaviour
parametrpagerSnapDistance
został zastąpiony parametrem IntmaxFlingPages
, którego można użyć do określenia maksymalnej liczby stron, które mają być przewijane przez komponent Pager. (I8cfc0) - Komponent Wear Pager ma teraz własny
PagerScope
zamiast korzystać zPagerScope
Compose Foundation. (I9195b) - Dodaliśmy obsługę funkcji
lineHeight
w przypadku zakrzywionego tekstu (I1c936). - Dodaliśmy
initialAnchorItemIndex
iinitialAnchorItemOffset
doTransformingLazyColumnState
orazrememberTransformingLazyColumnState
, aby początkową pozycję przewijania można było określić wTransformationLazyColumn
. (I0a0d5) - Zastąpienie wartości
runWithTimingDisabled
wartościąrunWithMeasurementDisabled
, która lepiej opisuje zachowanie – wszystkie dane są wstrzymane. Dodatkowo udostępnij superklasęMicrobenchmarkScope
, ponieważ ponowne zadeklarowanie funkcjirunWithMeasurementDisabled
w celu otwarcia dostępu nie jest możliwe, ponieważ jest ona wstawiana w kodzie. (I9e23b, b/389149423, b/149979716) - Dodaliśmy do interfejsu API parametr
TransformingLazyColumnItemScrollProgress.Unspecified
, aby uniknąć problemu z wyświetlaniem w ramce na urządzeniachTransformingLazyColumnItemScrollProgress
. (I0835d)
Poprawki błędów
- Ulepsz dokumentację KDoc dla
CurvedTextStyle
(Id45e3) - Zmieniliśmy dostęp do
SwipeableV2
(części implementacjiSwipeToReveal
) z publicznego na wewnętrzny, ale ograniczony do grupy bibliotek. (Idbb94) - Dodaliśmy testy do projektu
HierarchicalFocusCoordinator
(I1ce54, b/395548918) - Wprowadziliśmy ulepszenia
SwipeToReveal
w próbkach podstawowych komponentów Wear Compose. (I5f307) - Naprawianie danych semantycznych osi przewijania w przypadku elementu
verticalScrollAxisRange
wTransformingLazyColumn
na potrzeby ułatwień dostępu (I68123) - Zwiększenie wydajności wibracji obrotowych na zegarkach z Wear 4+ przez usunięcie niepotrzebnych wątków w tle (I39cfe)
- Zmień
SwipeDismissableNavHost
, aby używaćPredictiveBackNavHost
tylko w przypadku interfejsu API w wersji 36 lub nowszej. (I59bed) - Dodaliśmy zabezpieczenie przed awarią podczas uzyskiwania dostępu do ustawienia redukcji ruchu. (I01e2c)
- Wdrożyliśmy pobieranie z wyprzedzeniem w przypadku
TransformingLazyColumn
, aby zmniejszyć zacinanie się (Icca88).
Wersja 1.5.0-alpha09
29 stycznia 2025 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha09
Wersja 1.5.0-alpha09 zawiera te zmiany.
Zmiany w interfejsie API
- Na
CurvedTextStyle
odstępy między literami zostały podzielone na odstępy między literami w kierunku zgodnym z ruchem wskazówek zegara i w kierunku przeciwnym do ruchu wskazówek zegara. Jest to wymagane, ponieważ litery pisane zgodnie z ruchem wskazówek zegara rozchodzą się od linii bazowej, a litery pisane przeciwnie do ruchu wskazówek zegara zbiegają się (dlatego potrzebny jest większy odstęp między literami) (I4b848). - Funkcja
CompositionLocal
LocalReduceMotion
została uproszczona i zwraca wartość logiczną zamiast obiektuReduceMotion
. InterfejsReduceMotion
został wycofany. Poprzednie wywołania, np.LocalReduceMotion.current.enabled()
, można zastąpić wywołaniemLocalReduceMotion.current
(I4937f). - W języku
PagerDefaults
elementsnapAnimationSpec
został zmieniony naSnapAnimationSpec
. (I20c9a)
Wersja 1.5.0-alpha08
15 stycznia 2025 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha08
Wersja 1.5.0-alpha08 zawiera te zmiany.
Zmiany w interfejsie API
- Zaktualizowaliśmy wszystkie biblioteki Wear Compose do trybu „explicit API”. (Iebf9f)
- Parametr animacji przyciągania pagera został dodany do
PagerDefaults
. (Ifff64) - Dodaliśmy parametr przesunięcia do
SwipeToDismissBoxState
. (I586bd)
Poprawki błędów
- Reakcje haptyczne platformy obrotowej są teraz wywoływane w przypadku wersji Wear OS po wersji V (Idb03e).
Wersja 1.5.0-alpha07
11 grudnia 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha07
Wersja 1.5.0-alpha07 zawiera te zmiany.
Zmiany w interfejsie API
TransformingLazyColumnState
umożliwia teraz obserwowanie bieżącego postępu przewijania na podstawie indeksów elementów zakotwiczenia. (I72b01)- Dodaliśmy animacje do
TransformingLazyColumn
podczas dodawania, usuwania i przenoszenia elementów, jeśli mają one nowyModifier.animateItem
. (Iecb9c) TransformingLazyColumn
udostępnia teraz wartości dlabeforeContentPadding
iafterContentPadding
. (Iccd5f)- Kompozycja
TransformingLazyColumn
udostępnia teraz lokalny elementLocalTransformingLazyColumnItemScope
, którego komponenty (np.Card
iButton
w Material3) mogą używać do automatycznego przekształcania się po umieszczeniu wTransformingLazyColumn
. Rozmówcy mogą wyłączyć automatyczne przekształcanie za pomocą nowego elementuTransformExclusion
. (I1652f)
Poprawki błędów
- Zaktualizowaliśmy minimalną i maksymalną prędkość przesunięcia dla obrotu na urządzeniach z Androidem U i nowszym. (I33559)
- Naprawiliśmy błąd, który występował, gdy element w
TransformingLazyColumn
nie zawierał żadnych komponentów (Idb99d). - Dodaliśmy
ScrollFeedbackProvider
obsługę wibracji obrotowych na Androidzie Vanilla ice cream. (Ibc553) - Zwiększyliśmy tolerancję na dotyk podczas korzystania z
SwipeToReveal
, aby zmniejszyć prawdopodobieństwo przypadkowego wywołania przesunięcia podczas przewijania w pionie. (Ic0672) - Zaktualizowaliśmy
SwipeDismissableNavHost
, aby w przypadku interfejsu API na poziomie 35 i wyższym korzystać zPredictiveBackHandler
, gdy jest on dostępny. W takim przypadku zostaną zastosowane nowe animacje. (I08c11)
Wersja 1.5.0-alpha06
13 listopada 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha06
Wersja 1.5.0-alpha06 zawiera te zmiany.
Zmiany w interfejsie API
- Uprościliśmy
ScrollInfoProvider
dlaPagerState
, usuwając parametrorientation
, który nie jest już potrzebny. Nowe zachowanie polega na tym, że elementTimeText
pozostaje na swoim miejscu zarówno w przypadku przewijania w pionie, jak i w poziomie. (I71767) TransformingLazyColumn
została wprowadzona we wcześniejszych wersjach. Usuwamy teraz aliasyLazyColumn
Wear (które przekierowywały naTransformingLazyColumn
) na rzecz nowej nazwyTransformingLazyColumn
. Usunęliśmy też właściwośćheight
elementuTransformingLazyColumnVisibleItemInfo
. Zamiast niej używaj właściwościmeasuredHeight
. (I0ea1e)- Zmieniliśmy
PagerDefaults.snapFlingBehavior
snapAnimationSpec
zTween
naSpring
(I10d02, b/349781047, b/303807950). - Wersja
LocalReduceMotion
CompositionLocal
została oznaczona jako stabilna (Ia6f32).
Poprawki błędów
- Zaktualizowaliśmy
Modifier.rotaryScrollable
, aby używaćfocusTargetWithSemantics
, co zapewnia lepszą obsługę semantyki w przypadku sterowania obrotowego. (Ief0a0) - Zaktualizowaliśmy minimalną zależność interfejsu API do wersji 1.7.4 w przypadku bibliotek Compose. (I88b46)
- Wyłączyliśmy zmianę szerokości w
TransformingLazyColumn
, aby obejść błąd przycinania. (I3dfb8) - Naprawiliśmy błąd, który powodował znikanie elementów po przewinięciu poza zakres za pomocą
TransformingLazyColumn
(Id7668). - Dodaliśmy
LazyLayoutSemantics
doTransformingLazyColumn
. (Ia8f56)
Wersja 1.5.0-alpha05
30 października 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha05
Wersja 1.5.0-alpha05 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaliśmy obsługę
animateScrollTo
naTransformingLazyColumnState
, dzięki czemu przewijanie do elementu może być animowane. (I4097d) - Dodaliśmy
requestScrollTo
naTransformingLazyColumnState
, aby odłożyć przewijanie do następnego pomiaru. (I20a5e) - Dodaliśmy obsługę właściwości
contentPadding
w przypadku elementuTransformingLazyColumn
. (I3a69c)
Poprawki błędów
- Usunęliśmy błąd renderowania znaku
TransformingLazyColumn
, gdy wysokość treści jest mniejsza niż wysokość ekranu. (I6c3e1) - Wartość
ScrollInfoProvder
dlaTransformingLazyColumn
jest teraz prawidłowo śledzona w przypadku pierwszego elementu. (I1e4a3) TransformingLazyColumnState
zapisuje teraz swój stan (anchorItemIndex
ianchorItemScrollOffset
). (I3d265)
Wersja 1.5.0-alpha04
16 października 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha04
Wersja 1.5.0-alpha04 zawiera te zmiany.
Zmiany w interfejsie API
- Zmieniliśmy nazwę Wear Compose Foundation
LazyColumn
naTransformingLazyColumn
, aby wyraźniej odróżnić ją od Compose FoundationLazyColumn
. (I0608b) - Dodano obsługę obrotową w przypadku pagerów poziomych i pionowych, co umożliwia użytkownikom poruszanie się po nich za pomocą urządzeń wejściowych z funkcją obrotową. (I9770d)
- Zaktualizowaliśmy nowy
PagerDefaults
, aby wyjaśnić, że domyślnie będzie on przyciągać do strony. (Iff7d0) TransformingLazyColumnItemScrollProgress
jest teraz klasą wartości, co powinno zwiększyć skuteczność. (Ic399e)TransformingLazyColumn
obsługuje teraz pokrętło od razu po wyjęciu z pudełka. (I05206)TransformingLazyColumnState
obsługuje terazscrollToItem
. (I507b3)- Usunięto
@ExperimentalWearFoundationApi
z interfejsuSwipeToReveal
API (I34a66)
Wersja 1.5.0-alpha03
2 października 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha03
Wersja 1.5.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaliśmy obsługę dwukierunkowego przesuwania w
SwipeToReveal
w rzadkich przypadkach, gdy bieżący ekran nie obsługuje przesuwania w celu zamknięcia. . Domyślnie nadal jest to przesuwanie w celu wyświetlenia tylko w przypadku przesuwania od prawej do lewej. Zdecydowanie zalecamy zachowanie domyślnego działania, aby uniknąć konfliktu z przesuwaniem w celu zamknięcia. (Ifac04) - Zaktualizowaliśmy
LazyColumnState
, aby zastępowaćcanScrollForward
icanScrollBackward
– teraz przewijanie zatrzymuje się, 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 fokusu i interakcja z systemowym gestem przesuwania w celu zamknięcia, które mogą występować na urządzeniach z Wear. (I2902b) - Dodaliśmy obsługę
LazyColumn
, aby udostępniaćkey
icontentType
klienta za pomocąlayoutItems
. (I1bd9c)
Poprawki błędów
- Zaktualizowaliśmy animacje zakrzywionego tekstu, aby były płynniejsze dzięki użyciu flag malowania. (I73a15)
- Zaktualizowaliśmy dokumentację okna Material Dialog, aby uwzględnić informację, że po ustawieniu flagi show na wartość false funkcja
onDismissRequest
nie jest wywoływana. (Ifd8d6) - Naprawiliśmy błąd animacji winiety w oknie dialogowym Material (I126bf).
Wersja 1.5.0-alpha02
18 września 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha02
Wersja 1.5.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaliśmy obsługę Wear Compose
LazyColumn
w naszymScreenScaffold
(i wdrożyliśmyScrollInfoProvider
w przypadkuLazyColumnState
). (Ib8d29) - Dodaliśmy
viewportSize
doLazyColumnLayoutInfo
. (I4187f)
Poprawki błędów
- Naprawiliśmy błąd, dzięki czemu przewijanie obrotowe jest teraz wyłączone w
ScalingLazyColumn
, gdy flagauserScrollEnabled
ma wartośćfalse
. (I490ab, b/360295825) - Naprawiliśmy błąd, który powodował nieoczekiwany odstęp pionowy w przypadku zakrzywionego tekstu. Wysokość zakrzywionego tekstu jest teraz bardziej zbliżona do rzeczywistej przestrzeni zajmowanej przez tekst. Pamiętaj, że może to spowodować niepowodzenie testów zrzutów ekranu, które obejmują zakrzywiony tekst (Iaa6ef).
- Cofnęliśmy poprawkę błędu w
Dialog
, w którym wywołanie zwrotneonDismissRequest
było wywoływane, gdy wartośćshowDialog
była ustawiona na false, ponieważ w niektórych przypadkach powodowało to wielokrotne wywoływanieonDismissRequest
. (I64656)
Wersja 1.5.0-alpha01
4 września 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.5.0-alpha01
Wersja 1.5.0-alpha01 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaliśmy nowy element
LazyColumn
do biblioteki Wear Compose Foundation wraz z powiązanymi interfejsami APILazyColumnState
iLazyColumnScope
. Stanowi to podstawę do tworzenia dostosowywanych efektów skalowania i przekształcania za pomocą Wear Compose. (Ib3b22) - Dodaliśmy indeksowaną wersję
itemsIndexed
doLazyColumnScope
w ramach nowego interfejsuLazyColumn
API. (Ib4a57) - Dodaliśmy
LazyColumn
modyfikatory, aby obsługiwać skalowanie i przekształcanie. (Ie229a) HierarchicalFocusCoordinator
została promowana do wersji stabilnej. (I31035)- Dodaliśmy obsługę odstępów między literami w tekście zakrzywionym. (I3c740)
- Dodaliśmy parametr
rotationLocked
doCurvedLayout.curvedComposable
, aby zapobiec obracaniu komponentów. (I66898) - Usunięto tymczasowy interfejs API
LocalUseFallbackRippleImplementation
z materiałów wear material i wear material3 (I62282) - Usunięto
WearDevices.SQUARE
z wielokrotnego podglądu@WearPreviewDevices
(I11c02)
Poprawki błędów
SwipeToReveal
umieszcza teraz ujawnione elementy w widocznej części ekranu. Jest to przydatne, gdySwipeToReveal
jest używany na liście, dzięki czemu elementy są zawsze interaktywne i nigdy nie wychodzą poza ekran. (I38929)SwipeToReveal
resetuje terazlastActionType
do wartości Brak po zakończeniuanimatedTo
. (I59b03)- Ulepszyliśmy dokumentację nowego parametru
rotationLocked
w zdarzeniucurvedComposable
. (Ifbd57) - Usunęliśmy awarię, która występowała podczas przekazywania wartości
NaN
do funkcjiperformFling
wScalingLazyColumnSnapFlingBehavior
. (Ic13da) - Naprawiono błąd modyfikatora rozmiaru układu zakrzywionego (I0fedf)
- Dodaliśmy obsługę odstępów między literami określonych w jednostkach „sp”. (I9f6e3)
- Naprawiliśmy błąd w oknie Material2, który powodował, że wywołanie zwrotne
onDismissRequest
nie było wywoływane, gdy okno stawało się niewidoczne (I64656). - Nazwa
LayoutCoordinates.introducesFrameOfReference
została zmieniona naLayoutCoordinates.introducesMotionFrameOfReference
, aby lepiej odzwierciedlała jej przeznaczenie. Zmieniono nazwę powiązanej funkcji, aby obliczać współrzędne na podstawie tego flagi. (I3a330)
Wersja 1.4
Wersja 1.4.1
12 lutego 2025 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.1
Wersja 1.4.1 zawiera te zmiany.
Poprawki błędów
- Zabezpieczyliśmy się przed awarią podczas uzyskiwania dostępu do globalnego ustawienia redukcji ruchu, która była wywoływana na niektórych platformach, na których to ustawienie nie było dostępne. (I01e2c)
Wersja 1.4.0
4 września 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0
Wersja 1.4.0 zawiera te zmiany.
Ważne zmiany od wersji 1.3.0
ScalingLazyColumn
iPicker
domyślnie obsługują teraz wprowadzanie obrotowe – zalecamy usunięcie jawnej obsługi obrotowej i skorzystanie z domyślnego zachowania systemu. W razie potrzeby użyj parametrurotaryScrollableBehavior
, aby skonfigurować przewijanie lub przyciąganie. W przypadku przyciągania zalecamy podanie zachowania przyciągania i możliwości przewijania dotykowego za pomocą parametruflingBehavior
.Modifier.rotaryScrollable
to nowy modyfikator, który łączy zdarzenia obrotowe z kontenerami z możliwością przewijania, dzięki czemu użytkownicy mogą przewijać treści za pomocą pokrętła lub obrotowej ramki na urządzeniu z Wear OS.SwipeDismissableNavHost
zapewnia teraz animację wejścia podczas przejść w aplikacji.PositionIndicator
jest teraz domyślnie wyświetlany, gdy ekran jest wyświetlany po raz pierwszy.
Dodatkowe zmiany
- Pełniejszy zestaw zmian wprowadzonych w wersji 1.3.0 znajdziesz w informacjach o wersji beta01.
Wersja 1.4.0-rc01
21 sierpnia 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-rc01
Wersja 1.4.0-rc01 zawiera te zmiany.
- Zaktualizowaliśmy zależności Compose do wersji 1.7.0-rc01 i przypięliśmy Wear Compose Navigation do androidx.lifecycle 2.8.3.
Wersja 1.4.0-beta03
12 czerwca 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-beta03
Wersja 1.4.0-beta03 zawiera te zmiany.
Poprawki błędów
- Zaktualizowaliśmy
Modifier.rotaryScrollable
, aby zastąpić użycie „focusable” przez „focusTarget”, co zwiększa wydajność. (Id294b) - Rozwiązaliśmy problem, który powodował, że
ProgressIndicator
powtarzał komunikat wTalkBack
. (I94563) - Zaktualizowaliśmy profile bazowe biblioteki Wear Compose. (I3cbc3)
Wersja 1.4.0-beta02
29 maja 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-beta02
Wersja 1.4.0-beta02 zawiera te zmiany.
Poprawki błędów
- Zwiększyliśmy szerokość obramowania przekazywanego do czytników ekranu z zakrzywionego tekstu, aby rozwiązać problemy z obcinaniem (Id865f).
- Ograniczyliśmy obszar elementu
HorizontalPageIndicator
przekazywanego do czytników ekranu – wcześniej wskaźnik zajmował cały ekran (Id8d7a).
Wersja 1.4.0-beta01
14 maja 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-beta01
Wersja 1.4.0-beta01 zawiera te zmiany.
Wersja 1.4-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany (z wyjątkiem funkcji oznaczonych jako eksperymentalne). Wear Compose 1.4 zawiera te nowe funkcje:
- Dodaliśmy nowy modyfikator
Modifier.rotaryScrollable
, który łączy zdarzenia obrotowe z kontenerami z możliwością przewijania, dzięki czemu użytkownicy mogą przewijać treści za pomocą pokrętła lub obrotowej ramki na urządzeniu z Wear OS. Oprócz tegoScalingLazyColumn
iPicker
domyślnie obsługują teraz wprowadzanie danych za pomocą pokrętła. Za pomocą parametrurotaryScrollableBehavior
możesz skonfigurować przewijanie lub przyciąganie. W przypadku zachowania przyciągania zalecamy też podanie przyciągania za pomocą parametruflingBehavior
w przypadku przewijania dotykowego. SwipeDismissableNavHost
zapewnia teraz animację wejścia podczas przejść w aplikacji.PositionIndicator
jest teraz domyślnie wyświetlany, gdy ekran jest wyświetlany po raz pierwszy.SelectableChip
iSplitSelectableChip
zostały dodane jako wariant elementuToggleChip
. Używaj ich z elementemRadioButton
, aby zapewnić semantykę z możliwością wyboru zamiast semantyki z możliwością przełączania na potrzeby ułatwień dostępu.ListHeader
obsługuje teraz dostosowywanie wysokości, gdy treść wymaga dodatkowej wysokości ze względu na duże rozmiary czcionek.
Poprawki błędów
- Naprawiliśmy błąd polegający na tym, że klikalne elementy były odczytywane jako „kliknij dwukrotnie, aby przełączyć”, mimo że były już zaznaczone. (I7ed88)
Wersja 1.4.0-alpha08
1 maja 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-alpha08
Wersja 1.4.0-alpha08 zawiera te zmiany.
Zmiany w interfejsie API
- W nowym interfejsie API obrotowego wprowadziliśmy te zmiany: zmieniliśmy nazwę
Modifier.rotary
naModifier.rotaryScrollable
, zmieniliśmy nazwę interfejsuRotaryBehavior
naRotaryScrollableBehavior
, a jego funkcjihandleScrollEvent
naperformScroll
, zmieniliśmy nazwęRotaryScrollableAdapter
naRotaryScrollableLayoutInfoProvider
i usunęliśmy właściwośćscrollableState
. (I0c8a6) - Wprowadziliśmy dodatkowe zmiany w interfejsie API obrotowego: zmieniliśmy nazwę
RotaryScrollableLayoutInfoProvider
naRotarySnapLayoutInfoProvider
(ponieważ ten dostawca jest potrzebny tylko w przypadku obrotowego z przyciąganiem); zmieniliśmy typ parametrusnapOffset
wRotaryScrollableDefaults.snapBehavior snapOffset
z Int na Dp. (Iddebe) - Zmieniliśmy nazwę parametru
clickInteractionSource
w usłudzeSplitSelectableChip
nacontainerInteractionSource
. (Ia8f84) - Zaktualizowaliś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 odstęp wewnętrzny dla elementu
PositionIndicator
do 2 dp (wcześniej 5 dp), aby naprawić błąd, w którym elementPositionIndicator
(pasek przewijania) nakładał się na treść, którą można przewijać. Pamiętaj, że ta zmiana może spowodować, że dotychczasowe zrzuty ekranu zawierające symbolPositionIndicator
będą nieprawidłowe ze względu na zmianę dopełnienia. (I57472) - Ulepszyliśmy dokumentację nowego interfejsu API pokrętła, opisując różnice między urządzeniami z pokrętłem o niskiej i wysokiej rozdzielczości. (I63abe)
- Rozwiązaliśmy problem z wyjątkiem wykraczającym poza zakres w
SwipeDismissableNavHost
, który mógł być wywoływany, gdy interpolowane wartości alfa były mniejsze od zera. (Ib75a1, b/335782510)
Wersja 1.4.0-alpha07
17 kwietnia 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-alpha07
Wersja 1.4.0-alpha07 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaliśmy nowy modyfikator
Modifier.rotary
, który łączy zdarzenia obrotowe z kontenerami z możliwością przewijania, dzięki czemu użytkownicy mogą przewijać treści za pomocą pokrętła lub obrotowej ramki na urządzeniu z Wear OS. Dodatkowo komponentyScalingLazyColumn
i Picker domyślnie obsługują wprowadzanie danych za pomocą ruchu obrotowego. Mają też nowe przeciążenia, które zawierają parametrrotaryBehavior
umożliwiający określenie konfiguracji przewijania lub przyciągania. Jeśli parametrrotaryBehavior
ma wartość snap, zalecamy podanie wartości snap również w parametrzeflingBehavior
w przypadku przewijania dotykowego. (I2ef6f) - Źródła
NestedScroll
Drag i FlingUserInput
zastępujemy źródłamiUserInput
iSideEffect
, aby uwzględnić rozszerzoną definicję tych źródeł, która obejmuje teraz animacje (Side Effect) oraz kółko myszy i klawiaturę (UserInput). (I40579) - Dodaliśmy symbole
SelectableChip
iSplitSelectableChip
, aby wyraźniej odróżnić przełączniki, takie jakSwitch/Checkbox
, od elementów, które można wybrać, np.RadioButton
. Spowoduje to zastąpienie wcześniej dodanych przeciążeń funkcjiToggleChip/SplitToggleChip
parametramiselectionControl
. (Ia0217) - Zmieniono modyfikator widoczności użytkownika
IndeterminateStrokeWidth
w grupieProgressIndicatorDefaults
na publiczny. (I5b5a4)
Wersja 1.4.0-alpha06
3 kwietnia 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-alpha06
Wersja 1.4.0-alpha06 zawiera te zmiany.
Poprawki błędów
- Dodaliśmy wewnętrzną wersję roboczą obsługi pokrętła w ramach większego projektu przenoszenia zachowania pokrętła z Horologist do Androida X. (I617d1)
- Dodaliśmy wewnętrzną wersję roboczą obsługi haptyki w ramach większego projektu przenoszenia zachowania obrotowego z Horologist do Androida X. (I5568a)
Wersja 1.4.0-alpha05
20 marca 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-alpha05
Wersja 1.4.0-alpha05 zawiera te zmiany.
Zmiany w interfejsie API
- Udostępniliśmy właściwości
initialCenterItemIndex
iinitialCenterItemScrollOffset
usługiScalingLazyListState
. (I0c616) - Ustawiliśmy
FullScreenStrokeWidth
zProgressIndicatorDefaults
jako publiczne. (Ibea23)
Poprawki błędów
- Zwiększyliśmy wydajność
PositionIndicator
, zmniejszając liczbę wywołańlayoutInfo
zScalingLazyColumn
. (Idc83d)
Wersja 1.4.0-alpha04
6 marca 2024 roku
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-alpha04
Wersja 1.4.0-alpha04 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaliśmy nowe przeciążenie funkcji
ToggleChip
iSplitToggleChip
, które przyjmuje parametrselectionControl
zamiast parametrutoggleControl
. Należy go używać z elementem sterującymRadioButton
, aby zapewnić semantykę z możliwością wyboru zamiast semantyki z możliwością przełączania na potrzeby ułatwień dostępu (I1d6d9). - Zmieniliśmy nazwy parametrów nowego przeciążenia
selectionControl
zonSelected
naonSelect
w przypadkuToggleChip
iSplitToggleChip
(I1a971)
Wersja 1.4.0-alpha03
21 lutego 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-alpha03
Wersja 1.4.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Element
Modifier.inspectable
został wycofany. Ten interfejs API będzie tworzyć więcej unieważnień modyfikatora niż jest to konieczne, dlatego jego używanie jest obecnie odradzane. Deweloperzy, którzy chcą udostępniać narzędziom właściwości modyfikatora, powinni zaimplementować metodęinspectableProperties()
wModifierNodeElement
. (Ib3236)
Poprawki błędów
- Naprawiliśmy błąd w dokumentacji adnotacji
WearPreview*
. (Id526d)
Wersja 1.4.0-alpha02
7 lutego 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-alpha02
Wersja 1.4.0-alpha02 zawiera te zmiany.
Poprawki błędów
- Naprawiliśmy błąd w funkcji przesuwania w celu wyświetlenia, który umożliwiał interakcję z zatwierdzonym działaniem na jednym elemencie (i jego anulowanie) poprzez rozpoczęcie przesuwania innego elementu.(Ide059)
- Zaktualizowaliśmy
ListHeader
, aby obsługiwać dostosowywanie wysokości, gdy treści wymagają dodatkowej wysokości ze względu na duże rozmiary czcionki. (I7290c, b/251166127)
Wersja 1.4.0-alpha01
24 stycznia 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.4.0-alpha01
Wersja 1.4.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy animację wejścia do
SwipeDismissableNavHost
w przypadku przejść w aplikacji.(cfeb79a) PositionIndicator
jest teraz domyślnie wyświetlany, gdy ekran jest wyświetlany po raz pierwszy. Ta zmiana została wprowadzona, aby pomóc w spełnianiu wymagań dotyczących jakości aplikacji na Wear. Oznacza to, że testy zrzutów ekranu na ekranach zawierającychPositionIndicator
będą musiały zostać zaktualizowane, ponieważ wcześniejPositionIndicator
nie był wyświetlany. (419cef7)
Zmiany w interfejsie API
- W bibliotekach
wear:compose-material
iwear:compose-material3
dodaliśmy nowy interfejs API efektu falowania, który zastępuje wycofany interfejsrememberRipple
. Dodaje też tymczasoweCompositionLocal
,LocalUseFallbackRippleImplementation
, aby przywrócić komponenty Material do korzystania z wycofanych interfejsów APIrememberRipple/RippleTheme
. Zostanie ona usunięta w kolejnej stabilnej wersji i ma być tylko tymczasowym ułatwieniem migracji w przypadkach, gdy podajesz niestandardowyRippleTheme
. Więcej informacji o migracji i szczegółowe wyjaśnienie tej zmiany znajdziesz na stronie developer.android.com. (af92b21) - Zaktualizowaliśmy
ColorScheme
, aby był niezmienny, co sprawia, że indywidualne aktualizacje kolorów są mniej wydajne, ale bardziej wydajne jest częstsze używanie kolorów. Powodem tej zmiany jest to, że większość aplikacji nie ma aktualizowania poszczególnych kolorów jako głównego zastosowania. Jest to nadal możliwe, ale będzie wymagało większej liczby ponownych kompozycji niż wcześniej. W rezultacie znacznie zmniejszymy liczbę subskrypcji stanu w całym kodzie materiału, co wpłynie na koszt inicjowania i wykonywania w przypadku bardziej standardowych zastosowań. (f5c48b7) - Komponenty Wear material i Wear material3, które w swoim interfejsie API udostępniały wartość
MutableInteractionSource
, zostały zaktualizowane, aby udostępniać wartośćMutableInteractionSource
z możliwością wartości null, która domyślnie ma wartość null. Nie ma tu żadnych zmian semantycznych: przekazanie wartości null oznacza, że nie chcesz podnosićMutableInteractionSource
, a w razie potrzeby zostanie on utworzony w komponencie. Ustawienie wartości null powoduje, że niektóre komponenty nigdy nie przydzielająMutableInteractionSource
, a inne tworzą instancję tylko wtedy, gdy jest to potrzebne, co zwiększa wydajność tych komponentów. Jeśli nie używasz elementuMutableInteractionSource
przekazywanego do tych komponentów, zalecamy przekazywanie zamiast niego wartości null. Zalecamy też wprowadzenie podobnych zmian we własnych komponentach. (f8fa920) - Zaktualizowaliśmy
rememberExpandableState
, aby zapisać stan rozwinięty. Dzięki temu dane są przechowywane podczas przechodzenia do innego ekranu i przywracane po powrocie do pierwotnego ekranu. (5c80095)
Poprawki błędów
- Zaktualizowaliśmy ustawienie
ReduceMotion
, aby używać odbiornika uwzględniającego cykl życia. (7c6b122) - Zaktualizowaliśmy komponent Listener w
TouchExplorationStateProvider
, aby uwzględniał cykl życia (be28b01). - Usunęliśmy warstwę materialcore w przypadku
CompactButton
, aby poprawić wydajność (25db8e9) - Ulepszyliśmy
BasicSwipeToDismissBox
, aby był bardziej odporny na przesunięcia NaN i uniknąć wyjątków (b983739). - Zaktualizowaliśmy
BasicSwipeToDismissBox
, aby wartości alfa mieściły się w zakresie 0,1. - Naprawiliśmy błąd w elementach
ToggleButton
,SplitToggleButton
,Checkbox
,Switch
iRadioButton
, aby komunikaty ułatwień dostępu nie były powtarzane (wcześniej role semantyczne były duplikowane) (d11eeb7).
Wersja 1.3
Wersja 1.3.1
3 kwietnia 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.1
Wersja 1.3.1 zawiera te zmiany.
Poprawki błędów
- Naprawiliśmy błąd w funkcji przesuwania w celu wyświetlenia, który umożliwiał interakcję z zatwierdzonym działaniem na jednym elemencie (i jego anulowanie) poprzez rozpoczęcie przesuwania innego elementu. (Ide059)
Wersja 1.3.0
24 stycznia 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0
Wersja 1.3.0 zawiera te zmiany.
Ważne zmiany od wersji 1.2.0
- Klasa
SwipeToDismissBoxState
, wyliczenieSwipeToDismissValue
i funkcja rozszerzeniaModifier.edgeSwipeToDismiss
wchodzą teraz w skład pakietuandroidx.wear.compose.foundation
zamiast pakietuandroidx.wear.compose.material
. Ta zaktualizowana architektura umożliwia implementowanie obsługi gestów niezależnie od innych kwestii związanych z projektowaniem. Procesy Material Design, takie jak stosowanie kolorów z skonfigurowanego motywu, są obsługiwane oddzielnie. - Klasy
SwipeToRevealCard
iSwipeToRevealChip
pomagają w implementacjirecommended 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
zwiększają wysokość, aby lepiej obsługiwać skalowanie czcionki wybrane przez użytkownika. Może to spowodować przycięcie. Aby rozwiązać ten problem, kształtlarge
dlaMaterialTheme
ma teraz większy promień zaokrąglenia (26 dp zamiast 24 dp). ObiektyChip
iToggleChip
używają tego nowego promienia zaokrąglenia, aby uniknąć przycinania treści w rogach elementu Chip iToggleChip
.- Większość elementów
Chips
iToggleChips
nie ulegnie zmianie, ponieważ ich domyślna wysokość to 52 dp. Jednak obiektyChip
iToggleChip
, które zawierają wiele wierszy tekstu etykiety głównej lub dodatkowej albo których wysokość została zastąpiona, mogą powodować niepowodzenie testów zrzutów ekranu.
- Większość elementów
Dodatkowe zmiany
Pełniejszy zestaw zmian wprowadzonych w wersji 1.3.0 znajdziesz w informacjach o wersji beta01.
Zalecenia dotyczące wdrażania
- Jeśli aplikacja umożliwia użytkownikom przesuwanie zawartości ekranu, np. w aplikacji opartej na mapach, wyłącz obsługę przesuwania, ustawiając wartość
userSwipeEnabled
nafalse
w kompozycjiSwipeDismissableNavHost
, i dodaj przycisk, który umożliwia użytkownikom przejście do poprzedniego ekranu. - Aby wyłączyć animacje wskaźnika pozycji podczas animacji pojawiania się i zmiany pozycji na liście przewijanej, użyj obiektu
SnapSpec
. - Podczas oczekiwania na wczytanie treści do odtwarzania przez aplikację multimedialną wyświetlaj pusty komponent
Placeholder
. - Aby utworzyć kolekcję rozwijanych elementów na żądanie, możesz użyć eksperymentalnej klasy
ExpandableStateMapping
.
Wersja 1.3.0-rc01
10 stycznia 2024 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-rc01
Wersja 1.3.0-rc01 zawiera te zmiany.
Poprawki błędów
-
Zaktualizowaliśmy
MaterialTheme
duży kształt, aby używać zaokrąglonego rogu o promieniu 26 dp. Będzie on teraz używany przez element Chip iToggleChip
. Ta zmiana jest potrzebna, aby umożliwić dostosowywanie wysokości, gdy treści wymagają dodatkowej wysokości ze względu na duże rozmiary czcionek. W przeciwnym razie istniejący kształt stadionu przycina niektóre treści tekstowe.Ilustracja 1. Tekst ucięty w rogach. Ilustracja 2. Tekst nie jest przycięty. Ta zmiana może spowodować niepowodzenie testów zrzutów ekranu. (I2e6ae)
Wersja 1.3.0-beta02
13 grudnia 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-beta02
Wersja 1.3.0-beta02 zawiera te zmiany.
Poprawki błędów
- Przywróciliśmy zamierzony gest przesuwania w
BasicSwipeToDismissBox
. W poprzedniej wersji zostało to zmienione tak, że przesunięcie w ramach przejścia następowało, gdy palec dotykał ekranu. (Id8e76)
Wersja 1.3.0-beta01
15 listopada 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-beta01
Wersja 1.3.0-beta01 zawiera te zmiany.
Wersja 1.3-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany (z wyjątkiem funkcji oznaczonych jako eksperymentalne). Wear Compose 1.3 zawiera te nowe funkcje:
- Usługi
SwipeToDismissBoxState
,SwipeToDismissValue
iModifier.edgeSwipeToDismiss
zostały przeniesione zandroidx.wear.compose.material
doandroidx.wear.compose.foundation
wraz z implementacją funkcji przesuwania w celu zamknięcia wBasicSwipeToDismissBox
. Dzięki temu obsługę gestów w przypadku funkcji przesuń, aby zamknąć można stosować niezależnie od Material Design, np. w przypadkuSwipeDismissableNavHost
wandroidx.wear.compose.navigation
.SwipeToDismissBox
zandroidx.wear.compose.material
nadal zaleca się używać w przypadku Material Design, ponieważ pobiera kolory zMaterialTheme
, a następnie przekazuje pozostałą część implementacji doBasicSwipeToDismissBox
. 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
ma ulepszoną obsługę ostrości za pomocąHierarchicalFocusCoordinator
.SwipeToReveal
ma nowe komponentySwipeToRevealCard
iSwipeToRevealChip
w Material Design, które są zgodne z zalecanymi wskazówkami UX dotyczącymiCard
iChip
. Obsługuje też cofanie działania dodatkowego.DefaultTextStyle
wyłącza teraz dopełnienie czcionki, aby zapewnić spójność na całej platformie Android.Chip
iToggleChip
dostosowują teraz wysokość do treści, które urosły z powodu dużych czcionek ułatwiających dostęp.PositionIndicator
ma teraz osobne specyfikacje animacji dla animacji pojawiania się, znikania i zmiany pozycji. Ze względu na wydajność zalecamy wyłączenie efektu pojawiania się i zmiany pozycji w przypadku korzystania z list przewijanych.ExpandableStateMapping
zapewnia nowy sposób generowaniaExpandableStates
, gdy trzeba je utworzyć na żądanie, a niekoniecznie w zakresie@Composable
.Placeholder
umożliwia teraz resetowanie, jeśli treści nie są już w stanie gotowości. Ustawienie ograniczenia ruchu dotyczy teraz efektu połyskiwania i ruchu wycierania na urządzeniuPlaceholder
.
Znane problemy
PositionIndicator
nie jest początkowo wyświetlana, gdy ekran pojawia się po raz pierwszy. W wersji alfa 1.4 planujemy wprowadzić zmianę, która spowoduje, że będzie się ona początkowo wyświetlać, ale bez animacji.
Zmiany w interfejsie API
- Zmieniliśmy nazwę poziomu podstawowego
SwipeToDismissBox
naBasicSwipeToDismissBox
. Dzięki temu łatwiej odróżnić komponent poziomu podstawowego od komponentu poziomu materiałuSwipeToDismissBox
. Ten drugi pobiera kolory zMaterialTheme
, aby używać ich w warstwach przyciemniających, a pozostałą część implementacji przekazuje doBasicSwipeToDismissBox
. (Ibecfc) - Oznaczyliśmy
rememberExpandableStateMapping
jako eksperymentalną i zwiększyliśmy skutecznośćexpandableItem
. (I5f6bc) - Zastąpiliśmy klasę
SwipeToRevealAction
w interfejsach API kart i elementów Material 3 interfejsem API opartym na slotach, który korzysta z funkcji kompozycyjnychSwipeToRevealPrimaryAction
,SwipeToRevealSecondaryAction
iSwipeToRevealUndoAction
.SwipeToReveal
Przykłady użycia nowego interfejsu API znajdziesz w przykładowym kodzie. (Ia8943) - Flagi animacji
PositionIndicator
zastąpiliśmy parametramiAnimationSpec
. Poszczególne animacje można wyłączyć, przekazując wartośćsnap
jako parametrAnimationSpec
. (I6c523)
Poprawki błędów
- Rozwiązaliśmy błąd wywoływany przez ograniczony tekst zakrzywiony, gdy rozmiar jest ograniczony (I50efe).
- Rozwiązaliśmy problem z potencjalną awarią związaną z wartością NaN w przypadku
curvedComposable
(I970eb). - Cofnęliśmy usunięcie animacji wyróżniającej zmianę pozycji na stronie
PositionIndicator
. (Ieb424) - Usunęliśmy warstwę materiału z elementu Chip, aby zwiększyć jego wydajność. (If2dcb)
Wersja 1.3.0-alpha08
18 października 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha08
Wersja 1.3.0-alpha08 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaliśmy do przeciążeń
PositionIndicator
poszczególne flagi, aby sterować różnymi animacjami:showFadeInAnimation
,showFadeOutAnimation
ishowPositionAnimation
. Poprzedni interfejs API został wycofany i przekazuje wywołania do nowego interfejsu. Ze względu na wydajność i spójność UX, gdyPositionIndicator
jest używany z listą z możliwością przewijania, zalecamy wyłączenie flagshowFadeInAnimation
ishowPositionAnimation
. Jeśli symbolPositionIndicator
jest używany jako samodzielny wskaźnik, np. do zmiany głośności, zalecamy włączenie wszystkich 3 animacji. (I44294) - Po przeniesieniu funkcji przesuwania w celu zamknięcia do
wear.compose.foundation
wycofaliśmy komponenty MaterialSwipeToDismissBoxState
,SwipeToDismissValue
iedgeSwipeToDismiss
. Zastąp je odpowiednikamiwear.compose.foundation
. (Iee8c9)
Poprawki błędów
- Zaktualizowaliśmy profile podstawowe bibliotek Wear Compose Foundation, Material i Navigation. (Idb060)
- Cofnęliśmy zmianę w zachowaniu elementu
PositionIndicator
wprowadzoną w poprzednim CL, tak aby elementPositionIndicator
był animowany, gdy ekran jest wyświetlany po raz pierwszy. Podobną zmianę zamierzamy wprowadzić we wczesnej wersji alfa 1.4, tak aby początkowo wyświetlać symbolPositionIndicator
, ale bez animacji. (I41843) - Rozwiązaliśmy niektóre problemy z wydajnością w
PositionIndicator
. (I1c654, b/302399827) - Zoptymalizowaliśmy wydajność domyślnej implementacji dostawcy stanu eksploracji dotykowej, aby korzystała z
State<Boolean>
zamiast ze stanu pochodnego. (Ieec4d) - W przypadku Androida 13 i nowszych ustawiliśmy
systemGestureExclusion
prostokątów. (Ib1f4b)
Wersja 1.3.0-alpha07
4 października 2023 roku
Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha07
Wersja 1.3.0-alpha07 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaliśmy do parametru
PositionIndicator
poszczególne flagi, które umożliwiają sterowanie różnymi animacjami:showFadeInAnimation
,showFadeOutAnimation
ishowPositionAnimation
. Poprzedni interfejs API został wycofany i przekazuje wywołania do nowego interfejsu. Ze względu na wydajność i spójność UX, gdyPositionIndicator
jest używany z listą z możliwością przewijania, zalecamy wyłączenie flagshowFadeInAnimation
ishowPositionAnimation
. Jeśli symbolPositionIndicator
jest używany jako samodzielny wskaźnik, np. do zmiany głośności, zalecamy włączenie wszystkich 3 animacji. (Ia2d63)
Poprawki błędów
- Ulepszyliśmy gest przesuwania, aby wyświetlić element, dodając animację zanikania tekstu głównego działania oraz zanikanie działania dodatkowego lub zmianę skali ikony po pełnym rozwinięciu przesunięcia. (Ib7223)
- Zalecamy, aby działania przesuwania w celu wyświetlenia były dostępne. Do naszych przykładów przesuwania w celu wyświetlenia dodaliśmy niestandardowe działania ułatwień dostępu. (I42224)
- Poprawiliśmy wydajność
SwipeToDismissBox
, w tym przeprowadziliśmy refaktoryzację, aby mieć pewność, że początkowa logika nie powoduje ponownego komponowania.SwipeToDismissBox
jest teraz rysowany na pełnym ekranie. (Ie0aa2) - Naprawiliśmy błąd, w wyniku którego ikona
PositionIndicator
znikała w nieprawidłowy sposób. (I2091a) - Poprawiona wydajność
PositionIndicator
dzięki optymalizacji ponownego komponowania. Później dodaliśmy nowe flagi do sterowania animacjami (fadeIn
,fadeOut
ipositionChange
) (patrz Zmiany w interfejsie API) (Ifac7d). - Dodaliśmy testy porównawcze dla
PositionIndicator
(Idf875)
Wersja 1.3.0-alpha06
20 września 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha06
Wersja 1.3.0-alpha06 zawiera te zmiany.
Poprawki błędów
- Dodaliśmy obsługę
Modifier.edgeSwipeToDismiss
w przypadkuSwipeToReveal
. (I95774, b/293444286) - Dodaliśmy przykłady materiałów
SwipeToRevealChip
iSwipeToRevealCard
. (Ieb974) - Zaktualizowaliśmy profile bazowe bibliotek Wear Compose Foundation i Material. (I1dd1f)
Wersja 1.3.0-alpha05
6 września 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha05
Wersja 1.3.0-alpha05 zawiera te zmiany.
Poprawki błędów
- Dodaliśmy obsługę w funkcji Przesuń, aby wyświetlić, dzięki czemu można przesuwać tylko jeden element naraz. (I3cd7a)
- Ulepszyliśmy dokumentację funkcji
ScalingLazyColumnDefaults
, aby lepiej odzwierciedlała jej rzeczywiste działanie. (I886d3)
Wersja 1.3.0-alpha04
23 sierpnia 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha04
Wersja 1.3.0-alpha04 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy możliwość cofnięcia działania dodatkowego
SwipeToReveal
. (I7a22d)
Zmiany w interfejsie API
- Dodaj
HorizontalPageIndicator
w bibliotece Wear Material3. (Ifee99) - Zaktualizowano narzędzia do podglądu Wear Compose, aby korzystały z biblioteki
androidx.wear.tooling.preview
. (Ib036e)
Poprawki błędów
- Naprawiliśmy błąd w okrągłych przyciskach, który powodował, że modyfikatory nie były prawidłowo łączone. (I5e162)
Wersja 1.3.0-alpha03
9 sierpnia 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha03
Wersja 1.3.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- W Material dodaliśmy 2 nowe funkcje kompozycyjne do implementowania
SwipeToReveal
za pomocą kart i elementów. Te komponenty kompozycyjne są zgodne z zalecanymi wskazówkami dotyczącymi UX i ułatwiają deweloperom wdrażanieSwipeToReveal
za pomocą istniejących komponentów w Wear Material. (I7ec65) - Włączyliśmy adnotacje
FloatRange
jako ograniczenia interfejsu API, które wcześniej były podane w komentarzach. (Icb401)
Poprawki błędów
- Przenieśliśmy początkową logikę przewijania elementu
ScalingLazyColumn
do elementuonGloballyPositioned()
. (Ic90f1) - W przypadku
drawWithCache
wPositionIndicator
,ProgressIndicator
iSelectionControls
używamy terazdrawWithCache
, aby optymalizować przydzielanie pociągnięć. (I5f225, b/288234617) - Poprawiliśmy widoczność zaznaczenia pola wyboru w stanach wyłączonych. (Ib25bf)
- Zaktualizowaliśmy
Placeholder
, aby umożliwić resetowanie i wyświetlanie elementu zastępczego, jeśli treść nie jest już w stanie gotowości. (Ibd820) - Wprowadziliśmy kilka poprawek do niestabilnych testów
Placeholder
(Idb560).
Wersja 1.3.0-alpha02
26 lipca 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha02
Wersja 1.3.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Wprowadziliśmy
ExpandableStateMapping
, czyli nowy sposób generowaniaExpandableStates
w przypadkach, gdy trzeba je utworzyć na żądanie, a niekoniecznie w zakresie@Composable
(Iff9e0). SwipeToDismissBox
został przeniesiony z pakietuandroidx.wear.compose.material
do pakietuandroidx.wear.compose.foundation
. (I275fb)- Zaktualizowano pliki API, aby dodać adnotacje dotyczące wyłączenia zgodności. (I8e87a, b/287516207)
- Udostępniliśmy stałe wartości wysokości dla
Chip
,CompactChip
iToggleChip
(Idbfde). - Udostępniliśmy poziome i pionowe dopełnienie dla symboli
Chip
iCompactChip
. (Ieeaf7) - Dodano funkcję wyłączania obsługi przesuwania w
SwipeDismissableNavHost
za pomocą nowego parametruuserSwipeEnabled
. (Id2a0b, b/230865655) - Zaktualizowaliśmy bibliotekę Wear Compose Navigation, aby korzystała z nowej funkcji
SwipeToDismissBox
z Wear Compose Foundation. (I4ff8e)
Poprawki błędów
- Naprawiliśmy błąd kolejności z, który powodował, że po kliknięciu przycisku
expandedItem
nie wyświetlał prawidłowej treści, gdy zawierał przyciski. (I1899d, b/289991514) - Poprawiono obsługę zaznaczenia elementu
SwipeToDismissBox
(a tym samymSwipeDismissableNavHost
) za pomocą elementuHierarchicalFocusCoordinator
(I45362, b/277852486). - Wprowadziliśmy poprawkę dotyczącą obsługi gestów w
SwipeableV2
. (I89737) - Ukończyliśmy tworzenie profili podstawowych dla wersji 1.2. (Id5740)
- Po migracji
SwipeToDismissBox
do Foundation implementacja MaterialSwipeToDismissBox
przekazuje teraz dane do Foundation i dostarcza domyślne wartości kolorów z motywu.(If8451) - Dodaliśmy do elementu
ListHeader
semantykę nagłówka. (Ic5420) Chip
iToggleChip
będą teraz dostosowywać swoją wysokość do treści, które urosły z powodu dużych czcionek ułatwiających dostęp. (Iaf302)- Naprawiliśmy błąd w semantycznej roli obszaru klikalnego
SplitToggleChip
na potrzeby ułatwień dostępu. (Ieed3a) - Ustawienie „Ogranicz ruch” wyłącza teraz efekt migotania i przesuwania na obiektach zastępczych. (I91046)
Stepper
iInlineSlider
obsługują teraz powtarzane kliknięcia podczas długiego naciśnięcia, 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.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.3.0-alpha01
Wersja 1.3.0-alpha01 zawiera te zmiany.
Poprawki błędów
- Zgodnie z informacjami podanymi w
1.2.0-alpha07
i1.2.0-alpha10
zmieniamy terazDefaultTextStyle
, aby wyłączyć dopełnianie czcionek i zapewnić spójność na całej platformie Android. Rozwiązanie to może wpłynąć na przycinanie tekstu przy dużych rozmiarach czcionki, a także na układy ekranu, dlatego testy zrzutów ekranu będą wymagać aktualizacji. Na przykład widzimy tu obcięty tekst (Ic6a86).

- Gdy dopełnienie czcionki jest wyłączone, nie jest już widoczny:

- Zaktualizowaliśmy
wear.compose.foundation
, aby była zależnością interfejsu APIwear.compose.material
(I72004, b/285404743). - Naprawiliśmy błąd w
SwipeToDismissBox
. Klucze tła i treści są teraz przekazywane do bloku zapamiętywania, dzięki czemu po zmianie treści lub tła tworzone są nowe modyfikatory. (Ib876c, b/280392104) - Zaktualizowaliśmy
TimeText
, aby podczas wybierania formatu czasu 12-godzinnego lub 24-godzinnego korzystać z ustawień regionalnych. (If4a3d) - Usunęliśmy niespójność w parametrach domyślnych
SwipeToDismissBox
contentScrimColor
. (I2d70f) - Ulepszyliśmy obsługę ruchu w
SwipeToReveal
. (I28fb7)
Znane problemy
- Obsługa rozmiarów czcionek skonfigurowanych przez użytkownika jest wymaganiem dotyczącym ułatwień dostępu. Wiemy, że wielowierszowe elementy Chip mogą powodować przycinanie tekstu, gdy są wyświetlane z dużymi rozmiarami czcionek, dlatego w wersji alfa 1.3 wprowadzimy aktualizację elementu Chip, która umożliwi dostosowywanie wysokości w takich przypadkach.
Wersja 1.2
Wersja 1.2.1
18 października 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.1
Wersja 1.2.1 zawiera te zmiany.
Poprawki błędów
- Usunęliśmy błąd, który powodował nieprawidłowe znikanie
PositionIndicator
. (7a167f)
Wersja 1.2.0
9 sierpnia 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0
Wersja 1.2.0 zawiera te zmiany.
Ważne zmiany od wersji 1.1.0
- Stabilna wersja Compose for Wear OS 1.2.0 (więcej informacji)
- Listę najważniejszych zmian w Wear Compose 1.2 znajdziesz w informacjach o wersji (Compose na Wear OS 1.2 Beta01).
Wersja 1.2.0-rc01
26 lipca 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-rc01
Wersja 1.2.0-rc01 zawiera te zmiany.
Poprawki błędów
- Ukończyliśmy tworzenie profili bazowych dla wersji 1.2 (Id5740).
Wersja 1.2.0-beta02
7 czerwca 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-beta02
Wersja 1.2.0-beta02 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy nową eksperymentalną zmienną
LocalReduceMotion
CompositionLocal
, która wyłącza skalowanie i zanikanie w przypadkuScalingLazyColumn
. (I58024)
Poprawki błędów
- Zaktualizowaliśmy profile bazowe bibliotek kompozycji i materiałów na urządzenia z Wear OS(I4725d).
- Usunęliśmy niespójność w wartościach domyślnych parametrów
SwipeToDismissBox
contentScrimColor
(I2d70f). - Naprawiliśmy wartość domyślną
DefaultTextStyle
używaną w ustawieniuIncludeFontPadding
(I737ed).
Wersja 1.2.0-beta01
24 maja 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-beta01
Wersja 1.2.0-beta01 zawiera te zmiany.
Nowości w Compose na Wear OS 1.2
Wersja 1.2-beta01 biblioteki Compose na Wear OS oznacza, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany (z wyjątkiem funkcji oznaczonych jako eksperymentalne). Wear Compose 1.2 zawiera te nowe funkcje:
expandableItem
iexpandableItems
to 2 nowe komponentyFoundation
, które umożliwiają rozwijanie elementów wScalingLazyColumn
. UżyjexpandableItem
w przypadku pojedynczego elementu rozwijanego, np. tekstu, w którym liczba wierszy. Użyj symboluexpandableItems
w przypadku grupy elementów, które można rozwinąć, a symboluexpandableButton
, aby uprościć tworzenie przycisku, który zwija się po rozwinięciu treści.HierarchicalFocusCoordinator
– ten eksperymentalny komponent umożliwia oznaczanie poddrzew kompozycji jako włączonych lub wyłączonych pod kątem fokusu.Picker
– interfejs API zawiera teraz parametruserScrollEnabled
, który określa, czy selektor jest aktywny podczas przewijania przez użytkownika.PickerGroup
– nowy komponent do obsługi wielu selektorów jednocześnie. Zarządza on fokusem między selektorami za pomocą interfejsuHierarchicalFocusCoordinator
API i umożliwia automatyczne wyśrodkowywanie elementów selektora.Placeholder
– wprowadziliśmy zmiany w animacjach połysku i „Wycieranie”. Efekt wycierania jest teraz stosowany natychmiast, gdy treść jest gotowa.ScalingLazyColumn
– przenieśliśmyScalingLazyColumn
i powiązane z nim zajęcia zandroidx.wear.compose.material.ScalingLazyColumn
doandroidx.wear.compose.foundation.lazy.ScalingLazyColumn
. Aby korzystać z wersjiFoundation.Lazy
, zaktualizuj aplikację.SwipeToReveal
– dodaliśmy eksperymentalną obsługę gestu przesuń, aby wyświetlić jako sposób dostępu do działań dodatkowych, uzupełniając dotychczasowy wzorzec „długie naciśnięcie”.Stepper
– ma teraz przeciążenie z dodatkowym parametremenableRangeSemantics
, który umożliwia wyłączenie domyślnej semantyki zakresu.Previews
– dodaliśmy te niestandardowe adnotacje do wyświetlania podglądu funkcji kompozycyjnych na ekranach Wear:WearPreviewSmallRound
wyświetla podgląd funkcji kompozycyjnej na małym, okrągłym urządzeniu;WearPreviewLargeRound
wyświetla podgląd funkcji kompozycyjnej na dużym, okrągłym urządzeniu;WearPreviewSquare
wyświetla podgląd funkcji kompozycyjnej na kwadratowym urządzeniu. Oprócz tego adnotacje dotyczące podglądu i podglądu wielu elementów:WearPreviewFontScales
wyświetla podgląd funkcji kompozycyjnych na urządzeniu do noszenia z różnymi rozmiarami czcionek, aWearPreviewDevices
wyświetla podgląd funkcji kompozycyjnych na różnych urządzeniach do noszenia.- Dodaliśmy do Wear Compose wartość
DefaultTextStyle
, która domyślnie ustawia właściwośćPlatformTextStyle.includeFontPadding
na wartość „true” (jest to obecne ustawienie). Dzięki temu będziemy mogli zsynchronizować domyślne wyłączanie dopełniania czcionek z bibliotekami Compose we wczesnej wersji alfa 1.3. Więcej informacji znajdziesz w wersji 1.2.0-alpha10.
Nowe funkcje
- Dodaliśmy eksperymentalną obsługę wyłączonego skalowania i animacji zanikania, gdy włączone jest ustawienie reduce_motion. (I58024)
Poprawki błędów
- Ulepszona dokumentacja
angularWidthDp
wCurvedSize.kt
(Iab75c) SwipeDismissableNavHost
rejestruje teraz ostrzeżenie z potencjalnymi przyczynami pustego stosu wstecznego. Zapobiega to nieoczekiwanym awariom spowodowanym przez błądIllegalArgumentException
, który był zgłaszany, gdy stos wsteczny był pusty. (I04a81, b/277700155)
Wersja 1.2.0-alpha10
10 maja 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-alpha10
Wersja 1.2.0-alpha10 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy obsługę funkcji Przesuń, aby wyświetlić, która umożliwia dostęp do działań dodatkowych. Ten wzorzec uzupełnia wzorzec „długiego naciśnięcia”, czyli dotychczasowy sposób, w jaki użytkownik mógł wyświetlać (inne) działania dodatkowe. (I60862)
Zmiany w interfejsie API
- Dodaliśmy
RevealScope
do komponentów kompozycyjnych działań wSwipeToReveal
, co daje dostęp do przesunięcia, przy którym ujawniają się dodatkowe działania. (I3fd56)
Poprawki błędów
- Rozwiązaliśmy problem z
ScalingLazyColumn
, który po przesunięciu pozostawał w interfejsie Wear API 33 (Ic4599). - Wprowadziliśmy ulepszenia wydajności
PositionIndicator
, aby zmniejszyć zacinanie się. (I35e92) - Naprawiliśmy błąd w komponencie Chip i
CompactChip
, który powodował, że rola semantyczna nie była już ustawiana naRole.Button
. (I93f91, b/277326264)
Znane problemy
Wykryliśmy błąd w Android Studio, który powoduje niepowodzenie renderowania podglądu, gdy jest on oznaczony adnotacjami @WearPreviewDevices i @WearPreviewFontScales. Wkrótce udostępnimy poprawkę. Pamiętaj, że pozostałe adnotacje podglądu Wear działają zgodnie z przeznaczeniem w Android Studio Giraffe 2022.3.1 i nowszych.
W wersji 1.2.0-alpha07 dodaliśmy do Wear Compose element DefaultTextStyle, zachowując dotychczasową wartość PlatformTextStyle.includeFontPadding jako true. Więcej informacji znajdziesz w artykule Poprawianie dopełnienia czcionki w Compose. W wersji alfa 1.3 zmienimy styl DefaultTextStyle, aby wyłączyć dopełnienie czcionki i zapewnić spójność na całej platformie Androida. Rozwiąże to problem z obcinaniem tekstu przy dużych rozmiarach czcionki. Może to też wpłynąć na układy ekranu, więc testy zrzutów ekranu będą wymagać aktualizacji. Na przykład w przypadku dużych rozmiarów czcionki tekst jest tu obcięty:

- Gdy dopełnienie czcionki jest wyłączone, nie jest już widoczny:

Nowe ustawienie można teraz zastosować, zastępując typografię w motywie – zobacz przykładowy kod.
Wersja 1.2.0-alpha09
19 kwietnia 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-alpha09
Wersja 1.2.0-alpha09 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaj
angularSizeDp
do interfejsuCurvedModifier
API, aby ustawić szerokość kątową w DP (I89a52)
Poprawki błędów
- Rozwiązaliśmy problemy z dostępnością w naszych wersjach demonstracyjnych selektora czasu(Id0eb7).
Wersja 1.2.0-alpha08
5 kwietnia 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-alpha08
Wersja 1.2.0-alpha08 zawiera te zmiany.
Zmiany w interfejsie API
- Zmieniliśmy nazwę
ExpandableItemsState
naExpandableState
. (If85ea) - Dodaliśmy element
expandableButton
, aby uprościć tworzenie przycisku, który zwija się po rozwinięciu treści. Zaktualizowaliśmy też przykłady elementów rozwijanych. (Iae309)
Poprawki błędów
- Ulepszone rozwijane przykłady, które pokazują więcej możliwości. Zmodyfikowano animację
expandableItem
, aby jej zawartość była wyśrodkowana przez cały czas trwania animacji. (I2f637) - Zaktualizowano
ToggleControls
, aby uniknąć dodatkowych ponownych kompozycji podczas ręcznego animowania kolorów za pomocą stanu. (I5d319)
Wersja 1.2.0-alpha07
22 marca 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-alpha07
Wersja 1.2.0-alpha07 zawiera te zmiany.
Zmiany w interfejsie API
- Przenieśliśmy komponenty rozwijanego elementu (dodane w wersji 1.2.0-alpha06) z biblioteki Material do biblioteki Foundation, ponieważ nie miały one znaczącego odniesienia do
MaterialTheme
. (Ib0525)
Poprawki błędów
- Naprawiliśmy błąd powodujący awarię ekranu korzystającego z
PickerGroup
, zapewniając, żePickerGroup
prawidłowo obsługuje fokus, gdy żaden selektor nie jest aktywny. Dodaliśmy też obsługę przewijania RSB w naszych wersjach demonstracyjnych selektora. (If8c19) - Ulepszyliśmy przejścia w oknach – przejście wprowadzające jest teraz płynniejsze i dopasowane do przejścia końcowego. (Ib5af9)
- Dodaliśmy do Wear Compose wartość
DefaultTextStyle
, która domyślnie ustawia właściwośćPlatformTextStyle.includeFontPadding
na wartość „true” (jest to obecne ustawienie). Pozwoli nam to w przyszłości zsynchronizować domyślne wyłączanie dopełniania czcionki z bibliotekami Compose – więcej informacji znajdziesz w artykule Naprawianie dopełniania czcionki w Compose. (I2aee8) - Cofnięto zależność podglądu
UpsideDownCake
za pomocą activity-compose, która blokowała publikowanie aplikacji w Sklepie Google Play. (I6443d)
Wersja 1.2.0-alpha06
8 marca 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-alpha06
Wersja 1.2.0-alpha06 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaj komponent
CurvedBox
, który umieszcza komponenty jeden na drugim w zakrzywionym świecie. (I29200) - Dodano rozwijane elementy – 2 nowe komponenty obsługujące grupę rozwijanych elementów w
ScalingLazyColumn
lub pojedynczy rozwijany element, np. tekst, w którym zwiększa się liczba wierszy. (I95dd5) - Dodaliśmy te niestandardowe adnotacje do podglądu funkcji kompozycyjnych na ekranach Wear:
WearPreviewSmallRound
wyświetla podgląd funkcji kompozycyjnej na małym, okrągłym urządzeniu;WearPreviewLargeRound
wyświetla podgląd funkcji kompozycyjnej na dużym, okrągłym urządzeniu;WearPreviewSquare
wyświetla podgląd funkcji kompozycyjnej na kwadratowym urządzeniu. Oprócz tego adnotacje dotyczące podglądu i podglądu wielu elementów:WearPreviewFontScales
wyświetla podgląd funkcji kompozycyjnych na urządzeniu do noszenia z różnymi rozmiarami czcionek, aWearPreviewDevices
wyświetla podgląd funkcji kompozycyjnych na różnych urządzeniach do noszenia. Aby korzystać z tych podglądów, musisz używać najnowszej wersji Androida Studio (Giraffe Canary 6) lub nowszej. Pamiętaj, że jeśli te adnotacje nie odpowiadają Twoim potrzebom, możesz nadal używać podglądu i dostosowywać go za pomocą parametrów. (I397ff) - Oznaczyliśmy
HierarchicalFocusCoordinator
jako eksperymentalną, ponieważ ze względu na szerokie zastosowanie jest ona kandydatem do przeniesienia do podstawowych bibliotek Compose. (I3a768)
Poprawki błędów
- Usunęliśmy błąd w
HierarchicalFocusCoordinator
. Jeśli lambda przekazana dla parametrufocusEnabled
zostanie zmieniona, używamy teraz nowej. (Icb353) - Zaktualizowaliśmy domyślny kolor wyłączonych treści na kolor tła, gdy jako tło w
Button
,CompactButton
,Chip
,CompactChip
iToggleButton
używane są kolory podstawowe. Poprawia to kontrast, co ułatwia korzystanie z usługi osobom z niepełnosprawnościami. (I527cc)
Wersja 1.2.0-alpha05
22 lutego 2023 roku
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-alpha05
Wersja 1.2.0-alpha05 zawiera te zmiany.
Zmiany w interfejsie API
- Zaktualizowano interfejs
PickerGroup
API, aby umożliwić opcjonalne propagowanie minimalnych ograniczeń do komponentu. Jeśli ma wartość „true”, minimalne ograniczenia przekazane z elementu kompozycyjnego nadrzędnego będą dozwolone w przypadku elementuPickerGroup
. Jeśli ma wartość „false”,PickerGroup
zresetuje minimalne ograniczenia. (I3e046) - Dodaliśmy do interfejsu Picker API parametr
animateScrollToOption
, aby obsługiwać programowe animowanie określonej opcji selektora (I6fe67).
Poprawki błędów
- Zaktualizowaliśmy
HorizontalPageIndicator
, aby obsługiwać układy od prawej do lewej. (Ia4359) - Dodano testy zrzutów ekranu dla układu od prawej do lewej w
HorizontalPageIndicator
(I6fbb8) - Dodano kolejne testy do
SwipeDismissableNavHostTest
, które korzystają zTestNavHostController
(I61d54)
Wersja 1.2.0-alpha04
8 lutego 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-alpha04
Wersja 1.2.0-alpha04 zawiera te zmiany.
Nowe funkcje
PickerGroup
do obsługi wielu selektorów jednocześnie za pomocą interfejsu API fokusu. Zarządza on przenoszeniem fokusu między różnymi selektorami, umożliwia automatyczne wyśrodkowywanie selektorów na podstawie parametrów i pozwala programistom zmieniać fokus między różnymi selektorami podczas obsługi zdarzeń z grupy. W trybie TalkBack elementPickerGroup
obsługuje zaznaczenie przez przeniesienie zaznaczenia z grupy na wybrany selektor. (I60840)
Zmiany w interfejsie API
- Dodaliśmy do komponentu Stepper przeciążenie z dodatkowym parametrem
enableRangeSemantics
, aby ułatwić wyłączanie domyślnej semantyki zakresu (Ia61d4).
Poprawki błędów
- Zezwalaj na zagnieżdżanie elementu
ScalingLazyColumn
na stronie przewijanej w poziomie (Iec3f8, b/266555016) - Ulepszenie dokumentacji Stepper i
StepperTest
oczyszczenie testów. (Ic118e) - Zaktualizowano zależność
androidx.navigation
do wersji 2.5.3 (If58ed)
Wersja 1.2.0-alpha03
25 stycznia 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-alpha03
Wersja 1.2.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Przenieśliśmy
ScalingLazyColumn
(i powiązane z nim klasy) zandroidx.wear.compose.material.ScalingLazyColumn
doandrdoidx.wear.compose.foundation.lazy.ScalingLazyColumn
(przykład migracji znajdziesz tutaj). Nowa lokalizacja jest bardziej zbliżona do lokalizacjicompose.foundation.lazy.LazyColumn
i bardziej naturalna, ponieważ nie jest to komponent Material o określonym stylu. Zmiana jest wprowadzana teraz w ramach przygotowań do nowej biblioteki Material3, nad którą będziemy pracować równolegle z obecną biblioteką Material. (I060e7)
W ramach migracji ScalingLazyColumn
z Material do Foundation.Lazy
wprowadzamy te zmiany:
- Interfejsy API kierowane na Material
ScalingLazyColumn
zostały wycofane. Zaktualizuj je do wersjiFoundation.Lazy ScalingLazyColumn
.PositionIndicator
Dodano też poleanchorType
doScalingLazyListLayoutInfo
. (I29d95) ScalingLazyColumn
został oznaczony jako wycofany w pakiecie Wear Compose Material (I16d34).- Zaktualizowaliśmy modyfikator
ScrollAway
, aby używaćScalingLazyListState
z Wear ComposeFoundation.Lazy
, i wycofaliśmy przeciążenie, które pobierałoScalingLazyListState
z Wear Compose Material. (Ifc42c) - Zaktualizowaliśmy interfejsy Dialog API, aby korzystały z
ScalingLazyListState
zFoundation.Lazy
. Wycofaliśmy też przeciążenia, które używały elementu MaterialScalingLazyListState
(Ic8960). - Zaktualizowaliśmy interfejsy Picker API, aby używać
ScalingParams
zamiastFoundation.Lazy
, i wycofaliśmy przeciążenia, które korzystały zScalingParams
Material. (Idc3d8)
Poprawki błędów
- Naprawiliśmy błąd, który powodował niepotrzebne ponowne kompozycje w
ScalingLazyListState.centerItemIndex
. Zapewniliśmy, że aktualizacje są przesyłane tylko wtedy, gdy wartość faktycznie się zmienia (Ia9f38). - Zwiększyliśmy wydajność
SwipeToDismissBox
(I3933b). - Dodano testy porównawcze dla
ScalingLazyColumn
w Wear Compose Foundation (Ie00f9) - Zaktualizowaliśmy niektóre wewnętrzne metody klas
ScalingLazyColumn
w Material, aby używać ich odpowiedników zFoundation.Lazy
(I38aab). - Naprawiliśmy niektóre problemy w testach selektora i dodaliśmy więcej testów sprawdzających przewijanie z przesunięciem (I6ac34).
- Przenieśliśmy
ScalingLazyColumn
demonstracje integracjiFoundation.Lazy
, aby były zależne odFoundation.Lazy
zamiast od MaterialScalingLazyColumn
(Ic6caa). - Do naszej wersji demonstracyjnej
DatePicker
(I961cd) dodaliśmy opcjonalne parametryfromDate/toDate
.
Wersja 1.2.0-alpha02
11 stycznia 2023 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-alpha02
Wersja 1.2.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Testy interfejsu Androida Compose będą teraz uruchamiać przebiegi układu dla każdej klatki podczas wykonywania klatek, aby przejść do stanu bezczynności (np. za pomocą
waitForIdle
). Może to mieć wpływ na testy, które sprawdzają poszczególne klatki animacji układu. (I8ea08, b/222093277) - Do elementu Wear Text dodano parametr
minLines
, aby zapewnić spójne działanie z parametremBasicText
(I24874). CompactChipTapTargetPadding
został udostępniony publicznie, aby pojawiał się w dokumentacji (If1e70, b/234119038).
Poprawki błędów
- Wyłączanie kompilacji wieloplatformowych dla pakietów
wear.compose
(Iad3d7) - Popraw dokumenty w usłudze KDocs dla
scrollToOption
(I6f9a0) PlaceholderState.rememberPlaceholderState()
zaktualizowano, aby używaćrememberUpdatedState
, dzięki czemu stan będzie się aktualizować, jeślionContentReady
lambda. (I02635, b/260343754)- Rozwiązaliśmy problem z drganiem tekstu w komponencie
Picker
, korzystając z nowej strategii kompozycji dodanej doModifier.graphicsLayer
. (I99302) - Naprawiliśmy błąd, który powodował migotanie w naszej wersji demonstracyjnej
DatePicker
(I660bd). - Ulepszyliśmy dostępność wersji demonstracyjnych selektora daty i godziny w formacie 12-godzinnym (I05e12).
- Zaktualizowaliśmy wersje demonstracyjne selektora daty i godziny, aby po odznaczeniu nie podlegały one zmianom RSB (I4aecb).
Wersja 1.2.0-alpha01
7 grudnia 2022 r.
Zostanie wycofaneandroidx.wear.compose:compose-*:1.2.0-alpha01
Wersja 1.2.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Zaktualizowaliśmy eksperymentalną funkcję elementu zastępczego, aby efekt „Wycieranie” był stosowany natychmiast po przygotowaniu treści, a nie po rozpoczęciu kolejnej pętli animacji. Wprowadziliśmy też pewne zmiany w animacjach połysku i wycierania. (I5a7f4)
Zmiany w interfejsie API
- Dodaliśmy
HierarchicalFocusCoordinator
komponent, który umożliwia oznaczanie poddrzew kompozycji jako włączonych lub wyłączonych pod kątem fokusu.(I827cb) - Dodaliśmy nową właściwość, która zastępuje rolę semantyczną elementu
ToggleButton
.(I67132) - Zaktualizowaliśmy
TimeTextDefaults.TimeFormat12Hours
, aby usunąć AM/PM wTimeText
. Spowoduje to zmianę domyślnej wartości parametrówtimeSource
w interfejsieTimeText
API. (I1eb7f) - Rozszerzyliśmy interfejs Picker API, aby poprawić dostępność ekranów z wieloma selektorami. Dodaliśmy nową właściwość
userScrollEnabled
, która określa, czy selektor jest aktywny podczas przewijania przez użytkownika. (I3c3aa)
Poprawki błędów
- Zmieniliśmy domyślną szerokość obramowania elementu
OutlinedButton/OutlinedCompactButton
z 2 dp na 1 dp, aby była zgodna ze specyfikacjami UX. (Icf84d) - Aby zmniejszyć efekt pierwszego elementu dodanego do pustego elementu
ScalingLazyColumn
, który wydaje się przewijać na miejsce, dodaliśmy szacunkową wartośćautoCentering topPadding
, gdy zawartość jest pusta. Ta zmiana oblicza ilość dopełnienia u góry, zakładając, że początkowy element ma wysokość 0 dp. W przypadkuScalingLazyListAnchorType.ItemStart
obliczy to prawidłowy górny odstęp, a w przypadkuScalingLazyListAnchorType.ItemCenter
obliczenie będzie nieprawidłowe, ponieważ do prawidłowego określenia rozmiaru treści potrzebna jest wysokość elementów, co spowoduje niewielki efekt przewijania na miejsce na podstawie rzeczywistej wysokości elementów.(I239a4) - Zaktualizowaliśmy tło zastosowane w animacji
SwipeToDismiss
, aby pasowało do platformy Wear. (I9003e) - Naprawiliśmy obsługę
PositionIndicator
w przypadkuLazyListState
iScalingLazyListState
dla elementów listy o rozmiarze 0, aby uniknąć błędów dzielenia przez zero.(Ic28dd)
Wersja 1.1
Wersja 1.1.2
8 lutego 2023 r.
androidx.wear.compose:compose-foundation:1.1.2
, androidx.wear.compose:compose-material:1.1.2
i androidx.wear.compose:compose-navigation:1.1.2
są zwalniane. Wersja 1.1.2 zawiera te zmiany.
Poprawki błędów
- Naprawiliśmy błąd, który powodował niepotrzebne ponowne kompozycje w
ScalingLazyListState.centerItemIndex
. Zapewniliśmy, że aktualizacje są przesyłane tylko wtedy, gdy wartość faktycznie się zmienia (Ia9f38).
Wersja 1.1.1
11 stycznia 2023 r.
androidx.wear.compose:compose-foundation:1.1.1
, androidx.wear.compose:compose-material:1.1.1
i androidx.wear.compose:compose-navigation:1.1.1
są zwalniane. Wersja 1.1.1 zawiera te zmiany.
Poprawki błędów
PlaceholderState.rememberPlaceholderState()
zaktualizowano, aby używaćrememberUpdatedState
, dzięki czemu stan będzie się aktualizować, jeślionContentReady
lambda. (I02635, b/260343754)
Wersja 1.1.0
7 grudnia 2022 r.
androidx.wear.compose:compose-foundation:1.1.0
, androidx.wear.compose:compose-material:1.1.0
i androidx.wear.compose:compose-navigation:1.1.0
są zwalniane. Wersja 1.1.0 zawiera te zmiany.
Ważne zmiany od wersji 1.0.0
- Stabilna wersja Compose for Wear OS 1.1.0 (więcej informacji).
- Listę najważniejszych zmian w Wear Compose 1.1 znajdziesz w informacjach o wersji (Compose for Wear OS 1.1 Beta01).
Nowe funkcje
- Zaktualizowaliśmy eksperymentalną funkcję elementu zastępczego, aby efekt „Wycieranie” był stosowany natychmiast po przygotowaniu treści, a nie po rozpoczęciu kolejnej pętli animacji. Wprowadziliśmy też pewne zmiany w animacjach połysku i wycierania. (I5a7f4)
Poprawki błędów
- Zmieniliśmy domyślną szerokość obramowania elementu
OutlinedButton/OutlinedCompactButton
z 2 dp na 1 dp, aby była zgodna ze specyfikacjami UX. (Icf84d) - Aby zmniejszyć efekt pierwszego elementu dodanego do pustego elementu
ScalingLazyColumn
, który wydaje się przewijać na miejsce, dodaliśmy szacunkową wartośćautoCentering topPadding
, gdy zawartość jest pusta. Ta zmiana oblicza ilość dopełnienia u góry, zakładając, że początkowy element ma wysokość 0 dp. W przypadkuScalingLazyListAnchorType.ItemStart
obliczy to prawidłowy górny odstęp, a w przypadkuScalingLazyListAnchorType.ItemCenter
obliczenie będzie nieprawidłowe, ponieważ do prawidłowego określenia rozmiaru treści potrzebna jest wysokość elementów, co spowoduje niewielki efekt przewijania na miejsce na podstawie rzeczywistej wysokości elementów.(I239a4) - Zaktualizowaliśmy tło animacji
SwipeToDismiss
, aby pasowało do platformy Wear.(I9003e) - Naprawiliśmy obsługę
PositionIndicator
w przypadkuLazyListState
iScalingLazyListState
dla elementów listy o rozmiarze 0, aby uniknąć błędów dzielenia przez zero.(Ic28dd)
Wersja 1.1.0-rc01
9 listopada 2022 r.
androidx.wear.compose:compose-foundation:1.1.0-rc01
, androidx.wear.compose:compose-material:1.1.0-rc01
i androidx.wear.compose:compose-navigation:1.1.0-rc01
są zwalniane. Wersja 1.1.0-rc01 zawiera te zmiany.
Poprawki błędów
- Dodaliśmy reguły profilu podstawowego dla tych krajów:
Placeholders
,ScrollAway
,RadioButton
,Switch
,Checkbox
,OutlinedButton
,OutlinedCompactButton
,OutlinedChip
iOutlinedCompactChip
. (I8249c) - Naprawiliśmy błąd w funkcji
Modifier.scrollAway
, dzięki czemu jeśli określony elementitemIndex
jest nieprawidłowy (np. indeks elementu jest poza zakresem), elementTimeText
będzie nadal wyświetlany. (I2137a) - Zaktualizowaliśmy
SwipeToDismissBox
animację, aby była zgodna z implementacją na platformie. Po początkowej animacji ściśnięcia ekran przesuwa się w prawo po wywołaniu zamknięcia. (I41d34) - W celu optymalizacji zaktualizowaliśmy
Modifier.scrollAway
, aby odczytywać tylkoscrollState
w bloku miary, co pozwala uniknąć ponownego komponowania modyfikatora po każdym ponownym pomiarze. (I4c6f1) - Dodaliśmy dokumentację i przykłady do elementów zastępczych, aby pokazać prawidłową kolejność dla
Modifier.placeholder
iModifier.placeholderShimmer
, gdy są one stosowane w tym samym komponencie. (Ie96f4, b/256583229) - Zmieniliśmy domyślną szerokość obramowania elementu
OutlinedCompactChip/OutlinedChip
z 2 dp na 1 dp, aby była zgodna ze specyfikacjami UX. (Ib3d8e) - Naprawiliśmy błąd w
rememberPickerState
, który powodował, że zaktualizowane dane wejściowe nie były zapisywane, więc po zmianach w danych wejściowych funkcje kompozycyjne nie były aktualizowane. (I49ff6, b/255323197) - Wprowadziliśmy kilka zmian w interfejsie użytkownika w przypadku elementów zastępczych: 1) zmieniliśmy gradient połysku na 1, 5-krotność rozmiaru ekranu, 2) dodaliśmy efekt wygładzania (krzywa Beziera) do progresji połysku i 3) przyspieszyliśmy animację wymazywania (250 ms). (Id29c1)
- Naprawiliśmy błąd interfejsu w efekcie wymazywania obiektu zastępczego, w którym tła komponentów Chip i Card były wymazywane nieco wcześniej, ponieważ nie uwzględniały pozycji komponentu na ekranie. (I2c7cb)
- Zaktualizowaliśmy rysowanie tła elementu zastępczego, aby w miarę możliwości łączyć kolory, a nie nakładać ich na siebie. Zmniejsza to ryzyko mieszania alfa różnych przyciętych warstw, które mogłoby powodować przenikanie kolorów tła na krawędziach elementu zastępczego. (I2ea26)
- Poprawiliśmy obliczanie wartości
ScalingLazyListState.centerItemIndex/centerItemOffset
, tak aby w przypadku, gdy 2 produkty znajdują się po obu stronach linii środkowej obszaru wyświetlania, zacenterItem
uznawany był ten, który jest bliżej. (I30709, b/254257769) - Naprawiliśmy błąd w
ScalingLazyListState.layoutInfo.visibleItemsInfo
, który podczas inicjalizacjiScalingLazyColumn
raportował nieprawidłowe przesunięcia. Teraz zwracana będzie pusta lista, dopóki wszystkie elementy listy nie będą widoczne i nie będą miały prawidłowych przesunięć. SprawdzenieScalingLazyListState.layoutInfo.visibleItemsInfo.isNotEmpty()
potwierdzi, że inicjowanieScalingLazyColumn
zostało zakończone i elementy są widoczne. (I3a3b8)
Wersja 1.1.0-beta01
24 października 2022 r.
androidx.wear.compose:compose-foundation:1.1.0-beta01
, androidx.wear.compose:compose-material:1.1.0-beta01
i androidx.wear.compose:compose-navigation:1.1.0-beta01
są zwalniane. Wersja 1.1.0-beta01 zawiera te zmiany.
Nowości w Compose na Wear OS 1.1
Wersja 1.1.0-beta01 biblioteki Compose na Wear OS wskazuje, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany.
- Wersja Wear Compose 1.1 zawiera te nowe funkcje:
- Selektor – ulepszenia ułatwień dostępu w selektorze, dzięki którym ekrany selektora wielokrotnego są dostępne dla czytników ekranu, a opis treści jest dostępny.
- Parametr
contentDescription
jest teraz używany tylko w przypadku wybranej opcji selektora i przyjmuje ciąg znaków z wartością null (w poprzedniej wersji konieczne było przekazanie mapowania z opcji na opis treści, ale używana była tylko wybrana opcja). - Elementy selektora są teraz zawsze wyśrodkowane, co rozwiązuje problem polegający na tym, że ustawienie wartości
gradientRatio
na zero powodowało zmianę wyrównania. Chip/ToggleChip
– zaktualizowaliśmy domyślne gradienty dlaChip/ToggleChip
, aby dostosować je do najnowszej specyfikacji UX. WartośćChipDefaults.gradientBackgroundChipColors
została zmieniona z 32,5% na 50% koloru podstawowego.Chip/ToggleChip
– Dodano przeciążenia do modyfikowania kształtów elementów.Chip/Button/ToggleButton
– Dodaliśmy nowy styl konturowy dla elementów Chip i Button oraz nowe funkcje kompozycyjneOutlinedChip
iOutlinedButton
, które zapewniają przezroczysty elementChip/Button
z cienką obwódką.- Karta – zaktualizowano domyślne gradienty na kartach, aby dostosować je do najnowszej specyfikacji UX. Zaktualizowano
CardDefaults.cardBackgroundPainter
, aby zaczynał się od 30% koloru podstawowego i kończył na 20% koloruonSurfaceVariant
(wcześniej było to 20% do 10% koloruonSurfaceVariant
). ZmienionoToggleChip.toggleChipColors
z gradientu liniowego 75% koloru powierzchni na 32,5% koloru podstawowego do 0% koloru powierzchni do 50% koloru podstawowego. Button/ToggleButton
– Dodano właściwości do modyfikowania kształtów przycisków.- Motyw – zaktualizowaliśmy kilka domyślnych kolorów w
MaterialTheme
, aby poprawić dostępność, ponieważ oryginalne kolory nie miały wystarczającego kontrastu, co utrudniało użytkownikom odróżnianie tła elementów, kart i przycisków od koloru tła motywu. InlineSlider/Stepper
– Dodano role przycisków, abyTalkback
mogła rozpoznawać je jako przyciski.- Scaffold -
PositionIndicator
jest teraz umieszczony i rozmiarowany tak, aby zajmował tylko potrzebną przestrzeń. Jest to przydatne np. w przypadku dodania do niego informacji semantycznych. Czytnik ekranu TalkBack uzyskuje teraz prawidłowe granice elementuPositionIndicator
na ekranie. CurvedText/TimeText
– dodanoModifier.scrollAway
, które przewija element w pionie tak, aby był widoczny lub niewidoczny, w zależności od stanu przewijania (z przeciążeniami do pracy zColumn
,LazyColumn
iScalingLazyColumn
). FunkcjaScrollAway
jest zwykle używana do przewijania elementuTimeText
tak, aby był niewidoczny, gdy użytkownik zaczyna przewijać listę elementów w górę.CurvedText/TimeText
– dodaliśmy obsługę właściwościfontFamily
,fontStyle
ifontSynthesis
wCurvedTextStyle
, które można stosować w przypadkucurvedText
ibasicCurvedText
.CurvedText/TimeText
– dodanofontWeight
do konstruktora i metody kopiowania wCurvedTextStyle
ToggleControls
– dodano animowane przełącznikiCheckbox
,Switch
iRadioButton
do użycia zToggleChip
iSplitToggleChip
. Można ich używać zamiast statycznych ikon dostarczanych przezToggleChipDefaults
(switchIcon
,checkboxIcon
iradioIcon
).- Obiekt zastępczy – dodano eksperymentalną obsługę obiektów zastępczych. Zawiera 3 różne efekty wizualne, które zostały zaprojektowane tak, aby ze sobą współdziałać.
- Po pierwsze, efekt pędzla tła zastępczego używany w kontenerach, takich jak Chip i Cards, do rysowania na normalnym tle podczas oczekiwania na załadowanie treści.
- Po drugie, modyfikator (
Modifier.placeholder()
), który rysuje widżet zastępczy w kształcie stadionu na wczytywanych treściach. - Po trzecie, efekt gradientu lub połysku modyfikatora (
Modifier.placeholderShimmer()
), który jest rysowany na wierzchu innych efektów, aby poinformować użytkowników, że czekamy na załadowanie danych.- Wszystkie te efekty są skoordynowane i zsynchronizowane.
- Zaktualizowano zależności podstawowe Compose z wersji 1.2 do 1.3
Zmiany w interfejsie API
- Parametry czcionki (
fontFamily
,fontWeight
,fontStyle
ifontSynthesis
) można teraz określać bezpośrednio jako parametry elementucurvedText
(Idc422).
Poprawki błędów
curveText
ibasicCurvedText
będą teraz prawidłowo działać z funkcją TalkBack (mają powiązany z nimi węzeł compose-ui o odpowiednim rozmiarze i położeniu, ale pusty, który używa tekstu jako opisu treści) (I7af7c, b/210721259).- Poprawka błędu w
Picker
, gdyPickerState.repeatedItems = false
, aby dodać wyraźne ustawienie parametrów autoCentering w wewnętrznymScalingLazyColumn
selektorów, aby umożliwić przewijanie opcji zerowej na środek widoku. (I8a4d7)
Wersja 1.1.0-alpha07
5 października 2022 r.
androidx.wear.compose:compose-foundation:1.1.0-alpha07
, androidx.wear.compose:compose-material:1.1.0-alpha07
i androidx.wear.compose:compose-navigation:1.1.0-alpha07
są zwalniane. Wersja 1.1.0-alpha07 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy eksperymentalną obsługę elementów zastępczych. Zawiera 3 różne efekty wizualne, które zostały zaprojektowane tak, aby ze sobą współdziałać. Po pierwsze, efekt pędzla tła zastępczego używany w kontenerach, takich jak Chip i Cards, do rysowania na normalnym tle podczas oczekiwania na załadowanie treści. Po drugie, modyfikator (
Modifier.placeholder()
), który rysuje widżet zastępczy w kształcie stadionu na wczytywanych treściach. Po trzecie, efekt gradientu lub połysku modyfikatora (Modifier.placeholderShimmer()
), który jest rysowany na wierzchu innych efektów, aby poinformować użytkowników, że czekamy na załadowanie danych. Wszystkie te efekty są skoordynowane i zsynchronizowane. (I3c339)
Zmiany w interfejsie API
- Dodano obsługę
fontWeight
,fontFamily
,fontStyle
ifontSynthesis
wCurvedTextStyle
, z których można korzystać na urządzeniachcurvedText
ibasicCurvedText
. Za pomocą tych parametrów możesz określić czcionkę i styl, które mają być używane w zakrzywionym tekście.(Iaa1a8),(I72759) - Zaktualizowano parametr przesunięcia
Modifier.scrollAway
na Dp, aby zachować spójność z parametremModifier.offset
(wcześniej był podawany w pikselach). Został też przekształcony wLayoutModifier
w celu zwiększenia wydajności. (I9f94b) - W ramach nowego interfejsu API do sterowania przełącznikami zmieniliśmy nazwę
RadioButton’s circleColor
naringColor
. (I28fa9) - Dodaliśmy animowane przełączniki
Checkbox
,Switch
iRadioButton
do użycia zToggleChip
iSplitToggleChip
. Można ich używać zamiast ikon statycznych udostępnianych przezToggleChipDefaults
(switchIcon
,checkboxIcon
iradioIcon
). (I8a8c4)
Wersja 1.1.0-alpha06
21 września 2022 r.
androidx.wear.compose:compose-foundation:1.1.0-alpha06
, androidx.wear.compose:compose-material:1.1.0-alpha06
i androidx.wear.compose:compose-navigation:1.1.0-alpha06
są zwalniane. Wersja 1.1.0-alpha06 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy funkcję
Modifier.scrollAway
, która przewija element w pionie w górę lub w dół w zależności od stanu przewijania (z przeciążeniami do pracy z funkcjamiColumn
,LazyColumn
iScalingLazyColumn
). FunkcjaScrollAway
jest zwykle używana do przewijania elementuTimeText
w dół, gdy użytkownik zaczyna przewijać listę elementów w górę. (I61766)
Poprawki błędów
- Element
PositionIndicator
jest teraz umieszczony i rozmiarowany tak, aby zajmował tylko potrzebną przestrzeń. Jest to przydatne np. w przypadku dodania do niego informacji semantycznych. Czytnik ekranu TalkBack uzyskuje teraz prawidłowe granice elementuPositionIndicator
na ekranie. (Ie6106, b/244409133)
Wersja 1.1.0-alpha05
7 września 2022 roku
androidx.wear.compose:compose-foundation:1.1.0-alpha05
, androidx.wear.compose:compose-material:1.1.0-alpha05
i androidx.wear.compose:compose-navigation:1.1.0-alpha05
są zwalniane. Wersja 1.1.0-alpha05 zawiera te zmiany.
Poprawki błędów
- Do elementów
InlineSlider
iStepper
dodano role przycisków, aby Talkback mógł je rozpoznawać jako przyciski. (Icb46c, b/244260275) - Poprawiliśmy kolejność osi Z w przypadku wskaźników pozycji i strony w komponencie Scaffold. Wskaźniki będą teraz wyświetlane nad winietą, więc nie będą przez nią zasłaniane. (Ib988f, b/244207528)
Wersja 1.1.0-alpha04
24 sierpnia 2022 r.
androidx.wear.compose:compose-foundation:1.1.0-alpha04
, androidx.wear.compose:compose-material:1.1.0-alpha04
i androidx.wear.compose:compose-navigation:1.1.0-alpha04
są zwalniane. Wersja 1.1.0-alpha04 zawiera te zmiany.
Zmiany w interfejsie API
- Zaktualizowaliśmy kilka domyślnych kolorów w motywie MaterialTheme, aby poprawić dostępność, ponieważ oryginalne kolory nie miały wystarczającego kontrastu, co utrudniało użytkownikom odróżnianie tła elementów, kart i przycisków od koloru tła motywu. Zaktualizowane kolory to surface(0xFF202124->0xFF303133), onPrimary(0xFF202124->0xFF303133), onSecondary(0xFF202124->0xFF303133), primaryVariant(0xFF669DF6->0xFF8AB4F8) i onError(0xFF202124->0xFF000000). Zmiany kolorów, choć stosunkowo subtelne, mogą mieć wpływ na dotychczasowe testy zrzutów ekranu. (81ab09)
Poprawki błędów
- Naprawiono błąd logiczny w
ScalingLazyColumn
, który mógł powodować, że listy z niewielką liczbą elementów (zwykle dokładnie 2) nie kończyły inicjowania i w rezultacie były przezroczyste. (504347)
Wersja 1.1.0-alpha03
10 sierpnia 2022 r.
androidx.wear.compose:compose-foundation:1.1.0-alpha03
, androidx.wear.compose:compose-material:1.1.0-alpha03
i androidx.wear.compose:compose-navigation:1.1.0-alpha03
są zwalniane. Wersja 1.1.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy nowy styl konturowy dla elementów
Chips
iButtons
oraz nowe komponentyOutlinedChip
iOutlinedButton
, które zapewniają przezroczysty elementChip/Button
z cienką obwódką. (Id5972)
Zmiany w interfejsie API
- Dodano przeciążenia do modyfikowania kształtów przycisków (Icccde)
Poprawki błędów
- Poprawiliśmy rozmiar obszaru przełącznika w
ToggleChip
, ponieważ nie był zgodny ze specyfikacją UX. Specyfikacja UX wymaga odstępu 4 dp między etykietą a obszarem ikony przełącznika o wymiarach 24 x 24 dp, co daje łączną szerokość 28 dp. Jednak wdrożenie nieprawidłowo podaje obszar przełączania 36x24.dp. Spowoduje to zmniejszenie obszaru etykiety tekstowej o 8 dp. UWAGA: ta poprawka błędu zapewnia dodatkowe miejsce na etykietę tekstową, co może (pozytywnie) wpłynąć na układ tekstu w przypadku tekstu, który nie mieści się w polu. Jeśli masz testy zrzutów ekranu zawierająceToggleChips
, może być konieczne ich zaktualizowanie. (I514c8, b/240548670)
Wersja 1.1.0-alpha02
27 lipca 2022 roku
androidx.wear.compose:compose-foundation:1.1.0-alpha02
, androidx.wear.compose:compose-material:1.1.0-alpha02
i androidx.wear.compose:compose-navigation:1.1.0-alpha02
są zwalniane. Wersja 1.1.0-alpha02 zawiera te zmiany.
Nowe funkcje
- Zmieniliśmy zależności Compose na Wear OS od podstawowych bibliotek Compose z wersji 1.2.0 na 1.3.0-alpha0X.
Zmiany w interfejsie API
- Dodano przeciążenia do modyfikowania kształtów elementów (I02e87)
Poprawki błędów
- Animacja widoczności winiety podczas wyświetlania i ukrywania okna została zmieniona, aby była zgodna z dotychczasową animacją skalowania. (Ida33e)
- Naprawiliśmy błąd, który w niektórych przypadkach powodował dzielenie przez zero podczas przewijania. (I86cb6)
- Naprawiliśmy błąd w
ChipDefaults.childChipColor()
, aby kolor tła wyłączonego elementu był całkowicie przezroczysty. (I2b3c3, b/238057342)
Wersja 1.1.0-alpha01
29 czerwca 2022 r.
androidx.wear.compose:compose-foundation:1.1.0-alpha01
, androidx.wear.compose:compose-material:1.1.0-alpha01
i androidx.wear.compose:compose-navigation:1.1.0-alpha01
są zwalniane. Wersja 1.1.0-alpha01 zawiera te zmiany.
Zmiany w interfejsie API
- Parametr
contentDescription
selektora jest teraz używany tylko w przypadku wybranej opcji selektora i przyjmuje wartość String z możliwością wartości null (wcześniej konieczne było przekazanie mapowania z opcji na opis treści, ale używana była tylko wybrana opcja). (Ife6a7) - W selektorze wprowadziliśmy ulepszenia dotyczące ułatwień dostępu, dzięki czemu ekrany selektora wielokrotnego można obsługiwać za pomocą czytników ekranu, a opis treści jest dostępny (I64edb).
Poprawki błędów
- Zaktualizowaliśmy reguły profilu podstawowego dołączone do biblioteki Wear Compose (I9c694).
- Poprawiliśmy kierunek gradientu w przypadku elementów w trybie od prawej do lewej. Było od lewego górnego do prawego dolnego rogu, a teraz jest od prawego górnego do lewego dolnego rogu. (Ic2e77)
- Zaktualizowaliśmy domyślne gradienty dla
Chip/ToggleChip/Card
, aby dostosować je do najnowszej specyfikacji UX. WartośćChipDefaults.gradientBackgroundChipColors
została zmieniona z 32,5% na 50% koloru podstawowego.CardDefaults.cardBackgroundPainter
został zaktualizowany tak, aby zaczynał się od 30% koloru podstawowego i kończył na 20% koloruonSurfaceVariant
(wcześniej było to 20% do 10% koloruonSurfaceVariant
).ToggleChip.toggleChipColors
zmienia się z gradientu liniowego od 75% koloru powierzchni do 32,5% koloru podstawowego do 0% koloru powierzchni do 50% koloru podstawowego. (I43bbd) - Dodaliśmy kolor tła (
MaterialTheme.color.surface
) za ikonamiChip/ToggleChips
, które mają gradientowe tło, aby zapewnić ich prawidłową widoczność w mało prawdopodobnym przypadku, gdy za nimi zostanie użyty jasny kolor. (Ibe1a4, b/235937657) - Elementy selektora są teraz zawsze wyśrodkowane, co rozwiązuje problem polegający na tym, że ustawienie wartości
gradientRatio
na zero powodowało zmianę wyrównania. (I712b8)
Wersja 1.0
Wersja 1.0.2
7 września 2022 roku
androidx.wear.compose:compose-foundation:1.0.2
, androidx.wear.compose:compose-material:1.0.2
i androidx.wear.compose:compose-navigation:1.0.2
są zwalniane. Wersja 1.0.2 zawiera te zmiany.
Poprawki błędów
- Poprawiliśmy kolejność osi Z w przypadku wskaźników pozycji i strony w komponencie Scaffold. Wskaźniki będą teraz wyświetlane nad winietą, więc nie będą przez nią zasłaniane. (Ib988f, b/244207528)
Wersja 1.0.1
24 sierpnia 2022 r.
androidx.wear.compose:compose-foundation:1.0.1
, androidx.wear.compose:compose-material:1.0.1
i androidx.wear.compose:compose-navigation:1.0.1
są zwalniane. Wersja 1.0.1 zawiera te zmiany.
Poprawki błędów
- Naprawiono błąd logiczny w
ScalingLazyColumn
, który mógł powodować, że listy z niewielką liczbą elementów (zwykle dokładnie 2) nie kończyły inicjowania i w rezultacie były przezroczyste. (076c61)
Wersja 1.0.0
27 lipca 2022 roku
androidx.wear.compose:compose-foundation:1.0.0
, androidx.wear.compose:compose-material:1.0.0
i androidx.wear.compose:compose-navigation:1.0.0
są zwalniane. Wersja 1.0.0 zawiera te zmiany.
Główne funkcje wersji 1.0.0
- Jest to pierwsza stabilna wersja Compose na Wear OS (więcej informacji).
- Compose for Wear OS opiera się na podstawowych bibliotekach Compose, zapewniając dodatkowe komponenty przeznaczone na urządzenia do noszenia oraz, w odpowiednich przypadkach, alternatywne implementacje podstawowych komponentów Compose dostosowane do tych urządzeń.
- Listę kluczowych komponentów Wear Compose znajdziesz w informacjach o wersji (Compose na Wear OS Beta01).
Poprawki błędów
- Animacja widoczności winiety podczas wyświetlania i ukrywania okna została zmieniona, aby była zgodna z dotychczasową animacją skalowania. (Ida33e)
- Naprawiliśmy błąd, który w niektórych przypadkach powodował dzielenie przez zero podczas przewijania. (I86cb6)
- Naprawiliśmy błąd w
ChipDefaults.childChipColor()
, aby kolor tła wyłączonego elementu był całkowicie przezroczysty. (I2b3c3, b/238057342)
Wersja 1.0.0-rc02
22 czerwca 2022 r.
androidx.wear.compose:compose-foundation:1.0.0-rc02
, androidx.wear.compose:compose-material:1.0.0-rc02
i androidx.wear.compose:compose-navigation:1.0.0-rc02
są zwalniane. Wersja 1.0.0-rc02 zawiera te zmiany.
Poprawki błędów
- Poprawiliśmy kierunek gradientu na kartach w trybie od prawej do lewej. Wcześniej było to od lewego górnego do prawego dolnego rogu, a teraz jest to od prawego górnego do lewego dolnego rogu. (Ic2e77)
- Zaktualizowaliśmy domyślne gradienty dla
Chip/ToggleChip/Card
, aby dostosować je do najnowszej specyfikacji UX. WartośćChipDefaults.gradientBackgroundChipColors
została zmieniona z 32,5% na 50% koloru podstawowego.CardDefaults.cardBackgroundPainter
została zaktualizowana, aby zaczynać się od 30% koloru podstawowego i kończyć na 20%onSurfaceVariant
(wcześniej było to 20–10% koloru onSurfaceVariant).ToggleChip.toggleChipColors
zmienia się z gradientu liniowego od 75% powierzchni do 32,5% koloru podstawowego do 0% powierzchni do 50% koloru podstawowego. (I43bbd) - Dodaliśmy kolor tła (
MaterialTheme.color.surface
) za ikonamiChip/ToggleChips
, które mają gradientowe tło, aby zapewnić ich prawidłową widoczność w mało prawdopodobnym przypadku, gdy za nimi zostanie użyty jasny kolor. (Ibe1a4, b/235937657) - Zaktualizowaliśmy reguły profilu podstawowego dołączone do biblioteki Wear Compose (I9c694).
Wersja 1.0.0-rc01
15 czerwca 2022 r.
androidx.wear.compose:compose-foundation:1.0.0-rc01
, androidx.wear.compose:compose-material:1.0.0-rc01
i androidx.wear.compose:compose-navigation:1.0.0-rc01
są zwalniane. Wersja 1.0.0-rc01 zawiera te zmiany.
Zmiany w interfejsie API
- Interfejsy w bibliotekach Compose są teraz tworzone przy użyciu domyślnych metod interfejsu jdk8 (I5bcf1).
Poprawki błędów
- Usunęliśmy z nagłówka listy wyraźne wywołanie funkcji
fillMaxWidth()
, ponieważ nie jest ono potrzebne i może powodować problemy, jeśli elementfillMaxWidth()
zawiera komponentyListHeader()
iChip()
, ponieważ szerokość będzie się zwiększać lub zmniejszać w miarę przewijania elementówListHeader
.ScalinglazyColumn
(I37144, b/235074035) - Naprawiliśmy błąd w
ScalingLazyColumn
, który mógł powodować nieprawidłowe rysowanie elementów listy do momentu przewinięcia, jeśli element listy o indeksie 0 był wystarczająco duży (w tym dopełnienie) (Ic6159, b/234328517). - Wprowadziliśmy niewielką zmianę w
ScalingLazyColumn
łagodzeniu, gdy elementy docierają do krawędzi ekranu, aby dostosować je do aktualizacji specyfikacji UX. Stare wartoś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 do ikony
CompactChip
dopełnienie, aby jej rozmiar docelowy wynosił co najmniej 48 dp wysokości i była zgodna z wytycznymi dotyczącymi ułatwień dostępu w interfejsie Material Design. Może to wpłynąć na wszystkie układy korzystające zCompactChips
, ponieważ będą zajmować dodatkowe miejsce. (I3d57c)
Wersja 1.0.0-beta03
1 czerwca 2022 r.
androidx.wear.compose:compose-foundation:1.0.0-beta03
, androidx.wear.compose:compose-material:1.0.0-beta03
i androidx.wear.compose:compose-navigation:1.0.0-beta03
są zwalniane. Wersja 1.0.0-beta03 zawiera te zmiany.
Nowe funkcje
- Umożliwiliśmy działanie
ScalingLazyColumn
w trybie@Preview
. (I3b3b6, b/232947354)
Zmiany w interfejsie API
- Zmieniliśmy domyślną wartość właściwości
ScalingLazyColumn.horizontalAlignment
z Start naCenterHorizontally
, aby zapewnić, że gdy elementy listy nie wypełniają całej szerokości kolumny, będą wyrównane w sposób zapewniający maksymalną widoczność. Aby wrócić do poprzedniego działania, ustawhorizontalAlignment = Alignment.Start
.(I9ed4b)
Znane problemy
- Wysokość elementu CompactChip jest mniejsza niż zalecana w wytycznych Material Design dotyczących ułatwień dostępu. Poprawimy to w kolejnej wersji (15 czerwca). Jeśli używasz komponentu CompactChip, wpłynie to na Twoje układy, ponieważ będzie on teraz miał dodatkowe dopełnienie u góry i u dołu. Dostosuj i przetestuj układy lub zapoznaj się z komentarzami dotyczącymi błędów, aby znaleźć obejście umożliwiające korzystanie z dotychczasowego działania. (b/234332135)
Poprawki błędów
- Nowa demonstracja animacji dodawania lub usuwania tekstu początkowego na urządzeniu
TimeText
. (I16d75) - Dodaj testy dla
HorizontalPageIndicator.PagesState
(I64ed0) - Aktualizacja
TimeText
bliższa specyfikacjom UX (Ib7ea1)
Wersja 1.0.0-beta02
18 maja 2022 r.
androidx.wear.compose:compose-foundation:1.0.0-beta02
, androidx.wear.compose:compose-material:1.0.0-beta02
i androidx.wear.compose:compose-navigation:1.0.0-beta02
są zwalniane. Wersja 1.0.0-beta02 zawiera te zmiany.
Nowe funkcje
- Selektor zawsze reaguje na zdarzenia przewijania, nawet w trybie tylko do odczytu. Dzięki temu użytkownicy nie muszą najpierw wybierać selektora, aby móc przewijać. W trybie tylko do odczytu opcje inne niż obecnie wybrana są zasłonięte przez element w
gradientColor
. (I72925) - Zmieniliśmy działanie interfejsu
Chip/ToggleChip/CompactChip/SplitToggleChip
, aby domyślnie nie wykonywał onfillMaxWidth
. Zamiast tego będą się rozszerzać, aby dopasować się do zawartości. Aby zachować poprzednie działanie, dodajmodifier = Modifier.fillMaxWidth()
(I60a2c, b/232206371).
Poprawki błędów
- Konstruktor
CurvedTextStyle
przyjmujący argumentTextStyle
uwzględnia teraz też argumentfontWeight
(może on zostać dodany do konstruktora i metod kopiowania w przyszłych wersjach interfejsu API) (Ieebb9). - Ulepszenia przesuwania od krawędzi. Gdy używana jest funkcja
Modifier.edgeSwipeToDismiss
, a przesunięcie w lewo jest wywoływane z obszaru krawędzi, nie powoduje już zamknięcia po zmianie kierunku przesunięcia na prawo. Wcześniej można było wywołać zamknięcie przez przesunięcie w lewo, a potem w prawo.(I916ea) HorizontalPageIndicator
wyświetla teraz na ekranie do 6 stron. Jeśli jest więcej niż 6 stron, po lewej lub prawej stronie wyświetla się wskaźnik o połowie rozmiaru, a przejście między stronami jest płynne.(I2ac29)- Ulepszone domyślne zachowanie przyciągania na urządzeniach
ScalingLazyColumn
iPicker
(I49539) - Ulepszenia przesuwania od krawędzi. Gdy używana jest funkcja
Modifier.edgeSwipeToDismiss
, odrzucanie przez przesunięcie jest aktywowane tylko wtedy, gdy pierwsze dotknięcie nastąpi na krawędzi i przesunięcie zostanie wykonane w prawo. Wcześniej odrzucanie przez przesunięcie można było aktywować, przesuwając palcem z dowolnej części ekranu, jeśli przewijanie osiągnęło początek.(I8ca2a)
Wersja 1.0.0-beta01
11 maja 2022 roku
androidx.wear.compose:compose-foundation:1.0.0-beta01
, androidx.wear.compose:compose-material:1.0.0-beta01
i androidx.wear.compose:compose-navigation:1.0.0-beta01
są zwalniane. Wersja 1.0.0-beta01 zawiera te zmiany.
Co zawiera Compose na Wear OS 1.0
1.0.0-beta01
biblioteki Compose na Wear OS to ważny kamień milowy, ponieważ biblioteka jest w pełni funkcjonalna, a interfejs API jest zablokowany.
Komponenty Wear Compose Material w wersji 1.0 obejmują:
- Motyw Material – używany jako zamiennik Compose na urządzenia mobilne
MaterialTheme
. Zawiera kolory, kształty i typografię do tworzenia komponentów na urządzeniach do noszenia, które od razu implementują wytyczne UX dotyczące Material Design na urządzenia do noszenia. Button
,CompactButton
iToggleButton
– przycisk oferuje jedno miejsce na ikonę, obraz lub krótki tekst (maksymalnie 3 znaki). Mają kształt okrągły i zalecane rozmiary w przypadku przycisków domyślnych, dużych i małych.CompactButton
oferuje 1 miejsce na dowolne treści (ikonę, obraz lub tekst) i ma okrągły kształt z bardzo małym rozmiarem tła.CompactButton
ma opcjonalny przezroczysty margines wokół tła, który zwiększa obszar klikalny.ToggleButton
to przycisk z jednym miejscem na dowolną treść (krótki tekst, ikonę lub obraz). Ma stany włączony/wyłączony (zaznaczony/niezaznaczony) z kolorami i różnymi ikonami, które wskazują, czy jest zaznaczony- Karty – służą do wyświetlania informacji o aplikacjach, np. powiadomień. Elastyczna konstrukcja umożliwiająca różne zastosowania dzięki elementom
AppCard
iTitleCard
, które zapewniają różne układy i obsługę obrazów jako treści kart lub tła. - Elementy w kształcie stadionu – komponenty podobne do przycisków, ale o większej powierzchni i z wieloma miejscami na etykiety, etykiety dodatkowe i ikony. w różnych rozmiarach i z obsługą obrazów jako tła;
- ToggleChips i SplitToggleChips – element Chip z zaznaczonym lub odznaczonym stanem oraz dodatkowym miejscem
ToggleControl
na ikonę, np. przełącznik lub przycisk opcji, która wskazuje zaznaczony stan komponentu. DodatkowoSplitToggleChip
ma 2 obszary, które można dotknąć: jeden klikalny i jeden przełączalny. - CircularProgressIndicator – wskaźnik postępu Wear Material w 2 wariantach. Pierwszy z nich wyraża proporcję ukończenia trwającego zadania i umożliwia utworzenie przerwy na okrągłej ścieżce między kątami początkowym i końcowym. Drugi wskaźnik pokazuje nieokreślony postęp w nieokreślonym czasie oczekiwania.
- curvedText – element języka DSL służący do opisywania
CurvedLayouts
, wraz zcurvedRow
icurvedColumn
, w celu rozmieszczania komponentów wokół okrągłych urządzeń. Więcej informacji o elementachCurvedLayout
iCurvedModifier
znajdziesz w sekcji Wear Component Foundation (pełnią one podobną rolę do modyfikatorów w przypadku urządzeń bez zakrzywionego ekranu i umożliwiają konfigurowanie różnych aspektów układu, dopełnienia, gradientów itp.). - Okno dialogowe, alert i potwierdzenie – okno dialogowe wyświetla się na pełnym ekranie, nad innymi treściami, i można je zamknąć gestem przesunięcia. Zajmuje jedno miejsce, w którym powinna się znajdować opinia dotycząca treści okna dialogowego Material Design na zegarku, np. alertu lub potwierdzenia. Alert to okno z opinią, które zawiera miejsca na ikonę, tytuł i wiadomość. Ma przeciążenia dla 2 przycisków negatywnych i pozytywnych wyświetlanych obok siebie lub miejsca na co najmniej 1 układany pionowo element. Potwierdzenie to opinia w oknie dialogowym, która wyświetla komunikat przez określony czas. Ma miejsce na ikonę lub obraz (który może być animowany).
- HorizontalPageIndicator – wyświetla poziomą pozycję strony w sposób odpowiedni dla urządzenia do noszenia. Zaprojektowany tak, aby zajmować cały ekran i wyświetlać zakrzywiony wskaźnik na urządzeniach z okrągłym ekranem. Można go używać z przeglądarką strony Accompanist.
- Ikona – implementacja ikony na Wear, która pobiera kolor i wartość alfa z motywu Material Design na Wear. W przypadku ikony, którą można kliknąć, zobacz sekcję Przycisk lub Element.
- Selektor – wyświetla przewijaną listę elementów, z której można wybrać pozycję. Domyślnie elementy będą powtarzane „w nieskończoność” w obu kierunkach. Może być wyświetlany w trybie tylko do odczytu, aby ukryć niewybrane opcje.
- PositionIndicator – wyświetla pozycję przewijania lub inne wskazanie pozycji w sposób odpowiedni dla urządzenia do noszenia. Zajmuje cały ekran i wyświetla zakrzywiony wskaźnik na urządzeniach z okrągłym ekranem.
- Scaffold – implementuje podstawową strukturę wizualną układu Material Design na Wear. Ten komponent udostępnia interfejs API do łączenia kilku komponentów Wear Material (takich jak
TimeText
,PositionIndicator
iVignette
) w celu tworzenia ekranu, zapewniając odpowiednią strategię układu i zbierając niezbędne dane, aby te komponenty działały prawidłowo. - ScalingLazyColumn – przewijany komponent listy z efektem skalowania lub rybiego oka, który jest kluczowym elementem języka Wear Material Design. Zapewnia skalowanie i efekty przezroczystości elementów treści.
ScalingLazyColumn
jest zaprojektowany tak, aby obsługiwać potencjalnie dużą liczbę elementów treści, które są materializowane i komponowane tylko w razie potrzeby. - Suwak – umożliwia użytkownikom wybór z zakresu wartości. Zakres wyboru jest wyświetlany jako pasek, który opcjonalnie może być wyświetlany z separatorami.
- Stepper – komponent pełnoekranowy, który umożliwia użytkownikom wybór z zakresu wartości za pomocą przycisków zwiększania i zmniejszania u góry i u dołu ekranu. Pośrodku znajduje się miejsce na tekst lub element.
- SwipeToDismissBox – obsługuje gest przesuwania w celu zamknięcia. Zajmuje 1 miejsce na tło (wyświetlane tylko podczas gestu przesuwania) i treści na pierwszym planie. Można ją opcjonalnie połączyć z biblioteką nawigacji androidx za pomocą
SwipeDismissableNavHost
(patrz biblioteka nawigacji Wear Compose poniżej). - Text – implementacja komponentu tekstowego Compose Material na Wear, która pobiera kolor i wartość alfa z motywu Wear Material.
- TimeText – komponent wyświetlający godzinę i stan aplikacji u góry ekranu. Dostosowuje się do kształtu ekranu, używając zakrzywionego tekstu na okrągłych ekranach.
Winieta – element ekranu do użycia w komponencie Scaffold, który rozmywa górną i dolną część ekranu, gdy używane są treści z możliwością przewijania.
Z biblioteki Wear Compose Foundation pochodzą też te komponenty:
CurvedLayout - Wear Foundation
CurvedLayout
to kompozycja układu, która umieszcza elementy podrzędne w łuku i w razie potrzeby je obraca. Jest to podobne do układu wiersza wygiętego w segment pierścienia. Pamiętaj, że zawartość elementuCurvedLayout
nie jest funkcją lambda, którą można łączyć, ale językiem DSL (językiem specyficznym dla domeny). Wszystkie elementy w języku DSL CurvedLayout obsługują opcjonalny parametr modyfikatora utworzony na podstawieCurvedModifier
.basicCurvedText – element w języku DSL
CurvedLayout
,basicCurvedText
, który umożliwia deweloperom łatwe pisanie zakrzywionego tekstu zgodnie z krzywizną okręgu (zwykle na krawędzi okrągłego ekranu).basicCurvedText
można tworzyć tylko w ramach elementuCurvedLayout
, aby zapewnić jak najlepsze wrażenia, np. możliwość określenia pozycji i używania elementuCurvedModifiers
. Pamiętaj, że w większości przypadków należy używać elementu curvedText, ponieważ korzysta on z motywów Material.curvedComposable – opakowuje zwykłe treści funkcji kompozycyjnej, aby można było ich używać z funkcją
CurvedLayout
. Jeśli elementcurvedComposable
zawiera kilka elementów, zostaną one narysowane jeden na drugim (jak w przypadku elementu Box). Aby umieścić kilka komponentów kompozycyjnych wzdłuż krzywej, każdy z nich umieść wcurvedComposable
.curvedRow i curvedColumn – podobnie jak Row i Column, elementy
curvedRow
icurvedColumn
można zagnieżdżać w elemencieCurvedLayout
, aby w razie potrzeby rozmieszczać elementy. W przypadku elementucurvedRow
można określić kierunek układu kątowego i wyrównanie promieniowe. W przypadkucurvedColumn
można określić wyrównanie kątowe i kierunek promieniowy.CurvedModifier – wszystkie zakrzywione komponenty akceptują parametr modyfikatora, który można utworzyć za pomocą
CurvedModifier
: obsługiwane są tło, rozmiar, waga i dopełnienie.Z Wear Compose Navigation pochodzi też ten komponent:
SwipeDismissableNavHost – zapewnia miejsce w hierarchii Compose, w którym może odbywać się samodzielna nawigacja, a nawigacja wsteczna jest obsługiwana przez gest przesuwania. Treści są wyświetlane w
SwipeToDismissBox
, co wskazuje bieżący poziom nawigacji. Podczas gestu przesunięcia w celu zamknięcia poprzedni poziom nawigacji (jeśli istnieje) jest widoczny w tle.Więcej informacji o wprowadzonych zmianach znajdziesz w informacjach o poprzednich wersjach alfa.
Zmiany w interfejsie API
- Dodano funkcje
CurvedModifier.padding*
. Służą one do określania dodatkowej przestrzeni, która ma być dodana wokół zakrzywionego komponentu. (I4dbb4) - Usunięto wewnętrzne zajęcia
CompositionLocal
(I42490) - Dodaliśmy stałe wartości rozmiarów ikon
Button
,CompactButton
iToggleButton
, aby ułatwić Ci pracę (I57cab). - Dodaj włączony parametr do
AppCard
iTitleCard
. Teraz mają podobny interfejs API do kartandroidx.compose.material
. Jeśli parametr ma wartość „false”, nie będzie można kliknąć karty. (Idc48d, b/228869805)
Poprawki błędów
- Komponent Stepper wyłącza teraz przyciski zmniejszania i zwiększania, gdy osiągnięte zostaną dolne lub górne limity (i stosuje ContentAlpha.disabled do parametru iconColor) (I4be9f).
- Dodaliśmy 1-pikselowy margines wokół zawartości selektora, gdy jest on rysowany z gradientem, aby zapobiec drganiom tekstu widocznym podczas przesuwania. (I0b7b9)
- Dodaj testy zrzutów ekranu dla
PositionIndicator
(I5e8bc) - Dodaj więcej testów dla
AppCard
iTitleCard
(I85391, b/228869805)
Wersja 1.0.0-alpha21
20 kwietnia 2022 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha21
, androidx.wear.compose:compose-material:1.0.0-alpha21
i androidx.wear.compose:compose-navigation:1.0.0-alpha21
są zwalniane. Wersja 1.0.0-alpha21 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy nowe modyfikatory zakrzywione, aby określić tło zakrzywionego elementu:
CurvedModifier.background
,.radialGradientBackground
i.angularGradientBackground
(I8f392) - Umożliwia określenie trybu przepełnienia zakrzywionego tekstu (obcinanie, wielokropek, widoczny). (I8e7aa)
- Dodano modyfikator
CurvedModifier.weight
, podobny do tego w komponowaniu. Można go używać w przypadku elementów podrzędnych elementów curvedRow i CurvedLayout (w przypadku szerokości) oraz elementów podrzędnych elementu curvedColumn (w przypadku wysokości). (I8abbd) - Dodano modyfikatory
CurvedModifier.size
,.angularSize
i.radialSize
, aby określić rozmiar zakrzywionego elementu. (I623c7)
Zmiany w interfejsie API
- Zmiana kolejności parametrów, aby zapewnić, że tło będzie zawsze przed kolorem w interfejsie Wear Compose API (I43208)
- Usunięto parametry clockwise i
insideOut
i zastąpiono je bardziej precyzyjnymi stałymi w przypadku nowych zajęć. Kierunek zakrzywionego układu może teraz uwzględniaćLayoutDirection
i jest dziedziczony, gdy nie jest określony (If0e6a). - Aby rozwiązać problem z interfejsem API w
ScalingLazyColumn
, zastąpiliśmyautoCenter: Boolean
ciągiemautoCenter: AutoCentringParams
. (Ia9c90) - W całym interfejsie API zmieniliśmy nazwy
iconTintColor
itoggleControlTintColor
naiconColor
itoggleControlColor
(Chip/ToggleChip/Dialog/Slider/Stepper/...), ponieważ kolor jest stosowany do gniazda ikony lub elementu przełączającego. (Ied238) - Przepisywanie typu wyliczeniowego
PageIndicatorStyle
na klasę wartości (I2dc72) - Do niektórych boksów w naszych komponentach dodaliśmy symbol
RowScope/ColumnScope/BoxScope
, aby wskazać deweloperom założenia dotyczące układów. Dzięki temu deweloperzy będą mogli używać dodatkowych modyfikatorów w przypadku niektórych treści w miejscu na reklamy i nie będą musieli udostępniać dodatkowych elementów układu. Wprowadziliśmy też drobne zmiany w kolorach kart aplikacji i kart tytułowych, tak aby domyślnietimeColor
iappColor
miały kolorcontentColor
. W razie potrzeby można jednak zastąpić te właściwości. (I26b59) - Ustawienie obiektu
SwipeToDismissBoxState.Companion
jako prywatnego (I39e84) - Popraw kolejność parametrów dla
InlineSlider
iStepper
. Prosta zmiana zgodna z wytycznymi dotyczącymi interfejsu API (I11fec) - Usunęliśmy obiekt Saver dla
SwipeToDismissBoxState
, ponieważ nie był używany. (Ifb54e) - Zaktualizowaliśmy
CompactChip
, aby dostosować go do najnowszej specyfikacji UX. Wypełnienie zostało zmniejszone do poziomego = 12 dp i pionowego = 0 dp. Czcionka etykiety została zmieniona z przycisku na podpis1. Zalecane rozmiary ikon to 20 x 20 pikseli, gdy wyświetlane są zarówno ikona, jak i etykieta, oraz 24 x 24 piksele w przypadku kompaktowego elementu z samą ikoną. W przypadku użycia tylko ikony zadbaliśmy też o to, aby była ona wyśrodkowana. (Iea2be) - Dodaliśmy do
ScalingLazyListLayoutInfo
kilka nowych pól, aby deweloperzy mogli sprawdzić kwotę zastosowanychcontentPadding
iautoCenteringPadding
. Mogą być przydatne dla deweloperów podczas obliczania przesunięcia/przewijania (I7577b). - Wprowadziliśmy przejścia do i z okna dialogowego. Dodano parametr
showDialog
, a okno dialogowe kontroluje teraz własną widoczność (umożliwia to uruchamianie animacji wprowadzających i końcowych, gdy okno dialogowe jest wyświetlane lub ukrywane). Pamiętaj, że animacja końcowa nie jest wykonywana, gdy użytkownik zamknie okno za pomocą gestu przesunięcia. Dodaliśmy też wartość domyślną dla stanu w niedawno dodanym przeciążeniuSwipeToDismissBox
. (I682a0) - Aby lepiej obsługiwać internacjonalizację i ułatwienia dostępu, zmieniliśmy komponenty
ToggleChip
iSplitToggleChip
tak, aby nie miały już domyślnej wartości w przypadku slotutoggleControl
. Zmieniliśmy teżToggleChipDefaults
, aby te metody zwracały teraz ImageVector zamiast Icon (zwróć uwagę, że ponieważ nie zwracają już @Composables, zaczynają się od małej litery):SwitchIcon()->switchIcon()
,CheckboxIcon->checkboxIcon()
iRadioIcon()->radioIcon()
. Umożliwia to deweloperom tworzenie własnych funkcji kompozycyjnychIcon()
z odpowiednim zestawemcontentDescription
. (I5bb5b) - Do parametru
SwipeDismissableNavHost
dodaliśmy parametrSwipeDismissableNavHostState
. Umożliwia to korzystanie z przesuwania od krawędzi na ekranach używanych jako miejsca docelowe nawigacji, ponieważSwipeToDismissBoxState
można teraz podnieść i użyć do zainicjowania zarównoSwipeDismissableNavHostState
, jak iModifier.edgeSwipeToDismiss
na ekranach, które wymagają przesuwania od krawędzi. (I819f5, b/228336555)
Poprawki błędów
- W razie potrzeby zaktualizuj zakrzywione układy. (Ie8bfa, b/229079150)
- Poprawka błędu https://issuetracker.google.com/issues/226648931 (Ia0a0a, b/226648931)
- Usunięto niepotrzebne adnotacje eksperymentalne (I88d7e)
Wersja 1.0.0-alpha20
6 kwietnia 2022 roku
androidx.wear.compose:compose-foundation:1.0.0-alpha20
, androidx.wear.compose:compose-material:1.0.0-alpha20
i androidx.wear.compose:compose-navigation:1.0.0-alpha20
są zwalniane. Wersja 1.0.0-alpha20 zawiera te zmiany.
Nowe funkcje
- Dodaj modyfikator
edgeSwipeToDismiss
doSwipeToDismiss
. Umożliwia aktywowanieswipeToDismiss
tylko na lewej krawędzi widocznego obszaru. Używane, gdy środek ekranu musi obsługiwać przewijanie w poziomie, np. przewijanie mapy w 2 wymiarach lub przesuwanie palcem w poziomie między stronami.(I3fcec, b/200699800)
Zmiany w interfejsie API
- Podstawowa implementacja
CurvedModifiers
, która otwiera drogę do wprowadzenia sposobów dostosowywania zakrzywionych treści (ale nie ma jeszczeCurvedModifiers
, a możliwość tworzenia niestandardowych modyfikatorów może być dostępna później) (I9b8df) EdgeSwipe
Aktualizacja dokumentacji modyfikatorów i wartości domyślnych w celu lepszego zrozumienia .(I6d00d)- Dodaj gniazdo
PageIndicator
do elementu Scaffold. DodającPageIndicator
bezpośrednio do komponentu Scaffold, możemy mieć pewność, że będzie on prawidłowo wyświetlany na urządzeniach okrągłych. (Ia6042) - Usuń domyślne ikony z parametrów
InlineSlider
i Stepper. Pomoże to deweloperom zwracać większą uwagę na wymagania dotyczące lokalizacji i ułatwień dostępu. Sposoby użycia domyślnych ikon były prezentowane w wersjach demonstracyjnych i przykładowych. (I7e6fd) - Zastąp nazwy parametrów Trailing i Leading nazwami Start i End w TimeText (Iaac32)
- Dodaliśmy przeciążenie
SwipeToDismissBox
z parametremonDismissed
, aby obsługiwać typowe użycie polegające na wywoływaniu zdarzenia nawigacji po zakończeniu gestu przesuwania. (I50353, b/226565726) - Usunięto adnotacje
ExperimentalWearMaterialApi
z użyciaTimeText
(Ide520) - Interfejsy zakresu i informacji
ScalingLazyList/Column
zostały oznaczone jako zamknięte, ponieważ nie są przeznaczone do implementacji przez deweloperów zewnętrznych. Dzięki temu w przyszłości będziemy mogli dodawać do nich nowych członków bez wprowadzania zmian powodujących niezgodność binarną. (I7d99f) - Dodaliśmy do selektora nową właściwość
flingBehaviour
i metodęPickerDefaults.flingBehaviour()
, aby umożliwić konfigurowanie zachowania przewijania, np. dodawanie obsługi RSB.PickerState
implementuje teraz interfejsScrollableState
. (Ib89c7)
Poprawki błędów
- Zaktualizuj reguły profilu podstawowego Android Runtime (ART) dla bibliotek Wear Compose. ART może wykorzystywać reguły profilu na urządzeniach, aby wcześniej skompilować określony podzbiór aplikacji i zwiększyć jej wydajność. Nie będzie to miało wpływu na aplikacje, które można debugować. (Iaa8ef)
- Ulepszanie dokumentacji (I2c051)
Wersja 1.0.0-alpha19
23 marca 2022 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha19
, androidx.wear.compose:compose-material:1.0.0-alpha19
i androidx.wear.compose:compose-navigation:1.0.0-alpha19
są zwalniane. Wersja 1.0.0-alpha19 zawiera te zmiany.
Zmiany w interfejsie API
- Zmieniliśmy nazwę
CurvedRow
naCurvedLayout
i przekształciliśmy ją w zakres z DSL. Za pomocą tego języka DSL można określać bardziej złożone układy zakrzywione, używając serii zagnieżdżonych elementówcurvedRow
icurvedColumn
(które są odpowiednikami układów wierszowych i kolumnowych). W tych elementach układu można używać 3 elementów:curvedComposable
(do dodawania dowolnego elementu @Composable),basicCurvedText
(zakrzywiony tekst podstawowy) icurvedText
(zakrzywiony tekst uwzględniający materiał urządzenia). (Ib776a) - Umożliwienie konfigurowania strony dla elementu
PositionIndicator
. Pozycję podstawowego wskaźnika pozycji można teraz skonfigurować jako End (zależną od kierunku układu), OppositeRsb (uwzględniającą obrót ekranu, aby umieścić wskaźnik naprzeciwko fizycznego RSB) lub Left i Right. (I2f1f3) - W przypadku
SwipeToDismissBox
zmieniliśmy nazwęSwipeDismissTarget
.Original naSwipeToDismissValue.Default
, aSwipeDismissTarget.Dismissal
naSwipeToDismissValue.Dismissed
. Przenieśliśmy teżSwipeToDismissBoxDefaults.BackgroundKey
iSwipeToDismissBoxDefaults.ContentKey
doSwipeToDismissKeys.Background
iSwipeToDismissKeys.Content
. (I47a36) - Dodaliśmy do selektora tryb tylko do odczytu, który jest przeznaczony do ekranów z wieloma selektorami, na których w danym momencie można edytować tylko jeden selektor. Gdy selektor jest tylko do odczytu, wyświetla obecnie wybraną opcję i etykietę, jeśli została podana. (I879de)
SwipeToDismissBoxState
zostało zmodyfikowane, aby ograniczyć zakresExperimentalWearMaterialApi
doModifier.swipeable
iSwipeableState
, które są teraz używane wewnętrznie.SwipeToDismissBoxState
ma terazcurrentValue
,targetValue
,isAnimationRunning
isnapTo
, aby obsługiwać typowe przypadki użycia. Daj nam znać, jeśli potrzebujesz udostępnienia innych właściwości. Poprawiliśmy też działanie funkcjiSwipeableState
w sytuacji, gdy przesunięcie gestu jest w zakresie błędu zaokrąglenia punktu zakotwiczenia. (I58302)
Poprawki błędów
- Uproszczony i poprawiony kod wykrywający, czy zawartość elementu
ScalingLazyColumn
może być przewijana (używany do określania, czy wyświetlać pasek przewijania) (I7bce0) - Usunęliśmy błąd wskaźnika pozycji, który występował, gdy był on używany z więcej niż jednym stanem i przełączano się między nimi (I320b5).
- Zaktualizowaliśmy domyślną typografię/czcionki motywu Compose na Wear OS, aby były zgodne z naszymi najnowszymi wytycznymi dotyczącymi UX. Wartości display1 (40 sp) i display2 (34 sp) są teraz mniejsze niż wcześniej. Wprowadziliśmy też różne inne drobne zmiany dotyczące wysokości i odstępów między wierszami. (Ie3077)
- Dodaliśmy opór
SwipeToDismissBox
, aby ruch następował tylko podczas przesuwania w celu zamknięcia, a nie w przeciwnym kierunku. (Ifdfb9) - Zmieniliśmy niektóre domyślne wartości parametrów funkcji
CircularProgressIndicator
, aby dostosować je do wytycznych UX dotyczących Wear Material Design. W przypadku wersji Spinner/Indeterminant zaktualizowano rozmiar (40–>24 dp), kolor wskaźnika (primary–>onBackground), przezroczystość koloru ścieżki (30%–>10%) i szerokość linii (4–>3 dp). W wersji Progress/Determinate zaktualizowano przejrzystość koloru ścieżki (30% –> 10%). (I659cc) - Zaktualizowaliśmy domyślne parametry skalowania
ScalingLazyColumn
zgodnie z najnowszymi specyfikacjami UX Wear Material Design. W efekcie elementy listy zaczynają być skalowane bliżej środka listy, ale na jej krawędziach są mniej skalowane niż wcześniej. (Ica8f3) - Niektóre korekty
ScalingLazyColumnDefaults.snapFlingBehavior
, które mają na celu poprawę zakończenia animacji (If3260)
Wersja 1.0.0-alpha18
9 marca 2022 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha18
, androidx.wear.compose:compose-material:1.0.0-alpha18
i androidx.wear.compose:compose-navigation:1.0.0-alpha18
są zwalniane. Wersja 1.0.0-alpha18 zawiera te zmiany.
Zmiany w interfejsie API
- Kilka ulepszeń dotyczących elementu PositionIndicator: ShowResult zmieniono nazwę na PositionIndicatorVisibility. Poprawki wydajności, aby uniknąć ponownych obliczeń, gdy nie są one potrzebne (Iaed9d)
- Zaktualizowano zalecane kolory dla
SplitToggleChip
. Komponenty SplitToggleChip mają teraz jednobarwne tło, gdy są zaznaczone lub odznaczone. Kolor komponentu ToggleControl jest głównym wskaźnikiem tego, czy komponent jest zaznaczony. Dodaliśmy nowy elementToggleDefaults.splitToggleChipColors()
, aby obsługiwać nową kolorystykę. Uprościliśmy też metodytoggleChipColors()
, usuwając splitBackgroundOverlayColor (I7e66e). - Do elementu
ScalingLazyListItemInfo
dodaliśmy atrybut unadjustedSize, ponieważ obliczanie pierwotnego rozmiaru produktu na podstawie skalowanego rozmiaru i współczynnika skalowania jest niebezpieczne ze względu na precyzję obliczeń na liczbach zmiennoprzecinkowych. (I54657, b/221079441) - Dodaj
HorizontalPageIndicator
. Reprezentuje łączną liczbę stron i wybraną stronę. Może być liniowy lub zakrzywiony w zależności od kształtu urządzenia. Obsługuje też niestandardowy kształt wskaźnika, który określa, jak każdy wskaźnik jest reprezentowany wizualnie. (Iac898) - Zaktualizowaliśmy
PickerState
, aby można było zmieniać wartość numberOfOptions. Umożliwia to realizację przypadków użycia, takich 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 paskiem przewijania i nie można go przewijać. (Id0a7f) - Aby zachować spójność z komponentem Scaffold, nasz komponent Dialog na pełnym ekranie wyświetla teraz
PositionIndicator
iVignette
. Używamy teraz też właściwościScalingLazyColumn
zamiastColumn
, co oznacza, że zawartość okna dialogowego jest teraz wScalingLazyListScope
(i zwykle musi być ujęta w klamry item { /* content */ }). Okno dialogowe obsługuje parametr verticalArrangement. (Idea13) - Zmieniliśmy nazwę właściwości
ToggleChip
iSplitToggleChip
toggleIcon na toggleControl, aby lepiej dopasować ją do Material Design i ułatwić projektantom oraz deweloperom korzystanie z interfejsu API. (If5921, b/220129803) - Do typologii motywu Material na Wear dodaliśmy nowy wpis caption3. Jest to mała czcionka używana w przypadku bardzo długich tekstów, np. tekstów prawnych. (I74b13, b/220128356)
Poprawki błędów
- Zatrzymuje animację przyciągania, gdy osiągniemy cel. (Idb69d)
- Animowanie zmian w PositionIndicator. (I94cb9)
- Na podstawie opinii dotyczących interfejsu użytkownika zmieniliśmy
ScalingLazyColumn
autoCentering, tak aby zapewniał tylko tyle miejsca, ile potrzeba, aby elementy o indeksieScalingLazyListState.initialCenterItemIndex
lub wyższym można było w pełni przewinąć na środek obszaru widocznego. Umożliwia to umieszczenie 1 lub 2 elementów nad elementem początkowo znajdującym się na środku, których nie można przewinąć na środek. Oznacza to, że elementScalingLazyColumn
z automatycznym wyśrodkowaniem nie będzie mógł przewijać się powyżej elementuinitialCenterItemIndex/initialCenterItemScrollOffset
(I22ee2). - Dodaliśmy wersję demonstracyjną selektora daty i naprawiliśmy błąd w
PickerState
, który powodował, że parametr initiallySelectedOption nie był stosowany, dopóki nie został wyświetlony selektor. (Id0d7e) - Aby ograniczyć przycinanie szerszych elementów
ScalingLazyColumn
na okrągłych ekranach, zwiększyliśmy domyślny poziomy odstęp od treści z 8 dp do 10 dp. (I0d609) - Sprawdź, czy podczas przewijania wyświetla się
PositionIndicator
. (Ied9a2)
Wersja 1.0.0-alpha17
23 lutego 2022 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha17
, androidx.wear.compose:compose-material:1.0.0-alpha17
i androidx.wear.compose:compose-navigation:1.0.0-alpha17
są zwalniane. Wersja 1.0.0-alpha17 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy obsługę przyciągania, której można używać z
ScalingLazyColumn
. UstawflingBehavior = ScalingLazyColumnDefaults.flingWithSnapBehavior(state)
, aby włączyć obsługę przyciągania. (I068d3, b/217377069) - Dodaliśmy wersje demonstracyjne selektora, który służy do wybierania godziny w formacie 24-godzinnym lub 12-godzinnym. (Ie5552)
Zmiany w interfejsie API
- Rozwiązaliśmy problem z niestandardowymi czcionkami i stylami
TimeText
na urządzeniu kwadratowym (Iea76e). ScalingLazyListLayoutInfo
ma teraz właściwościreverseLayout
,viewportSize
i orientacji zgodne z właściwościamiLazyListLayoutInfo
(I4f258, b/217917020).- Usługa
ScalingLazyColumn
ma teraz właściwośćuserScrollEnabled
zgodną z właściwością usługiLazyList
(I164d0, b/217912513). - Selektory mają teraz domyślnie gradient u góry i u dołu (Iab92a).
Poprawki błędów
- Zmodyfikowaliśmy
ScalingLazyColumn
, aby nie wypełniał już całego miejsca w elemencie nadrzędnym. Zamiast tego będzie miał rozmiar taki jak jego zawartość. Dzięki temu jest on zgodny z działaniem funkcjiLazyColumn
. Jeśli chcesz przywrócić stare działanie, przekaż wartośćModifier.fillMaxWidth()/width()/widthIn()
do parametruScalingLazyColumn
(I51bf8). - Ulepszyliśmy komunikat o wyjątku w
SwipeDismissableNavHost.kt
, który był wywoływany, gdy stos nawigacji był pusty. (I1b1dc)
Wersja 1.0.0-alpha16
9 lutego 2022 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha16
, androidx.wear.compose:compose-material:1.0.0-alpha16
i androidx.wear.compose:compose-navigation:1.0.0-alpha16
są zwalniane. Wersja 1.0.0-alpha16 zawiera te zmiany.
Nowe funkcje
- Dodaj
CircularProgressIndicator
. Wskaźniki postępu pokazują długość procesu lub nieokreślony czas oczekiwania. Obsługuje wycięcie na komponent TimeText lub inne komponenty, jeśli są używane w trybie pełnoekranowym. (Iab8da)
Zmiany w interfejsie API
- Selektory mają teraz parametr
flingBehavior
, którego wartość domyślna powoduje przyciąganie do najbliższej opcji podczas przewijania lub przesuwania. (I09000) - Dodatkowy interfejs API liczb całkowitych dla komponentów InlineSlider i Stepper (I1b5d6)
Poprawki błędów
- Zmieniliśmy domyślny indeks initialCenterItemIndex dla elementu
ScalingLazyListState
z 0 na 1. Oznacza to, że jeśli nie zostanie to zmienione podczas tworzenia stanu za pomocąScalingLazyListState.rememberScalingLazyListState(initialCenterItemIndex =
)
, drugi element listy (indeks == 1) zostanie umieszczony na środku obszaru wyświetlania podczas inicjowania, a pierwszy element (indeks == 0) zostanie umieszczony przed nim. Dzięki temu domyślny efekt wizualny jest lepszy, ponieważ większość widocznego obszaru jest wypełniona elementami listy. (I0c623, b/217344252) - Zmniejszyliśmy
ScalingLazyColumn
domyślnąextraPadding
wartość, aby zapewnić wystarczającą liczbę elementów listy (nawet jeśli niektóre z nich są zmniejszane) z 10% do 5%. Pozwoli to uniknąć tworzenia dodatkowych elementów listy, które mogą nie pojawić się w obszarze widoku. Jeśli używane są niestandardowe parametry skalowania (np. bardziej ekstremalne skalowanie), deweloper może dostosować dodatkowe dopełnienie za pomocą parametruviewportVerticalOffsetResolver
. (I76be4) - Rozwiązaliśmy problem z tekstem TimeText w wielu wierszach na urządzeniu kwadratowym (Ibd3fb).
- Zmodyfikowaliśmy
ScalingLazyColumn
, aby nie wypełniał już całego miejsca w elemencie nadrzędnym. Zamiast tego będzie miał rozmiar taki jak jego zawartość. Dzięki temu jest ona zgodna z działaniemLazyColumn
. Jeśli chcesz przywrócić stare działanie, przekaż wartośćModifier.fillMaxSize()
do parametruScalingLazyColumn
. UWAGA: ta zmiana jest niekompletna i zostanie uwzględniona w kolejnej zmianie w następnej wersji alfa. (I3cbfa)
Wersja 1.0.0-alpha15
26 stycznia 2022 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha15
, androidx.wear.compose:compose-material:1.0.0-alpha15
i androidx.wear.compose:compose-navigation:1.0.0-alpha15
są zwalniane. Wersja 1.0.0-alpha15 zawiera te zmiany.
Zmiany w interfejsie API
- Do elementu
ScalingLazyColumn
dodaliśmy nową właściwośćautoCentering
. Jeśli ta wartość jest prawdziwa (domyślnie), wszystkie elementy, w tym pierwszy i ostatni, można przewijać tak, aby były widoczne na środku obszaru wyświetlania listy. Pamiętaj, że jeśli używasz automatycznego wyśrodkowywania, prawdopodobnie będziesz chcieć ustawić pionowy odstęp od treści na 0 dp. Jeśli podasz zarówno autoCentering, jak i vertical content padding, oba te ustawienia spowodują, że przed pierwszym i po ostatnim elementem listy będzie dostępna dodatkowa przestrzeń, co umożliwi dalsze przewijanie. (I2a282, b/214922490) - Dodaliśmy komponent
Dialog
, który umożliwia wywoływanie przez dowolny komponent kompozycyjny okna dialogowego na pełnym ekranie, które znajduje się nad innymi treściami. Gdy okno jest wyświetlane, można je zamknąć gestem przesunięcia. Podczas tego gestu w tle będzie widoczna zawartość okna nadrzędnego. Zawartość okna dialogowego powinna mieć wartośćAlert
lubConfirmation
(zmieniono nazwy wcześniejszych komponentówAlertDialog
iConfirmationDialog
) –Alert
,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ż ColumnScope do parametrów Alert i Confirmation. (Ia9014) - Usunęliśmy kolor
onSurfaceVariant2
z motywu Material Compose for WearOS i zastąpiliśmy go w bibliotece koloremonSurfaceVariant
. (Icd592) - Dodaliśmy metodę programowego wybierania opcji w
PickerState
. Podczas tworzeniaPickerState
można teraz określić opcję, która ma być wybrana na początku. (I92bdf) - Dodaliśmy możliwość dostosowywania zachowania gestu szybkiego przesunięcia w przypadku
ScalingLazyColumn
. (I1ad2e, b/208842968) - Dodaliśmy
NavController.currentBackStackEntryAsState()
do bibliotekiWear.Compose.Navigation
. (If9028, b/212739653) - Dodano
Modifier.onRotaryScrollEvent()
iModifier.onPreRotaryScrollEvent()
dla urządzeń Wear z obrotowym przyciskiem bocznym.(I18bf5, b/210748686)
Wersja 1.0.0-alpha14
12 stycznia 2022 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha14
, androidx.wear.compose:compose-material:1.0.0-alpha14
i androidx.wear.compose:compose-navigation:1.0.0-alpha14
są zwalniane. Wersja 1.0.0-alpha14 zawiera te zmiany.
Nowe funkcje
Dodaliśmy do
ScalingLazyListState
kilka metod, które umożliwiają programistom kontrolowanie przewijania do określonych elementów listy, a także ustawianie początkowego elementu listy i przesunięcia.W ramach tej zmiany zmodyfikowaliśmy też element ScalingLazyList, aby był zorientowany na środek obszaru widocznego elementu ScalingLazyList, a nie na jego początek.
Do właściwości
ScalingLazyList
dodaliśmy nową właściwośćanchorType: ScalingLazyListAnchorType = ScalingLazyListAnchorType.ItemCenter
, która określa, czy środek (ScalingLazyListAnchorType.ItemCenter
) lubEdge
(ScalingLazyListAnchorType.ItemStart
) ma być wyrównany do linii środkowej obszaru wyświetlania.W rezultacie wartości
ScalingLazyListItemInfo.offset
iScalingLazyListItemInfo.adjustedOffset
uległy zmianie i odzwierciedlają teraz przesunięcie elementu względem pozycji elementu listy i wartościanchorType
listy. Na przykład w przypadku elementuScalingLazyColumn
o wartościanchorType
równejItemCenter
i elementu listy umieszczonego tak, że jego środek znajduje się na linii środkowej obszaru wyświetlania, przesunięcie wyniesie0
.Nowe metody to
scrollTo
,animatedScrollTo
,centerItemIndex
icenterItemOffset
. (I61b61)Dodaliśmy do elementu
SwipeDismissableNavHost
obsługę przycisku Wstecz, dzięki czemu naciśnięcie tego przycisku powoduje przejście do poprzedniego poziomu w hierarchii nawigacji. (I5b086, b/210205624)
Wersja 1.0.0-alpha13
15 grudnia 2021 roku
androidx.wear.compose:compose-foundation:1.0.0-alpha13
, androidx.wear.compose:compose-material:1.0.0-alpha13
i androidx.wear.compose:compose-navigation:1.0.0-alpha13
są zwalniane. Wersja 1.0.0-alpha13 zawiera te zmiany.
Zmiany w interfejsie API
- Wartość
RangeIcons
jest wewnętrzna (odwołują się do niej wewnętrznie wartościInlineSlider
iStepper
). (I927ec)
Poprawki błędów
Rozwiązaliśmy problem polegający na tym, że
SwipeDismissableNavHost
dodawał miejsce docelowe do hierarchii Compose, zanim osiągnęło ono stanCREATED
Lifecycle, co powodowało wystąpienie błęduIllegalStateException
. Ta poprawka była wymagana do zaktualizowania zależności odnavigation-compose
do2.4.0-beta02
i nowszych wersji. (I40a2b, b/207328687)Dodaliśmy klasę wyliczeniową Drawables, która umożliwia pobieranie zasobów rysowalnych w bibliotece Wear Compose, dzięki czemu nie jest już potrzebne odbicie. Rozwiązuje to błąd, w którym elementy rysowalne biblioteki były usuwane, gdy
minifyEnabled=true
lubshrinkResources=true
). (Ib2a98)Dodano testy dla
Stepper
w Wear Compose (I2d03a)Dodaliśmy przykłady dla
SwipeDismissableNavHost
w Wear Compose Navigation. (I85f06)
Wersja 1.0.0-alpha12
1 grudnia 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha12
, androidx.wear.compose:compose-material:1.0.0-alpha12
i androidx.wear.compose:compose-navigation:1.0.0-alpha12
są zwalniane. Wersja 1.0.0-alpha12 zawiera te zmiany.
Nowe funkcje
Dodaliśmy komponent Krokomierz, który umożliwia użytkownikom wybór z zakresu wartości. Element Stepper to kontrolka na pełnym ekranie z przyciskami zwiększania i zmniejszania u góry i u dołu oraz miejscem na środku (przeznaczonym na chip lub tekst). W razie potrzeby możesz dostosować ikony przycisków. (I625fe)
Dodaliśmy 2 nowe funkcje kompozycyjne do wyświetlania okien:AlertDialog czeka na odpowiedź użytkownika i wyświetla tytuł, ikonę, wiadomość oraz a) 2 przyciski do prostych wyborów pozytywnych lub negatywnych albo b) ułożone pionowo elementy lub przełączniki do bardziej elastycznych wyborów;ConfirmationDialog wyświetla potwierdzenie z limitem czasu. To proste okno ma miejsca na tytuł i (animowaną) ikonę. (Ic2cf8)
Zmiany w interfejsie API
- Dodaj jednostki (milisekundy) do sugerowanych wartości czasu trwania okna. (I09b48)
Wersja 1.0.0-alpha11
17 listopada 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha11
, androidx.wear.compose:compose-material:1.0.0-alpha11
i androidx.wear.compose:compose-navigation:1.0.0-alpha11
są zwalniane. Wersja 1.0.0-alpha11 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy komponent selektora, który umożliwia użytkownikowi wybór elementu z przewijanej listy. Domyślnie lista elementów do wyboru jest powtarzana „w nieskończoność” w obu kierunkach, aby sprawiać wrażenie obracającego się cylindra widzianego z boku. W późniejszych wersjach zostaną dodane 2 funkcje: przyciąganie do wartości po przesunięciu i dodanie do PickerState funkcji ustawiania lub przewijania do bieżącej wartości. (I6461b)
Zmiany w interfejsie API
- Dodano ScalingLazyItemScope i nowe modyfikatory fillParentMaxSize/fillParentMaxWidth/fillParentMaxHeight, aby umożliwić określanie rozmiaru elementów listy na podstawie rozmiaru kontenera nadrzędnego. Elementy mogą wypełniać całą przestrzeń elementu nadrzędnego lub jej część. Udostępnia to funkcję, która jest już dostępna w przypadku elementów LazyRow/Column (I4612f).
- Dodaliśmy obsługę komponentu ScalingLazyColumn, aby umożliwić elementom posiadanie klucza. Dodaliśmy też wygodne metody umożliwiające dodawanie elementów z tablic i list. (Ic1f89)
Poprawki błędów
- Dodatkowe przykłady dla TimeText (I8cb64)
Wersja 1.0.0-alpha10
3 listopada 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha10
, androidx.wear.compose:compose-material:1.0.0-alpha10
i androidx.wear.compose:compose-navigation:1.0.0-alpha10
są zwalniane. Wersja 1.0.0-alpha10 zawiera te zmiany.
Nowe funkcje
Dodano element InlineSlider do Wear Compose. InlineSlider umożliwia użytkownikom wybór z zakresu wartości. Zakres wyboru jest wyświetlany jako pasek między minimalną a maksymalną wartością zakresu, z którego użytkownicy mogą wybrać jedną wartość. (If0148)
Wypróbuj nowe ćwiczenia z programowania dotyczące Compose na WearOS.
Zmiany w interfejsie API
- Test porównawczy makro ma teraz
minSdkVersion
o wartości23
. (If2655)
Poprawki błędów
- Aktualizacja obsługi przejść w komponencie SwipeDismissableNavHost w funkcji SideEffect (I04994, b/202863359)
- Aktualizacja obsługi przejść w komponencie SwipeDismissableNavHost (I1cbe0, b/202863359)
Wersja 1.0.0-alpha09
27 października 2021 roku
androidx.wear.compose:compose-foundation:1.0.0-alpha09
, androidx.wear.compose:compose-material:1.0.0-alpha09
i androidx.wear.compose:compose-navigation:1.0.0-alpha09
są zwalniane. Wersja 1.0.0-alpha09 zawiera te zmiany.
Nowe funkcje
- Udostępniliśmy wersję deweloperską Compose na Wear OS. Zapoznaj się z naszym postem na blogu, w którym omawiamy główne komponenty i podajemy linki do dodatkowych materiałów, które pomogą Ci zacząć z nich korzystać.
Zmiany w interfejsie API
- Dodaliśmy obsługę możliwości dostosowywania przez programistów wszystkich kolorów w motywie kolorystycznym Wear Material Design. (I4759b, b/199754668)
Poprawki błędów
- Dodano przykłady SwipeToDismissBox, które zachowują stan (Ibaffe)
- Dodaliśmy linki do przewodników na developer.android.com z KDocs dla CurvedText, TimeText i SwipeToDismissBox. (I399d4)
- Komponent SwipeDismissableNavHost zgłasza teraz wyjątek, jeśli nie ma bieżącego miejsca docelowego (co oznacza, że element NavGraph nie został utworzony za pomocą funkcji narzędzia wear.compose.navigation.composable) (I91403).
- Dodaliśmy dodatkową dokumentację i przykłady użycia źródła czasu w TimeText (I4f6f0).
Wersja 1.0.0-alpha08
13 października 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha08
, androidx.wear.compose:compose-material:1.0.0-alpha08
i androidx.wear.compose:compose-navigation:1.0.0-alpha08
są zwalniane. Wersja 1.0.0-alpha08 zawiera te zmiany.
Zmiany w interfejsie API
- Zmieniliśmy nazwy właściwości AppCard i TitleCard
body
nacontent
i przenieśliśmy je na koniec listy właściwości, aby można było je podawać jako lambda końcowa. Zmieniliśmy też nazwębodyColor
nacontentColor
, aby zachować spójność z nowymi nazwami przedziałów. (I57e78)
Poprawki błędów
- Dodano linki do przewodników na stronie developer.android.com z dokumentacji KDoc dla komponentów przycisku, karty, elementu, motywu, wskaźnika pozycji i skalowanej kolumny leniwej. (I22428)
- Naprawiono problem z tym, że komponent SwipeToDismissBox w WearOS czasami nie obsługiwał gestów przesuwania. (I9387e)
- Dodano przykłady dla elementów Button, CompactButton, Chip, CompactChip, AppCard, TitleCard, ToggleButton, ToggleChip i SplitToggleChip (Iddc15).
- Dodano testy wydajności mikrobenczmarków dla komponentów Card, Chip, ToggleChip, TimeText i ScalingLazyColumn. (If2fe9)
Wersja 1.0.0-alpha07
29 września 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha07
, androidx.wear.compose:compose-material:1.0.0-alpha07
i androidx.wear.compose:compose-navigation:1.0.0-alpha07
są zwalniane. Wersja 1.0.0-alpha07 zawiera te zmiany.
Nowe funkcje
- Dodano komponent CurvedText w material designie, który umożliwia deweloperom łatwe pisanie zakrzywionego tekstu zgodnie z krzywizną okręgu (zwykle na krawędzi okrągłego ekranu). (I19593)
Zmiany w interfejsie API
- Dodano testy dla TimeText (Idfead)
- Przekształć ArcPaddingValues w interfejs. (Iecd4c)
- Dodano animację do SwipeToDismissBox (I9ad1b)
- Dodano parametr hasBackground do interfejsu SwipeToDismissBox API, aby można było wyłączyć gest przesuwania, gdy nie ma treści tła do wyświetlenia. (I313d8)
rememberNavController()
przyjmuje teraz opcjonalny zestaw instancjiNavigator
, które zostaną dodane do zwracanegoNavController
, aby lepiej obsługiwać opcjonalne nawigatory, takie jak te z materiałów nawigacyjnych Accompanist. (I4619e)- Odwołaj się do NamedNavArgument z biblioteki navigation-common i usuń kopię z biblioteki wear.compose.navigation. (I43af6)
Poprawki błędów
- Usunięto niestabilność testu Fixed CurvedRow na mniejszych urządzeniach. (If7941)
- Naprawiono możliwe migotanie w przypadku elementu CurvedRow podczas aktualizacji treści i zapewniono ponowny pomiar zakrzywionego wiersza (Ie4e06).
- Funkcja ChipDefaults.gradientBackgroundChipColors() została zaktualizowana zgodnie ze zmianami w specyfikacji UX. Gradient zaczyna się teraz od koloru MaterialTheme.colors.primary z wartością alfa 32,5% i kończy się kolorem MaterialTheme.colors.surface z wartością alfa 0% na tle koloru MaterialTheme.colors.surface z wartością alfa 75%. (Id1548)
- Zaktualizowaliśmy kolory elementów ToggleChip w stanie wybranym, aby były zgodne z najnowszymi wytycznymi dotyczącymi specyfikacji UX Material Design na Wear. Po wybraniu przełączniki mają teraz tło gradientowe z MaterialTheme.color.surface o 0% przezroczystości w lewym górnym rogu do MaterialTheme.color.primary o 32% przezroczystości w prawym dolnym rogu na tle MaterialTheme.color.surface o 75% przezroczystości. Dzięki temu różnica między zaznaczonym a niezaznaczonym elementem ToggleChip jest bardziej subtelna. (Idd40b)
Wersja 1.0.0-alpha06
15 września 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha06
, androidx.wear.compose:compose-material:1.0.0-alpha06
i androidx.wear.compose:compose-navigation:1.0.0-alpha06
są zwalniane. Wersja 1.0.0-alpha06 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy komponent kompozycyjny Scaffold aplikacji najwyższego poziomu, który zapewnia strukturę do obsługi pozycji wskaźników pozycji (takich jak przewijanie lub głośność), obszaru u góry ekranu do wyświetlania czasu i stanu aplikacji, a także obsługuje winietę do rozmycia górnej i dolnej krawędzi ekranu w przypadku treści, które można przewijać. Główny obszar komponentu Scaffold to miejsce, w którym umieszcza się zawartość aplikacji. (I5e0bf)
- Dodano implementację TimeText dla Wear Compose (I5654c)
Biblioteka nawigacji Wear Compose
Dodaliśmy pierwszą wersję biblioteki Wear Compose Navigation, która zapewnia integrację bibliotek Wear Compose i Androidx Navigation. Umożliwia łatwe przełączanie się między funkcjami @Composable jako miejscami docelowymi w aplikacji.
Ta pierwsza wersja zapewnia:
- Funkcja
SwipeDismissableNavHost
, która zawiera wykres nawigacji i umożliwia nawigację wstecz za pomocą gestów przesuwania. NavGraphBuilder.composable
rozszerzenie ułatwiające tworzenie wykresów nawigacji.rememberSwipeDismissableNavController()
, aby zezwolić na przenoszenie stanu.
- Funkcja
Przykładowe użycie, w którym tworzymy 2 ekrany i przechodzimy między nimi:
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "start" ) { composable("start") { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier.fillMaxSize(), ) { Button(onClick = { navController.navigate("next") }) { Text("Go") } } } composable("next") { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier.fillMaxSize(), ) { Text("Swipe to go back") } } }
Wear Compose Navigation jest pakietem w postaci osobnej biblioteki, dzięki czemu proste aplikacje Wear Compose, które implementują własną nawigację, nie muszą korzystać z biblioteki Androidx Navigation.
Zmiany w interfejsie API
- Zaktualizowano
SwipeDismissableNavHost
, aby obsługiwaćrememberSaveable
przez ustawienie kluczowej tożsamości tła i treści (I746fd) - Dodaliśmy adapter PositionIndicator, który może obsługiwać LazyListState (I21b88).
- Zaktualizowano SwipeToDismissBox, aby obsługiwał rememberSaveable (Ie728b)
- Dodaliśmy obsługę parametru reverseLayout do komponentu ScalingLazyColumn. Umożliwia to odwrócenie kierunku przewijania i układu (I9e2fc).
- Wycofano funkcje
performGesture
iGestureScope
, które zostały zastąpione przezperformTouchInput
iTouchInjectionScope
. (Ia5f3f, b/190493367) - Zmieniliśmy nazwę VignetteValue na VignettePosition, a VignetteValue.Both na VignettePosition.TopAndBottom. (I57ad7)
- Zmieniliśmy nazwy klas ScalingLazyColumnState na ScalingLazyListState, ScalingLazyColumnItemInfo na ScalingLazyListItemInfo, ScalingLazyColumnLayoutInfo na ScalingLazyListLayoutInfo i ScalingLazyColumnScope na ScalingLazyListScope, aby w przyszłości móc dodać implementację ScalingLazyRow. (I22734)
Poprawki błędów
- Zaktualizowaliśmy dokumentację dotyczącą komponentu CompactChip, aby opisać, co się stanie, jeśli nie podasz ikony ani etykiety. (I4ba88)
- Wprowadziliśmy pewne zmiany w komponentach kart Wear. (I6b3d0)
- Zmniejszyliśmy odstęp między tytułem a treścią na karcie tytułowej z 8 dp do 2 dp.
- Czcionka nagłówka karty z tytułem została zmieniona z body na title3.
- Zmieniono gradient tła karty, aby tło było ciemniejsze.
Wersja 1.0.0-alpha05
1 września 2021 roku
androidx.wear.compose:compose-foundation:1.0.0-alpha05
i androidx.wear.compose:compose-material:1.0.0-alpha05
zostały opublikowane. Wersja 1.0.0-alpha05 zawiera te zmiany.
Zmiany w interfejsie API
- Oznaczanie ArcPaddingValues jako @Stable (I57deb)
- ScalingLazyColumnState implementuje teraz interfejs ScrollableState, co zapewnia programistom programowy dostęp do przewijania komponentu. (I47dbc)
Poprawki błędów
- Zmniejszyliśmy odstęp między ikoną a tekstem w elementach Chip i ToggleChip, aby dostosować je do zmian w specyfikacji UX. (I83802)
Wersja 1.0.0-alpha04
18 sierpnia 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha04
i androidx.wear.compose:compose-material:1.0.0-alpha04
zostały opublikowane. Wersja 1.0.0-alpha04 zawiera te zmiany.
Nowe funkcje
- Dodano SwipeToDismissBox i modyfikator swipeable, których można używać do obsługi gestu przesuwania od lewej do prawej w celu zamknięcia. Chociaż jest to niezależne od komponentów nawigacji, oczekuje się, że będzie to używane do zamykania jednego ekranu i przechodzenia do innego. Dodano testy integracyjne, aby zademonstrować funkcję przesuwania w celu zamknięcia. (I7bbaa)
- Do klasy ScalingLazyColumnState dodaliśmy interfejsy ScalingLazyColumnItemInfo i ScalingLazyColumnLayoutInfo, aby deweloperzy mogli poznać rzeczywiste pozycje i rozmiary elementów w ScalingLazyColumn po zastosowaniu skalowania. Naprawiliśmy też błąd w sposobie obliczania skalowania, gdy do elementu ScalingLazyColumn zastosowano dopełnienie treści „u góry”. (I27c07)
Zmiany w interfejsie API
- Dodaj klasę CurvedTextStyle, aby określić styl tekstu zakrzywionego Opcje. Podobnie jak TextStyle, ale teraz obsługuje tylko kolor, rozmiar czcionki i tło. W przyszłości dodamy więcej opcji stylizacji. (I96ac3)
- Do klasy ScalingLazyColumnState dodaliśmy interfejsy ScalingLazyColumnItemInfo i ScalingLazyColumnLayoutInfo, aby deweloperzy mogli poznać rzeczywiste pozycje i rozmiary elementów w ScalingLazyColumn po zastosowaniu skalowania. Naprawiliśmy też błąd w sposobie obliczania skalowania, gdy do elementu ScalingLazyColumn zastosowano dopełnienie treści „u góry”. (I27c07)
- Dodano
@ExperimentalWearMaterialApi
do wyliczeniaSwipeDismissTarget
, które jest częścią interfejsuSwipeToDismissBox
API. (I48b5e)
Poprawki błędów
- Dodano materiały testowe dla komponentu SwipeToDismissBox (I9febc)
Wersja 1.0.0-alpha03
4 sierpnia 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha03
i androidx.wear.compose:compose-material:1.0.0-alpha03
zostały opublikowane. Wersja 1.0.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Dodano komponent CurvedText, który umożliwia deweloperom łatwe pisanie tekstu wzdłuż krzywizny okręgu (zwykle na krawędzi okrągłego ekranu) (Id1267).
- Zmieniliśmy nazwę
CardDefaults.imageBackgroundPainter()
naCardDefaults.imageWithScrimBackgroundPainter()
, aby było jasne, że obraz tła będzie miał nałożoną na niego siatkę. (I53206) - Dodanie komponentu ScalingLazyColumn, który udostępnia komponent listy dla Wear Material, który zapewnia widok rybiego oka z zawartością listy zmniejszającą się i stającą się przezroczystą w miarę zbliżania się do krawędzi komponentu. (I7070c)
Poprawki błędów
- Zmieniliśmy domyślny kolor treści appName w komponencie AppCard w odpowiedzi na aktualizację specyfikacji UX. Domyślny kolor nazwy aplikacji to teraz
MaterialTheme.colors.onSurfaceVariant
. Dodano też brakujący opis parametru dokumentu dla miejsca na tytuł. (Ic4ad1)
Wersja 1.0.0-alpha02
21 lipca 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha02
i androidx.wear.compose:compose-material:1.0.0-alpha02
zostały opublikowane. Wersja 1.0.0-alpha02 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy nową klasę CurvedRow do kompozycji układanych w łuku (I29941).
- Dodano nowy typ karty do użytku w aplikacjach (TitleCard), a także obsługę obrazów jako tła kart, aby podkreślić ich zawartość (I53b0f).
Zmiany w interfejsie API
- Dodanie obsługi wyrównania radialnego w komponencie CurvedRow (podobnie jak wyrównanie pionowe w wierszu) (Id9de5)
- Dodawanie nowej klasy CurvedRow do ułożonych komponentów kompozycyjnych w łuku (I29941)
- Dodano nowy typ karty do użytku w aplikacjach (TitleCard), a także obsługę obrazów jako tła kart, aby podkreślić ich zawartość (I53b0f).
- Dodano ikony przełączników (pola wyboru, przełączniki i przyciski opcji) do ToggleChipDefaults, aby ułatwić deweloperom konfigurowanie elementów ToggleChip i SplitToggleChips (I7b639).
- Zaktualizowano dopełnienie początku i końca treści w elementach Chip, tak aby wynosiło ono zawsze 14 dp, niezależnie od tego, czy element Chip zawiera ikonę (wcześniej było to 12 dp, jeśli ikona była obecna, i 14 dp, jeśli nie) (I34c86).
Poprawki błędów
- Dodaj testy dla CurvedRow (I93cdb)
- Powiązanie zależności Wear Compose z Compose w wersji 1.0.0-rc01. (Ie6bc9)
- Zmieniliśmy sposób renderowania obrazu tła w przypadku kart i elementów, tak aby obraz był przycinany, a nie rozciągany, co pozwala zachować jego proporcje. (I29b41)
- Dodaliśmy więcej wersji demonstracyjnych i testów integracji elementów Button i ToggleButton. (5e27ed2)
- Dodano więcej testów elementów, aby uwzględnić kolory treści w przypadku elementów imageBackgroundChips (Ia9183).
Wersja 1.0.0-alpha01
1 lipca 2021 r.
androidx.wear.compose:compose-foundation:1.0.0-alpha01
i androidx.wear.compose:compose-material:1.0.0-alpha01
zostały opublikowane. Wersja 1.0.0-alpha01 zawiera te zmiany.
Nowe funkcje
Wear Compose to biblioteka oparta na języku Kotlin i Compose, która obsługuje Wear Material Design, czyli rozszerzenie Material Design na urządzenia z WearOS. Ta pierwsza wersja alfa zawiera wczesne, działające implementacje tych funkcji:
- Motyw Material – konfiguruje kolory, typografię i kształty w spójny sposób we wszystkich komponentach używanych z tej biblioteki.
- Chip, CompactChip – elementy w kształcie stadionu, dostępne w różnych wersjach, które mogą zawierać ikony, etykiety i etykiety dodatkowe.
- – ToggleChip, SplitToggleChip – specjalny rodzaj elementu, który zawiera miejsce na ikonę przełącznika dwustanowego, np. przycisku opcji lub pola wyboru. Dodatkowo element SplitToggleChip ma 2 obszary, które można kliknąć: jeden klikalny i jeden przełączany.
- Button, CompactButton – przyciski mają okrągły kształt i jedno miejsce na ikonę lub krótki tekst (maksymalnie 3 znaki).
- ToggleButton – przycisk, który włącza lub wyłącza działanie, z jednym miejscem na ikonę lub minimalny tekst (maksymalnie 3 znaki).
- Karta, AppCard – prostokątna z zaokrąglonymi rogami, z miejscami na treści takie jak ikona aplikacji, czas, tytuł i tekst.
W przyszłych wersjach rozszerzymy zestaw widżetów, dodając obsługę selektorów, suwaków, list, wskaźników stron, okien dialogowych, wskaźników przewijania, powiadomień i innych elementów interfejsu Material Design na Wear.
Dodatkowo zapewnimy obsługę innych funkcji specyficznych dla urządzeń do noszenia, takich jak zakrzywione układy i tekst, a także szkielety, które ułatwią deweloperom tworzenie aplikacji i nakładek na urządzenia do noszenia.
Wear Compose Material jest zaprojektowany zgodnie z tymi samymi zasadami co Compose Material, ale jest przeznaczony na urządzenia do noszenia. Podczas tworzenia aplikacji na urządzenia do noszenia należy używać biblioteki Wear Compose Material zamiast biblioteki Compose Material.
Obie biblioteki „Material” należy traktować jako wzajemnie wykluczające się i nie należy ich łączyć w tej samej aplikacji. Jeśli deweloperzy dodają bibliotekę Compose Material do zależności, oznacza to, że a) w bibliotece Wear Compose Material brakuje komponentów – daj nam znać, czego potrzebujesz, lub b) używają komponentu, którego nie zalecamy do używania na urządzeniu do noszenia.