wear protolayout
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja Alfa | 
|---|---|---|---|---|
| 22 października 2025 r. | 1.3.0 | - | - | 1.4.0-alpha02 | 
Deklarowanie zależności
Aby dodać zależność od wear-protolayout, 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 { // Use to implement support for Wear ProtoLayout Expressions implementation "androidx.wear.protolayout:protolayout-expression:1.3.0" // Use to implement support for Wear ProtoLayout implementation "androidx.wear.protolayout:protolayout:1.3.0" // Use to utilize components and layouts with Material design in your ProtoLayout implementation "androidx.wear.protolayout:protolayout-material:1.3.0" }
Kotlin
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation("androidx.wear.protolayout:protolayout-expression:1.3.0") // Use to implement support for Wear ProtoLayout implementation("androidx.wear.protolayout:protolayout:1.3.0") // Use to utilize components and layouts with Material design in your ProtoLayout implementation("androidx.wear.protolayout:protolayout-material:1.3.0") }
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 nowy problem, 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.
Wersja 1.4
Wersja 1.4.0-alpha02
22 października 2025 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.4.0-alpha02 Wersja 1.4.0-alpha02 zawiera te zmiany.
Nowe funkcje
- Dodano nowe źródło zdarzeń platformy (isInAmbientMode) określające, czy urządzenie jest w trybie otoczenia (Ief832).
Zmiany w interfejsie API
- Tag PendingIntentclickableakceptuje teraz działanie rezerwowe (LoadAction/LaunchAction), które ma być używane, gdy tagPendingIntentnie jest obsługiwany przezProtoLayoutRenderera. Działanie rezerwowe zostanie automatycznie wybrane i umieszczone w układzie, gdy wersja renderera będzie starsza niż ta, która obsługuje funkcjęPendingIntent. (I6eee2, b/450259727)
- Pole protoLayoutScopew ramachMaterialScopejest terazNonNull, co ułatwia korzystanie z niego, gdyMaterialScopejest tworzony za pomocąmaterialScopeWithResources. Dodatkowo istnieje funkcjahasProtoLayoutScope, która pozwala sprawdzić, czy jest on obecny. (I1858f, b/450067019)
Wersja 1.4.0-alpha01
24 września 2025 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.4.0-alpha01 Wersja 1.4.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Dodano metodę pomocniczą dla LayoutModifier, która powoduje, że element pojawia się stopniowo, gdy kafel staje się widoczny. (I38531, b/390345969)
- Dodaliśmy materialScopeWithResources, aby obsługiwać koncepcję M3MaterialScope, która zajmuje się też automatyczną rejestracją zasobów. Dodaliśmy w nim nowe metody pomocnicze dla obrazów (backgroundImageavatarImagei ikony), które eliminują konieczność ręcznego rejestrowania zasobów wonTileResourceRequest. (I525bd, b/428692714)
- ProtoLayoutFunkcje pomocnicze w Kotlinie dla- Imagei- ImageResourcesdo użycia z- ProtoLayoutScopei automatyczną rejestracją zasobów. (Iada82, b/430584304)
- Dodano funkcję pobierającą informacje o tym, ile właściwości Lottie jest dozwolonych w przypadku dostosowywania jednej animacji Lottie. (I73733, b/436532706)
- Dodaj interfejs API w AndroidLottieResourceByResId, aby umożliwić dostosowywanie animacji Lottie za pomocą właściwości, oraz interfejs API do tworzenia właściwości dla gniazda motywu z identyfikatorem gniazda w określonym kolorze. (I301b3, b/423581481)
- Dodawanie interfejsów API dostawców do akceptowania PendingIntentjako działania związanego z kliknięciem (I01978, b/433802488)
- Dodaj nowy interfejs API w Image.Builder–setImageResource, aby ustawić obiekt zasobu bezpośrednio na obrazie wonTileRequestbez konieczności rejestrowania go w mapowaniu wonTileResourcesRequest. (Ifa69a, b/428693523)
- Dodano koncepcję ProtoLayoutScopew ramach przygotowań do lepszego zarządzania zasobami w Kafelkach. (I132ce, b/428692423)
- ProtoLayoutMaterial3- MaterialScopeudostępnia teraz- Contextjako pole publiczne do użycia w metodach w zakresie bez konieczności przekazywania go. (I0e5cc, b/414559956)
- Udostępnianie publicznie semantycznych interfejsów API nagłówków (I75299, b/413653475)
- Udostępnij stałe ARC_DIRECTION_*do użytku wArc/ArcLine/ArcText/DashedArcLine. (I83959, b/427556439)
Zmiany w interfejsie API
- Wycofaliśmy metody Image.Builder()iImage.Builder.setResourceIdna rzecz nowego interfejsu API do automatycznej rejestracji zasobów, który jest dostępny w interfejsach APIImage.Builder(ProtoLayoutScope)iImage.Builder.setImageResourcei eliminuje konieczność zastępowania metodyonTileResourcesRequest. (I7bfe6, b/432758526)
- Przeniesienie interfejsów API do tworzenia ProtoLayoutScopez ograniczonego do publicznego. Nie należy ich jednak używać, ponieważ system już obsługuje te połączenia. (I1d8e8, b/432758251)
Poprawki błędów
- Dodaj implementację obsługi PendingIntentwProtoTiles(I38167, b/430610429)
- Dodaj metodę invalidateLayout. (Ief898)
- Przeniesienie domyślnego minSdk z API 21 na API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
- ImageResourcema teraz metody- hashCodei- equals. (I650ee, b/428692423, b/428693523)
- Dodaj nowy komunikat proto PendingIntentActioni jego konstruktora opakowania (Ie2aca, b/427643502).
- Zmniejsz częstotliwość tworzenia instancji ZoneId. (I284d3)
- Zastosuj domyślny opis treści do pojedynczego slota textButton. (I0dc8a, b/415001534)
- Poprawiono obliczenia dotyczące dostosowywania maksymalnej liczby wierszy po stronie renderowania. (I933bc, b/414353620)
Wersja 1.3
Wersja 1.3.0
4 czerwca 2025 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.3.0 Wersja 1.3.0 zawiera te zmiany.
Ważne zmiany od wersji 1.2.0
- Zegarek zyskuje design Material 3 z komponentami i układami zoptymalizowanymi pod kątem okrągłego wyświetlacza, które można odpowiednio skalować od małych do dużych ekranów.- Obejmuje to bibliotekę protolayout-material3tylko w języku Kotlin z interfejsami API bardziej przypominającymi Compose w przypadku tych komponentów i funkcji:
- Dynamiczny motyw kolorystyczny pochodzący z systemu i tarczy zegarka z najnowszym motywem Material 3 w zakresie kolorów, kształtów i typografii.
- MaterialScope– do obsługi wszystkich domyślnych ustawień i łatwiejszego dostosowywania.
- iconEdgeButton,- textEdgeButton
- iconButton,- textButton,- button,- imageButton,- avatarButton,- compactButton
- titleCard,- appCard,- graphicDataCard,- iconDataCard,- textDataCard
- circularProgressIndicator,- segmentedCircularProgressIndicator
- primaryLayout,- buttonGroup
- Wszystkie komponenty działają na wszystkich poziomach pakietu SDK i wersjach ProtoLayoutRenderera, a w razie potrzeby zapewniają odpowiednie rozwiązania zastępcze.
 
- Obejmuje to bibliotekę 
- Bardziej przyjazne dla języka Kotlin interfejsy API podobne do Compose dla podstawowych elementów ProtoLayout
- LayoutModifierz możliwością dodawania większości modyfikatorów jako funkcji połączonych (- padding,- contentDescription[w tym- clearSemantics],- background,- clip,- opacityitp.), które można przekształcić w istniejący obiekt- Modifiers.
- LayoutColorsi- LayoutStringjako typy, które ułatwiają korzystanie z pól dynamicznych i ograniczeń.
- texti- fontStyle
- lepsza obsługa map dla StateBuilder, w tymDynamicDataMapi metody fabryczne, takie jakintAppDataKey, które ułatwiają tworzenie obiektówAppDataKey;
 
- Animacje Lottie obsługują opcję ustawiania różnych wyzwalaczy, które określają, kiedy animacja ma się rozpocząć, np. po wczytaniu układu lub gdy układ stanie się widoczny.
- Ulepszona obsługa gradientów:
- Interfejs Linear gradient API w ramach Brush, którego można używać w modyfikatorachBackgroundw przypadku elementów takich jakBox,Spaceritp.
- Zezwalanie na dynamiczne wartości kolorów w ColorStopużywane w przypadku gradientów liniowych i kątowych
- Istniejący gradient kołowy w obiektach łukowych obsługuje teraz dynamiczne kolory oraz kąty początkowe i końcowe.
 
- Powiązanie danych platformy w protolayout-expression, aby otrzymywać informacje za każdym razem, gdy zmieni się widoczność układu. Można to wykorzystać na przykład do ukrywania niektórych części układu podczas przesuwania kafelka.
- Dodano bibliotekę testową – protolayout-testing–, aby ułatwić testowanie jednostkowe wszystkich elementów ProtoLayout.
- Nowy element DashedArcLinez ulepszonym zestawem funkcji, dzięki któremu linia może zawierać kreski, w przeciwieństwie do dotychczasowego elementuArcLine.
- ArcSpacermożliwość ustawienia długości w jednostkach DP zamiast w stopniach;
- Dodano oś zaokrąglenia FontSetting, która ma zastosowanie w przypadku niektórych czcionek.
Wersja 1.3.0-rc01
20 maja 2025 r.
androidx.wear.protolayout:protolayout-*:1.3.0-rc01 jest udostępniana bez zmian w porównaniu z poprzednią wersją. Wersja 1.3.0-rc01 zawiera te zmiany.
Wersja 1.3.0-beta02
7 maja 2025 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.3.0-beta02 Wersja 1.3.0-beta02 zawiera te zmiany.
Poprawki błędów
- Wprowadziliśmy ważne ulepszenie wartości projektu typografii, które są stosowane w przypadku interfejsu API w wersji 36 i nowszych. Od interfejsu API w wersji 36 wszystkie kafelki będą korzystać z czcionki systemowej, więc ta zmiana wprowadza większą spójność w karuzeli kafelków. (If316f)
- Konstruktory Text,Spacer,ArcLineiDashedArcLinenie zgłoszą błędu, jeśli nie zostaną ustawione wartości dynamicznelayoutConstraints. Pamiętaj, że starsze programy renderujące nadal wymagają ustawienia wartościlayoutConstraintsi będą ignorować każdą wartość dynamiczną, która nie ma tego ustawienia. (Ic52e8)
- Dodaj modyfikator semantyki nagłówka, aby wskazać, że element układu jest nagłówkiem sekcji treści na potrzeby ułatwień dostępu, i oznacz tekst w slocie tytułu elementu primaryLayoutjako nagłówek ułatwień dostępu. (Iae1fb)
- Ostateczne dopracowanie UX w przypadku primaryLayout, w którym na mniejszych ekranach odstęp między miejscem na tytuł a głównym miejscem został zmniejszony z 6 dp do 4 dp. (I0e056)
- Zastosuj domyślny opis treści do textEdgeButton. (Ifaf8b)
- Drobna aktualizacja wewnętrznego dopełnienia avatarButton. (I0910b)
Wersja 1.3.0-beta01
9 kwietnia 2025 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.3.0-beta01 Wersja 1.3.0-beta01 zawiera te zmiany.
Nowe funkcje
Wersja 1.3.0-beta01 biblioteki Wear ProtoLayout wskazuje, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany (z wyjątkiem funkcji oznaczonych jako eksperymentalne). Wear ProtoLayout 1.3 zawiera te nowe funkcje i interfejsy API:
- Zegarek zyskuje design Material 3 z komponentami i układami zoptymalizowanymi pod kątem okrągłego wyświetlacza, które można odpowiednio skalować od małych do dużych ekranów.- Obejmuje to bibliotekę protolayout-material3tylko w języku Kotlin z interfejsami API bardziej przypominającymi Compose w przypadku tych komponentów i funkcji:
- Dynamiczny motyw kolorystyczny pochodzący z systemu i tarczy zegarka z najnowszym motywem Material 3 w zakresie kolorów, kształtów i typografii.
- MaterialScope– do obsługi wszystkich domyślnych ustawień i łatwiejszego dostosowywania.
- iconEdgeButton,- textEdgeButton
- iconButton,- textButton,- button,- imageButton,- avatarButton,- compactButton
- titleCard,- appCard,- graphicDataCard,- iconDataCard,- textDataCard
- circularProgressIndicator,- segmentedCircularProgressIndicator
- primaryLayout,- buttonGroup
- Wszystkie komponenty działają na wszystkich poziomach SDK i wersjach renderera ProtoLayout, a w razie potrzeby zapewniają odpowiednie opcje rezerwowe.
 
- Obejmuje to bibliotekę 
- Bardziej przyjazne dla języka Kotlin interfejsy API podobne do Compose dla podstawowych elementów ProtoLayout
- LayoutModifierz możliwością dodawania większości modyfikatorów jako funkcji połączonych (- padding,- contentDescription[w tym- clearSemantics],- background,- clip,- opacityitp.), które można przekształcić w istniejący obiekt- Modifiers.
- LayoutColorsi- LayoutStringjako typy, które ułatwiają korzystanie z pól dynamicznych i ograniczeń.
- texti- fontStyle
- lepsza obsługa map dla StateBuilder, w tymDynamicDataMapi metody fabryczne, takie jakintAppDataKey, które ułatwiają tworzenie obiektówAppDataKey;
 
- Animacje Lottie obsługują opcję ustawiania różnych wyzwalaczy, które określają, kiedy animacja ma się rozpocząć, np. po wczytaniu układu lub gdy układ stanie się widoczny.
- Ulepszona obsługa gradientów:
- Interfejs Linear gradient API w ramach Brush, którego można używać w modyfikatorachBackgroundw przypadku elementów takich jakBox,Spaceritp.
- Zezwalanie na dynamiczne wartości kolorów w ColorStopużywane w przypadku gradientów liniowych i kątowych
- Istniejący gradient kołowy w obiektach łukowych obsługuje teraz dynamiczne kolory oraz kąty początkowe i końcowe.
 
- Powiązanie danych platformy w protolayout-expression, aby otrzymywać informacje za każdym razem, gdy zmieni się widoczność układu. Można to wykorzystać na przykład do ukrywania niektórych części układu podczas przesuwania kafelka.
- Dodano bibliotekę testową – protolayout-testing–, aby ułatwić testowanie jednostkowe wszystkich elementów ProtoLayout.
- Nowy element DashedArcLinez ulepszonym zestawem funkcji, dzięki któremu linia może zawierać kreski, w przeciwieństwie do dotychczasowego elementuArcLine.
- ArcSpacermożliwość ustawienia długości w jednostkach DP zamiast w stopniach;
- Dodano oś zaokrąglenia FontSetting, która ma zastosowanie w przypadku niektórych czcionek.
Wersja 1.3.0-alpha10
12 marca 2025 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.3.0-alpha10 Wersja 1.3.0-alpha10 zawiera te zmiany.
Nowe funkcje
- Dodano funkcję pomocniczą dla pędzla w modyfikatorze tła w Kotlinie. (I995de)
- Obowiązkowe pole kontekstu Androida zostało udostępnione publicznie w MaterialScope, aby ułatwić korzystanie z niego w funkcjach deweloperów, które tworzą komponenty do kafelków Material3. (I7df73)
Zmiany w interfejsie API
- Zmieniliśmy nazwę interfejsu API platformVisibilityStatusnaPlatformEventSources.isLayoutVisiblei dodaliśmy nowy eksperymentalny interfejs APIPlatformEventSources.isLayoutUpdatePending. (Ie1e04)
Poprawki błędów
- Marginesy w przypadku elementu primaryLayoutsą teraz prawidłowo zaokrąglane w górę, co może mieć wpływ na niektóre układy, w których główny slot może mieć o 2 dp mniej miejsca. (I8f5d3)
- Wyjaśnienie domyślnego dynamicznego motywu kolorystycznego w ProtoLayoutkomponentach Material 3. (Iff5f3)
- Typography.NUMERAL_*czcionki nie są już domyślnie tabelaryczne ani o stałej szerokości. Jeśli tekst jest animowany, zdecydowanie zalecamy dodanie do niego ustawienia- FontSetting.tabularNum(). W pozostałych przypadkach ta opcja nie jest potrzebna, a bez niej dostępnych będzie więcej znaków. (Id3cd9)
- Wyjaśnienie domyślnego dynamicznego motywu kolorystycznego w ProtoLayoutkomponentach Material 3. (I9d831)
Wersja 1.3.0-alpha09
26 lutego 2025 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.3.0-alpha09 Wersja 1.3.0-alpha09 zawiera te zmiany.
Nowe funkcje
- Dodano eksperymentalne modyfikatory dla enterTransitioniexitTransition(I4a4d6)
- Dodaliśmy dodatkowe powiązanie platformy, aby otrzymywać stan widoczności pełnego układu za każdym razem, gdy się on zmieni. (I250c3)
- Zezwalaj na wstrzykiwanie stanu aplikacji testowej i danych platformy do LayoutElementAssertionsProviderw celu oceny wartości dynamicznych. (Ib5fcb)
- Dodawanie filtrów narożnych do biblioteki testowania protolayoutu (Ie2361)
- ButtonColors,- CardColorsi- ProgressIndicatorColorsobsługują teraz metodę kopiowania z opcjonalnym zastępowaniem niektórych parametrów. (Ie2054)
Zmiany w interfejsie API
- Dodanie do biblioteki testowej obsługi dynamicznego wiązania danych (Ib98de)
- Naprawiono imageButtonużywane z funkcjąbackgroundImageprzez usunięcie nakładki. Dodatkowo zezwól na funkcjębackgroundImage, aby umożliwić określenie wartości null dla koloru nakładki, co oznacza, że nakładka nie zostanie zastosowana. (Ibec3c)
Poprawki błędów
- Zmieniono domyślną metodę hasValueOfType, aby zgłaszała wyjątekUnsupportedOperationExceptionzamiastIllegalArgumentException. (Ia36c3)
- Zaktualizowano domyślne wartości tokenów kolorów, aby odzwierciedlały najnowszą specyfikację. (I75d44)
- Rozwiązanie problemu z aliasingiem widocznym na liniach łuków w renderowaniu kafelków AndroidX. (I88190)
Wersja 1.3.0-alpha08
12 lutego 2025 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.3.0-alpha08 Wersja 1.3.0-alpha08 zawiera te zmiany.
Nowe funkcje
- Dodaj parametr listy FontSettingdla tekstu Material3. (Ic102d)
- Dodano klasę DynamicDataMap, któraStateBuilderobsługuje teraz lepiej zabezpieczony pod względem typów interfejs API Kotlin do obsługi stanów aplikacji (I012ba).
- Dodano metody fabryczne, takie jak intAppDataKey, aby ułatwić tworzenie obiektówAppDataKey(Icea2a).
- DynamicDataValuema teraz metodę- hasValueOfType(Class<?>)oprócz metod- hasInt/hasColor/... (I4f7a6)
- Dodaliśmy errorDimdoColorSchemeMaterial3 ProtoLayoutColorSchemew przypadku błędów o wysokim priorytecie lub działań awaryjnych, takich jak alerty dotyczące bezpieczeństwa. (Ia17bb)
- Dodaliśmy zabezpieczenie 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)
Zmiany w interfejsie API
- addKeyToValueMappingzostała zmieniona na- addToStateMap, a metody- DynamicDataMap.putzostały usunięte, ponieważ były zbędne. (Ibe9dd)
- Typografia Material3 obsługuje teraz oś zmiennej zaokrąglenia w przypadku czcionek systemowych, które ją obsługują. ProtoLayoutFontSettingobsługuje oś zaokrąglenia w przypadku czcionek, które ją obsługują. (I33eb5)
- Zmieniono nazwę multilineAlignmentna wyrównanie w metodzie tekstowej Material3. (I2b66b)
- Zaktualizuj kołowy wskaźnik postępu, aby był typu Box. Określ też, że mainContentwconstructGraphicma być typu Box (I5a3dc).
- Lepsza obsługa korzystania z kołowego wskaźnika postępu na wykresie (I039db)
Poprawki błędów
- Zezwalaj na wartości dynamiczne w ColorStop, a także na kąty początkowe i końcowe wSweepGradient. (I0146d)
- Poprawki w Dokumentach. (I4a63a)
- Zaktualizowaliśmy komponenty Material 3 (graphicCardiavatarButton), aby zapewnić rezerwę, gdyweightwymiar rozwijania nie jest obsługiwany (np. w przypadku interfejsu API w wersji starszej niż 33). Zaktualizowano komponent tekstowy, aby w przypadku, gdyTEXT_OVERFLOW_ELLIPSIZEnie jest obsługiwany przez moduł renderujący, używałTEXT_OVERFLOW_ELLIPSIZE_END. (I19e2c)
- Aktualizacja dokumentacji dotycząca PrimaryLayoutMargins. (Ibaf7b)
Wersja 1.3.0-alpha07
29 stycznia 2025 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.3.0-alpha07 Wersja 1.3.0-alpha07 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy opcję interfejsu API, która umożliwia ustawianie różnych wyzwalaczy animacji Lottie. Dodano też interfejs API do reguł uruchamianych, gdy układ jest widoczny (I8272d).
- Dodano modyfikatory border,visibilityiopacity. (I6d3dd)
- Dodano przycisk awatara do komponentu ProtoLayout Material3. (Idb5ae)
- Umożliwiamy teraz dostosowywanie marginesów (bocznych i w niektórych przypadkach dolnych) w Material3primaryLayout. (Ib22f6)
- Dodaj podzieloną wersję kołowego wskaźnika postępu. (I6a648)
- Dodano komponent kompaktowego przycisku do ProtoLayout Material3. (Ia3c5c)
- Dodano komponenty przycisku w kształcie pigułki i przycisku obrazu do ProtoLayout Material3. (Ifb88a)
Zmiany w interfejsie API
- LayoutModfier.foldInzmieniło nazwę na- foldRight, aby lepiej odzwierciedlać oczekiwane działanie (Idf242).
- Warunek VisibleOncejest obecnie w fazie eksperymentalnej. (Ib2d26)
- Usuń withOpacityz publicznego interfejsu API, ponieważ istnieje alternatywna biblioteka graficzna. (I030c2)
- Zmieniono nazwy metod najwyższego poziomu w LayoutString.ktiLayoutColor.kt, aby były bardziej przyjazne dla języka Java. (I7aff0)
- Usunięto typografie inne niż ProtoLayout w Material3. (Idd9ae)
- Dodaj sufiks Color do pól w klasach *Colorsw Material3. (I2d114)
Poprawki błędów
- Dodano implementację zastępczą EdgeButtondla starszych programów renderujących bez obsługi asymetrycznych rogów. (I63364)
- Dodaj implementację zastępczą kołowego wskaźnika postępu ze starszym rendererem. (I0f134)
Wersja 1.3.0-alpha06
15 stycznia 2025 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.3.0-alpha06 Wersja 1.3.0-alpha06 zawiera te zmiany.
Nowe funkcje
- LayoutColor– aby obsługiwać statyczne i dynamiczne typy kolorów (I4c89b).
- Dodano komponent ProtoLayout Material3textButton. (Id680d)
- Dodaj komponent iconButtonProtoLayout Material3. (Ica3f0)
- Dodaliśmy komponent kontenera przycisku Material3 ProtoLayout. (I17a38)
- Dodano obsługę modyfikatorów semantycznych, które można łączyć w łańcuchy, w bibliotece protolayout-material3 (I4af62)
- Dodano pojedynczy segment ProtoLayout Material3 CircularProgressIndicator(I2c8a2)
- Dodano modyfikatory padding,metadata(I8720a)
- Dodano modyfikatory background,clipiclickable(I35478)
- Dodaj LinearGradientdo pędzla i zezwalaj na jego używanie w modyfikatorze tła. (Ic4dea)
- Dodaj mały rozmiar dla karty aplikacji i titleCard. (I91f98)
- Dodano komponent ProtoLayout Material3 graphicDataCard. (I92be7)
- Dodano komponenty ProtoLayout Material3 iconDataCarditextDataCard. (I4e1e4)
- Dodano komponent ProtoLayout Material3 appCard. (Id4c57)
- Wyodrębnij EdgeButtonColorsdoButtonColors. (I83624)
- Dodano komponent ProtoLayout Material3 titleCard. (I2dc72)
Zmiany w interfejsie API
- Interfejs ProtoLayout Material3 API akceptuje teraz LayoutString, aby obsługiwać zarówno tekst statyczny, jak i dynamiczny. (I9c24a)
Poprawki błędów
- Dodaj implementację renderera do rozwijania DashedArcLine(I0c700)
- Zmiana renderowania, aby umożliwić ArcSpacerpobieranie długości dp. (I1437b)
Wersja 1.3.0-alpha05
11 grudnia 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.3.0-alpha05 Wersja 1.3.0-alpha05 zawiera te zmiany.
Nowe funkcje
- Dodano LayoutString, aby obsługiwać pola ciągów układu z możliwością powiązania. (Ida650)
- Dodano komponent kontenera karty ProtoLayout Material3. (Ic985a)
Poprawki błędów
- Ta biblioteka korzysta teraz z adnotacji o wartości null JSpecify, które są używane w typie. Deweloperzy Kotlin powinni używać tego argumentu kompilatora, aby wymusić prawidłowe użycie: -Xjspecify-annotations=strict(jest to domyślne ustawienie od wersji 2.1.0 kompilatora Kotlin). (Id1f9b, b/326456246)
Wersja 1.3.0-alpha04
13 listopada 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.3.0-alpha04 Wersja 1.3.0-alpha04 zawiera te zmiany.
Nowe funkcje
- Zaktualizowano kształt Material3, aby był klasą z polami zawierającymi rzeczywistą wartość Corner, tak jak w Wear Compose. (Ied8cd)
- Zaktualizowano kolory Material3, aby uwzględnić koncepcję ColorScheme, tak jak w Wear Compose. (If645e)
- Dodaj do biblioteki testowej kilka powszechnie używanych funkcji dopasowywania. (Ie5cec)
Wersja 1.3.0-alpha03
30 października 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.3.0-alpha03 Wersja 1.3.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Dodanie do biblioteki testowej elementów LayoutElementAssertionsProvider,LayoutElementAssertioniLayoutElementMatcher(Id1110)
Wersja 1.3.0-alpha02
16 października 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.3.0-alpha02 Wersja 1.3.0-alpha02 zawiera te zmiany.
Nowe funkcje
- Pierwsza wersja biblioteki Material 3. Obejmuje komponenty text,edgeButton,buttonGroupiprimaryLayout.
Poprawki zabezpieczeń
- Od tej zmiany androidx jest kompilowany z użyciem protobuf w wersji 4.28.2, aby rozwiązać problem CVE-2024-7254. Aby wyeliminować ryzyko związane z luką w zabezpieczeniach, zaktualizuj zależność od wersji 1.3.0-alpha01 bibliotek androidx.wear.protolayout:protolayout-protoiandroidx.wear.protolayout:protolayout-external-protobufdo wersji 1.3.0-alpha02.
Wkład zewnętrzny
Wersja 1.3.0-alpha01
2 października 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zmiany.
Poprawki błędów
- Wyjaśniliśmy, że dostępność nazw rodzin czcionek Roboto i Roboto Flex zależy od urządzenia. (I193be)
- Włączono rodzinę czcionek Roboto Flex w renderowaniu kafelków AndroidX. (I08e94)
Wersja 1.2
Wersja 1.2.1
16 października 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.2.1 Wersja 1.2.1 zawiera te zmiany.
Poprawki zabezpieczeń
- Od tej zmiany androidx jest kompilowany z użyciem protobuf w wersji 4.28.2, aby rozwiązać problem CVE-2024-7254. Aby wyeliminować ryzyko związane z luką w zabezpieczeniach, zaktualizuj zależność od androidx.wear.protolayout:protolayout-protoiandroidx.wear.protolayout:protolayout-external-protobufw wersji 1.2.0 do wersji 1.2.1.
Wersja 1.2.0
7 sierpnia 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.2.0 Wersja 1.2.0 zawiera te zmiany.
Ważne zmiany od wersji 1.1.0
- FontStylezostała zaktualizowana, aby obsługiwać dodatkowe czcionki w przypadku osi zmiennych i lepszy interfejs API wyboru czcionek, który będzie obsługiwać przyszłe czcionki Flex.
- Obsługa dodatkowych modyfikatorów:- Modyfikator przekształcenia oferujący translację, obrót i skalowanie z animacjami lub bez nich.
- Określanie różnych wartości (poziomych i pionowych) dla każdego promienia zaokrąglenia.
 
- Poprawiliśmy dostępność wszystkich docelowych elementów dotykowych, rozszerzając obszar klikalny każdego elementu, który używa modyfikatora Clickable, tak aby miał co najmniej 48dp×48dp.
- Ulepszyliśmy elementy PrimaryLayoutiEdgeContentLayout, dodając do nich elementsetResponsiveContentInsetEnabled, aby lepiej obsługiwać elastyczne działanie tych układów na różnych rozmiarach ekranu i zwiększyć spójność kafelków.
- Ulepszone skalowanie i nieskalowanie tekstu Material w przypadku nieliniowego skalowania czcionek w Androidzie 14.
- Ulepszona obsługa układu od prawej do lewej we wszystkich elementach łuku.
Dodatkowe zmiany
- Pełniejszy zestaw zmian wprowadzonych w wersji 1.1.0 znajdziesz w informacjach o wersji beta01.
Wersja 1.2.0-rc01
24 lipca 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zmiany.
Poprawki błędów
- Poprawiliśmy standardowy komponent Material Chip, aby można go było używać jako ikony tylko wtedy, gdy nie przekazano żadnej etykiety głównej ani dodatkowej. (Iceef9)
- Dokumentacja układów Material została zaktualizowana i zawiera teraz elementy wizualne z odpowiedniej strony, aby ułatwić zrozumienie układów. (I0256a)
Wersja 1.2.0-beta01
10 lipca 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zmiany.
Nowe funkcje
Wersja 1.2.0-beta01 biblioteki Wear ProtoLayout wskazuje, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany (z wyjątkiem miejsc oznaczonych jako eksperymentalne). Wear ProtoLayout 1.2 zawiera te nowe funkcje i interfejsy API:
- FontStylezostało zaktualizowane, aby obsługiwać dodatkowe czcionki w sposób opisany poniżej:- Ustawianie różnych ustawień wariantu czcionki, takich jak FontSetting.weightiFontSetting.width
- Ustawianie tej samej szerokości wszystkich znaków numerycznych – cyfry tabelaryczne (ustawienie funkcji czcionki FontSetting.tnum)
- Ulepszone interfejsy API wyboru czcionek, które obsługują nadchodzące czcionki elastyczne przez określanie preferowanych nazw rodzin czcionek do użycia.
 
- Ustawianie różnych ustawień wariantu czcionki, takich jak 
- Rozszerzony modyfikator Corner, który umożliwia określanie każdegoCornerRadiusza pomocą osobnych wartości poziomej i pionowej, co pozwala tworzyć elementy budowlane z asymetrycznymi narożnikami.
- Dodaliśmy nowy modyfikator Transformation, który umożliwia tłumaczenie, obracanie i skalowanieLayoutElement. Te przekształcenia można animować za pomocą wartości dynamicznych.
- Do wszystkich elementów łuku (Arc,ArcLineiArcText) dodano atrybutsetArcDirectionz opcjamiClockwise,CounterClockwiseiNormal, aby zapewnić lepszą obsługę w różnych kierunkach układu (np. od lewej do prawej i od prawej do lewej).
- Poprawiliśmy dostępność wszystkich docelowych elementów dotykowych, rozszerzając obszar klikalny każdego elementu, który używa modyfikatora Clickable, tak aby miał co najmniej48dp×48dp.
- Ulepszyliśmy elementy PrimaryLayoutiEdgeContentLayout, dodając do nich elementsetResponsiveContentInsetEnabled, aby lepiej obsługiwać elastyczne działanie tych układów na różnych rozmiarach ekranu i zwiększyć spójność kafelków. Dodaliśmy ostrzeżenie narzędzia do sprawdzania kodu, które sugeruje użycie tych interfejsów API z szybką poprawką.
- Ulepszone skalowanie i nieskalowanie elementów Material Textna potrzeby nieliniowego skalowania czcionek w Androidzie 14.
Zmiany w interfejsie API
- Nazwa domyślnej rodziny czcionek (DEFAULT_SYSTEM_FONT) została usunięta, ponieważ jest implikowana przez nieużywanie interfejsu APIpreferredFontFamilies. (I39dab)
- Parametr przekazywany do funkcji FontSetting.widthpowinien być liczbą dodatnią. (I1266f)
Wersja 1.2.0-alpha05
26 czerwca 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.2.0-alpha05 Wersja 1.2.0-alpha05 zawiera te zmiany.
Nowe funkcje
- Dodaj metodę hasTextdoMaterial.CompactChip, aby sprawdzić, czy treść tekstowa została ustawiona. (I6e8fc)
Zmiany w interfejsie API
- FontFamilyconst są przenoszone do- FontStylezamiast do klasy Builder. (I06ced)
- Zaktualizuj interfejsy API FontSetting.weightiFontSetting.width, aby zawierały adnotacje dotyczące zakresu, i zmień parametr wagi na liczbę całkowitą. (Ia726c)
Poprawki błędów
- Teksty bez możliwości skalowania w bibliotece Material działają teraz prawidłowo z nieliniowym skalowaniem czcionek w Androidzie 14. (I6601e)
Wersja 1.2.0-alpha04
29 maja 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.2.0-alpha04 Wersja 1.2.0-alpha04 zawiera te zmiany.
Zmiany w interfejsie API
- Dodano asymetryczne rogi API, aby można było określić promień każdego rogu osobno za pomocą 2 wartości. (Icbd69)
- Rozszerzyliśmy interfejs FontSettingAPI o te funkcje:
- Dodaliśmy do FontStyleinterfejs API rodziny czcionek, który umożliwia określenie listy kolejności rodzin czcionek, które mają być używane. (Iba9f5)
- Zmieniliśmy nazwy stałych dotyczących wysokości odstępu między treścią a etykietą dodatkową w LayoutDefaultsMaterial Design. Początkowo miały one przedrostek „Edge content”, ale teraz są bardziej ogólne, ponieważ można je stosować zarówno wPrimaryLayout, jak i wEdgeContentLayout. (I4dc32)
Poprawki błędów
- Zmieniono nazewnictwo osi czcionki zmiennej z axisNamenaaxisTag. (I02ba3)
Wersja 1.2.0-alpha03
14 maja 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.2.0-alpha03 Wersja 1.2.0-alpha03 zawiera te commity.
Nowe funkcje
- Dodano interfejs API do ustawiania niestandardowych wartości wagi dla FontStyle. (I7390a)
Poprawki błędów
- Rozwiąż problem w getTouchDelegateInfospowodowany pustą mapą docelową. (I2accf)
Wersja 1.2.0-alpha02
1 maja 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.2.0-alpha02 Wersja 1.2.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaliśmy możliwość wyłączania efektu fali w przypadku poszczególnych elementów, które można kliknąć. (If1ede)
- Interfejs API do przekształcania został usunięty z ArcModifiers, ponieważ nie obsługuje on tej funkcji (Ic0827).
- ArcDirectionPropBuilder oczekuje teraz wartości w konstruktorze. (I76ada)
- Metoda PlatformDataValues.Builder.putAllumożliwia scalenie jednegoPlatformDataValuez innym. (I50ba3)
- Nazwa Text#setIsScalablezostała zmieniona naText#setScalable. (If920e)
- Tekst Material może określać, czy ma używać skalowalnego rozmiaru (powiększa się, gdy użytkownik zmieni rozmiar czcionki). (Ibc849)
- Dodaliśmy opcję ustawienia opisu treści na TitleChip. (I5d21f)
- Naprawiono CompactChip, aby działał prawidłowo tylko z ikoną, i zaktualizowano interfejs API, aby umożliwić tę opcję. (I6589e)
Poprawki błędów
- Rozwiązaliśmy problem z potencjalnym duplikowaniem danych platformy podczas inicjowania. (Iba0fd)
- Wprowadź nowy getter do DynamicDataNode, aby pobrać koszt węzła. Koszt jest używany podczas uzyskiwania limitu węzłów dynamicznych. Obecnie węzły o stałych wartościach mają koszt 0, a wszystkie pozostałe węzły mają koszt 1. (Ia33e1)
- Usuń logikę zliczania z NO_OP_QUOTA_MANAGER. (Ib50b8)
- Dodaliśmy regułę lint, która wyświetla ostrzeżenie, gdy element PrimaryLayoutjest używany bez elementusetResponsiveContentInsetEnabled, i zapewnia szybką poprawkę. (I12025)
- Liczba węzłów wyrażeń dynamicznych jest ograniczona. (Iffae8)
Wersja 1.2.0-alpha01
6 marca 2024 roku
Publikacja androidx.wear.protolayout:protolayout-*:1.2.0-alpha01 Wersja 1.2.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Elementy ProtoLayout Arcmają teraz możliwość dodania do nich atrybutuArcDirection(Clockwise,CounterclockwiselubNormal). Dodanie tego zachowania doArc,ArcLinelubArcTextnaprawi ich zachowanie w układach od prawej do lewej. (I90699)
- EdgeContentLayoutzostało zaktualizowane o nowy setter- setResponsiveContentInsetEnabled, aby lepiej dopasować je do wytycznych UX, zapewnić spójność w przypadku kafelków dzięki umieszczeniu głównej etykiety w stałym miejscu u góry i odpowiedniemu wcięciu etykiet. (I60175)
- Dodaliśmy element PrimaryLayout.setResponsiveContentInsetEnabled, który dodaje responsywny margines wewnętrzny do etykiety głównej, etykiety dodatkowej i dolnego elementu w tym układzie, aby uniknąć sytuacji, w której treść wychodzi poza krawędź ekranu. (I0c457)
- Dodaje metodę usuwania zewnętrznych marginesów z CircularProgressIndicator, aby można było go używać jako mniejszego komponentu. (I55c06)
Zmiany w interfejsie API
- Renderowanie kafelków domyślnie wyklucza teraz dopełnienie czcionki we wszystkich elementach tekstowych bez możliwości jego uwzględnienia. (I3e300)
Poprawki błędów
- Rozwiązaliśmy problem z wyrównaniem tekstu, gdy w tekście użyto funkcji obcinania, odstępu między literami i wyrównania do środka. (I716c7)
- Dodano obejście problemu z rysowaniem łuku w bibliotece Skia. (I08f09)
- Naprawiono kierunek rysowania ArcLinew przypadku układów od prawej do lewej. (I6c141)
Wersja 1.1
Wersja 1.1.0
7 lutego 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.1.0 Wersja 1.1.0 zawiera te zmiany.
Ważne zmiany od wersji 1.0.0
- Obsługa gradientów i lepsze przedstawianie długości większych niż 360 stopni w ArcLine.
- Formatowanie daty i godziny obsługuje różne strefy czasowe w przypadku dynamicznych typów danych.
- lepsze opcje automatycznego dopasowywania rozmiaru tekstu i obcinania go, aby obsługiwać skrócony tekst;
- Element Spacer obsługuje rozwinięte wymiary z opcjonalną wagą.
- Dodanie do wszystkich interfejsów API usługi ProtoLayoutadnotacji o wymaganej wersji schematu.
- Rozszerzono obszar docelowy każdego elementu Clickabledo 48 dp x 48 dp, aby spełniał wymagania dotyczące ułatwień dostępu.
- Domyślnie dopełnienie czcionki jest wyłączone i jest to jedyne zachowanie we wszystkich elementach tekstowych i komponentach Material zawierających tekst.
Dodatkowe zmiany
- Pełniejszy zestaw zmian wprowadzonych w wersji 1.1.0 znajdziesz w informacjach o wersji beta01.
Wersja 1.1.0-rc01
24 stycznia 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zmiany.
Poprawki błędów
- PlatformTimeUpdateNotifierImplpojawi się natychmiast po włączeniu aktualizacji. (I77145)
- CircularProgressIndicatorzostał poprawiony w przypadku układów od prawej do lewej. Od tej pory będzie się obracać zgodnie z ruchem wskazówek zegara we wszystkich przypadkach. (I95ee3)
- Dodano obejście problemu z rysowaniem łuku w bibliotece Skia. (I08f09)
Wersja 1.1.0-beta01
10 stycznia 2024 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.1.0-beta01 Wersja 1.1.0-beta01 zawiera te zmiany.
Nowe funkcje
Wersja 1.1.0-beta01 biblioteki Wear ProtoLayout wskazuje, że ta wersja biblioteki jest w pełni funkcjonalna, a interfejs API jest zablokowany (z wyjątkiem miejsc oznaczonych jako eksperymentalne). Wear ProtoLayout 1.1 zawiera te nowe funkcje i interfejsy API:
- ArcLineobsługuje teraz gradient, dodając- Brushz- SweepGradienti cień na górze, aby lepiej przedstawić długość większą niż 360 stopni, dodając- Shadowdo istniejącego- StrokeCap.
- DynamicInstantobsługuje formatowanie daty i godziny z uwzględnieniem strefy czasowej.- DynamicInstanti- DynamicDurationmogą być używane jako typy danych dotyczące stanu lub platformy.
- Funkcja automatycznego dostosowywania rozmiaru tekstu, która umożliwia ustawienie wielu rozmiarów na FontStyle.setSizes, dzięki czemu rozmiar tekstu będzie automatycznie skalowany na podstawie miejsca w elemencie nadrzędnym. Dodatkowo ulepszyliśmy opcje obcinania tekstu, który się nie mieści, dodającTEXT_OVERFLOW_ELLIPSIZEi wycofującTEXT_OVERFLOW_ELLIPSIZE_END.
- Spacerobsługuje teraz rozszerzone wymiary z opcjonalną wagą. Do tworzenia- ExpandedDimensionPropdodaliśmy metodę pomocniczą- DimensionBuilders.weight.
- Obsługa dynamicznego ukrywania i odkrywania elementów układu za pomocą Modifier.visible. Obejmuje to wartości dynamiczne wBoolProp.
- Wszystkie interfejsy API ProtoLayoutmają teraz adnotację o wymaganiu dotyczącym wersji schematu, a wersję można sprawdzić przed wywołaniem nowszego interfejsu API.
- Każdy element, który ma Clickable, ma teraz obszar docelowy rozszerzony w programie renderującym do co najmniej 48 x 48, aby lepiej spełniać wymagania dotyczące ułatwień dostępu.
- Zgodnie z innymi komponentami Material i inicjatywami związanymi z Compose wyłączyliśmy teraz domyślnie dopełnienie czcionki we wszystkich elementach Text. Dodatkowo z publicznego interfejsu API usuniętoAndroidTextStylei powiązane z nim metody ustawiające. Wprowadziliśmy te poprawki:
- Dodano funkcję ustawiania pozycji treści na krawędzi w EdgeContentLayout, aby można było ją umieszczać przed innymi treściami.
- Konsekwentne zgłaszanie wyjątku w przypadku napotkania nierozpoznanej wartości typu wyliczeniowego.
- Unieważnia wynik wyrażenia, gdy daje ono nieprawidłową wartość liczbową (NaN lub nieskończoność) lub zgłasza błąd ArithmeticException.
Zmiany w interfejsie API
- Aktualizacje interfejsu SweepGradientAPI, które umożliwiają akceptowanie kolorów lubColorStopsw konstruktorze. (I6676f)
Poprawki błędów
- Dodanie ograniczonego interfejsu API i obsługi renderowania do ustawiania kierunku rysowania elementów łuku. (Idef5a)
- Jeśli nie zostanie podana, domyślnie przyjmuje wartość FloorwFloatToInt32Node.RoundModeJeśli podany identyfikatorRoundModejest nierozpoznany, węzeł nadal zgłosi wyjątek. (I1b2d8)
Wersja 1.1.0-alpha04
13 grudnia 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.1.0-alpha04 Wersja 1.1.0-alpha04 zawiera te zmiany.
Nowe funkcje
- Klasa VersionInfonie implementuje interfejsuComparable. (I8d13c)
- Renderowanie obsługuje teraz opcję TEXT_OVERFLOW_ELLIPSIZE. (I7f085)
Zmiany w interfejsie API
- Opcja przepełnienia tekstu TEXT_OVERFLOW_ELLIPSIZE_ENDzostała wycofana. Użyj nowego interfejsu APITEXT_OVERFLOW_ELLIPSIZE, który działa w bardzo podobny sposób. (I822d8)
- Podobnie jak w przypadku innych komponentów Material i inicjatyw związanych z Compose, wyłączyliśmy domyślnie dopełnienie czcionki we wszystkich elementach tekstowych. Dodatkowo z publicznego interfejsu API usunięto AndroidTextStylei powiązane z nim metody ustawiające. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3)
- Modifier.hiddenzastąpiono wartością- Modifier.visible(I56902)
- FontStyle#setSizesakceptuje teraz argumenty typu int zamiast- SpProp. (I02b37)
Poprawki błędów
- Zgłaszaj wyjątek, gdy napotkasz niezdefiniowaną lub nierozpoznaną wartość wyliczenia. (I9d2cf)
- Refaktoryzacja DynamicTypeBindingRequest. (I27b57)
- Unieważnia wynik wyrażenia, gdy daje ono nieprawidłową wartość liczbową (NaN lub nieskończoność) lub zgłasza błąd ArithmeticException. (I681ae)
Wersja 1.1.0-alpha03
29 listopada 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.1.0-alpha03 Wersja 1.1.0-alpha03 zawiera te zmiany.
Nowe funkcje
- Dodano eksperymentalną obsługę dynamicznego ukrywania i odkrywania elementów układu (I64a78)
- Dodanie obsługi wartości dynamicznych do BoolProp(I2fe96)
- Dodano adnotację o wymaganej wersji schematu do interfejsów API ProtoLayout(I0f03c)
- Rozszerzenie interfejsu API o nową opcję w TextOverflow, która umożliwia zastąpienie tekstu wielokropkiem w kontenerze nadrzędnym o stałym rozmiarze, nawet jeśli nie osiągnięto maksymalnej liczby wierszy (ale nie ma wystarczająco dużo miejsca na tekst). (I110a9)
- Dodaliśmy metodę pomocniczą DimensionBuilders.weightdo tworzeniaExpandedDimensionPropz wagą. (I4f72b)
- DynamicInstanti- DynamicDurationmogą być używane jako typy danych dotyczące stanu lub platformy. (I6819f)
Zmiany w interfejsie API
- Aktualizacja interfejsu API, aby ukryć DynamicZonedDateTimei przenieść wszystkie jego operacje doDyanamicInstant(I34b94)
- Element Spacer obsługuje teraz wymiar Expanded (Rozszerzony) dla szerokości i wysokości. (Ie7c94)
- Obsługa rozszerzenia obszaru docelowego kliknięcia w programie renderującym (I39c79)
Wersja 1.1.0-alpha02
15 listopada 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.1.0-alpha02 Wersja 1.1.0-alpha02 zawiera te zmiany.
Nowe funkcje
- Dodano do interfejsu API pole ArcLineStrokeCapShadow. (I830ec)
- Rozszerzenie interfejsu API, aby można było określić szerokość lub wysokość elementu Spacer, który ma się rozwinąć. (I757ca)
- Dodaliśmy eksperymentalny interfejs API, który automatycznie skaluje rozmiar tekstu w zależności od miejsca, jakie zajmuje w elemencie nadrzędnym. (Ibbe63)
- Obsługa minimalnego rozmiaru klikalnego elementu (I178e3)
- Dodaliśmy obsługę renderowania w przypadku StrokeCapShadow. (I48b17)
- Dodaliśmy obsługę renderowania gradientu kołowego w ArcLine. (I4d5bb)
Wersja 1.1.0-alpha01
18 października 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy opcję pędzla do Arclinez obsługąSweepGradient. (Ie7ce3)
- Dodano obsługę formatowania daty i godziny z uwzględnieniem strefy czasowej. (Ibfae0)
- Dodano protokoły i otoczki Java wymagane do formatowania daty i godziny w strefie czasowej. (I97126)
- Dodano metody pobierania do odczytywania wartości przechowywanej w obiekcie DynamicDataValue. (Ie6cea)
- Dodano funkcję ustawiania pozycji treści na krawędzi w EdgeContentLayout, aby można było ją umieszczać przed innymi treściami. (Ie8e8a)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że wyrażenie z wieloma rejestracjami źródła danych o czasie nie było od razu aktualizowane. (I8e1a8)
- Naprawiliśmy błąd, który powodował wyśrodkowywanie elementu głównego podczas aktualizacji różnicowych. (Ie48f7)
- Nieskonfigurowane (lub puste) wartości ograniczeń układu nie będą już ignorowane. (Ibc785)
- Skrócono opóźnienie między pojawieniem się układu a inicjowaniem węzłów potoku. (I38d4e)
Wersja 1.0
Wersja 1.0.0
9 sierpnia 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.0.0 Wersja 1.0.0 zawiera te zatwierdzenia.
Główne funkcje wersji 1.0.0
Biblioteka ProtoLayout udostępnia interfejsy API do tworzenia układów i wyrażeń, których można używać na różnych platformach Wear OS. Na przykład biblioteka kafelków używa tych interfejsów API do obsługi wiązania danych platformy (co przyspiesza aktualizacje danych kafelków) i animacji.
Wersja 1.0.0-rc01
26 lipca 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.0.0-rc01 Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
- Aby przejść z Kafelków na ProtoLayout, postępuj zgodnie z instrukcjami podanymi tutaj.
Zmiany w interfejsie API
- Usunęliśmy z elementu Arc metody setLayoutConstraintForDynamicAnchorAngleigetLayoutConstraintForDynamicAnchorAngle. Te metody zostały dodane przez pomyłkę i nie miały wpływu na podany układ. (If7d01)
- Ograniczyliśmy maksymalną głębokość układu ProtoLayoutdo 30 zagnieżdżonychLayoutElements. (I8a74b)
Poprawki błędów
- Dodaliśmy kontrolę, która zgłasza wyjątek, jeśli dla elementu SpanTextustawiono wartośćDynamicColor. (I0e5bc)
- Wyjaśniono, że jednostką źródła danych DAILY_CALORIESsą kilokalorie. (Iaa785)
Wersja 1.0.0-beta01
21 czerwca 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Zezwalaj na ustawianie zegara na potrzeby testów powiązania czasowego. (I05622)
Zmiany w interfejsie API
- PlatformDataReceiver.onData()i- StateBuilders.Builder.addKeyToValueMappingakceptują teraz bezpieczne typowo mapowanie- DynamicDataKeyna- DynamicDataValuezamiast niebezpiecznych typów ogólnych. Oznacza to, że znak- DynamicDataValuejest teraz wpisywany za pomocą- DynamicType. Stałe- HEART_RATE_ACCURACY_Xzostały przeniesione do katalogu głównego- PlatformHealthSources, aby dopasować je do pozycji innych stałych Androida.- HEART_RATE_ACCURACY_Xstałe typu int są teraz używane bezpośrednio w funkcjach- DynamicHeartRateAccuracy.constant()i- DynamicHeartRateAccuracy.dynamicDataValueOf()zamiast stałej wartości. (I82ff5)
- Klasa PlatformHealthSources.Constantszostała utworzona przez pomyłkę. Problem został już rozwiązany. (Icb849)
- PlatformTimeUpdateNotifier#setReceiverotrzymuje teraz funkcję- Runnablezamiast- Supplieri- Executordo powiadamiania. (I9d938)
- Zmieniliśmy typ parametru w pliku PlatformTimeUpdateNotifier#setReceiverzCallablenaSupplier. (I664bf)
- Atrybuty CompactChipiTitleChipobsługują teraz dodawanie ikony. (I5a01e)
Poprawki błędów
- Zaktualizuj komunikaty Prop z polami dynamicznymi, aby zamiast nich używać typu oneof (I81739)
- Ponowne wykorzystanie implementacji setterów w przypadku przeciążeń, które mają settery (Ied70c)
- Prawidłowe rejestrowanie odcisków palców w metodach ustawiających, które mają przeciążenia (I86ed2)
Wersja 1.0.0-alpha11
7 czerwca 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.0.0-alpha11 Wersja 1.0.0-alpha11 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaliśmy PlatformDataKeyza dokładność pomiaru tętna. (I7f9b8)
Zmiany w interfejsie API
- Zmiana nazwy funkcji StateBuilders#getIdToValueMappingnagetKeyToValueMappingi zmiana zwracanego typu naMap<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae)
- Ustaw StateStorejako klasę końcową (I408ca)
- Interfejs TimeGatewayzostał zastąpiony interfejsemPlatformTimeUpdateNotifierw biblioteceprotolayout-expression-pipeline, która zapewnia odpowiednią częstotliwość aktualizacji danych czasowych. (I60869)
- Zmień nazwę register/unregisterForDatawPlatformDataProvidernaset/clearReceiver(I14b02)
- W Material Text nazwa getExcludeFontPaddingzostała zmieniona nahasExcludeFontPadding. (Iea01d)
- Do wszystkich komponentów elementu dodano funkcję ustawiania idealnego wyrównania etykiety. Wszystkie elementy mają teraz zastosowany minimalny obszar klikalny. (I8ae92)
- Nazwa LayoutDefaults#BUTTON_MAX_NUMBERzostała zmieniona naMAX_BUTTONS. (I84788)
- Nazwa DAILY_DISTANCEzostała zmieniona naDAILY_DISTANCE_M. (I4f758)
Poprawki błędów
- Aktualizacja dokumentacji typów właściwości, aby wyjaśnić, dlaczego wymuszana jest wartość statyczna. Określ wartość domyślną, która będzie używana, jeśli nie podano wartości statycznej. (I155aa)
- PlatformDataKeyprzestrzenie nazw powinny być zgodne z zasadami nazewnictwa w stylu Java. (I47bda)
Wersja 1.0.0-alpha10
24 maja 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.0.0-alpha10 Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaj AppDataKey, aby uzyskać dostęp do stanu wypychanego aplikacji; dodajPlatformDataKey, aby uzyskać dostęp do danych platformy; dodaj obsługę przestrzeni nazw wStateStore. (I7985e)
- Obsługa operacji EqualiNotEqualw przypadkuDynamicBool. (I6a0c1)
Zmiany w interfejsie API
- FontStylesclass is now final (Iaa2ea)
- LayoutElementBuilders#FontStyleszostało wycofane. Użyj- androidx.wear.protolayout.Typographylub utwórz własny- FontStyle. (Ic929b)
- Ukryj interfejs zagnieżdżony Action#Builderw interfejsieAction. Implementacje klasy Builder są już dostępne w klasachLoadActioniLaunchAction. (I1d70c)
- Zezwalaj na korzystanie z DynamicFloatwFloatProp. Pamiętaj, żeFloatPropnie wymaga ograniczeń układu, ponieważ nie jest używany jako właściwość zmieniająca układ. (I286ac)
- Działania LoalActioniSetStateActionzostały usunięte, ponieważ nie były jeszcze w pełni obsługiwane. (I5d6a6)
- Dodaliśmy obsługę formatu ARGB_8888 w przypadku zasobów obrazów wbudowanych. (I8a07c)
- Zmiana nazwy StateEntryValuenaDynamicDataValuei aktualizacja interfejsów API stanu, aby używaćDynamicDataKey(If1c01).
- Ograniczamy liczbę wpisów dozwolonych w StateStore, aby zapewnić, że zużycie pamięci i czas aktualizacji stanu są dobrze ograniczone i kontrolowane w przypadku każdej instancjiStateStore. W związku z tym deweloper musi zadbać o to, aby mapa nie zawierała więcej niżMAX_STATE_ENTRY_COUNTpozycji. W przeciwnym razie podczas tworzenia lub aktualizowaniaStateStoreotrzyma kod błęduIllegalStateException. (Ibadb3)
- Ukryj zajęcia OnLoadTriggeriOnConditionMetTrigger, a zmień nazwę zajęćsetTriggernasetConditionw przypadku zajęćOnConditionMetTrigger. (Ibf629)
- Ze względu na wydajność i zgodność renderery ProtoLayoutnie będą obsługiwać pełnego zestawu funkcji w zasobachAnimatedVectorDrawable. Dopóki nie określimy obsługiwanego zestawu, będziemy oznaczać te interfejsy API jako eksperymentalne. (Ic6daf)
- Dodano dynamiczne typy dla dziennego dystansu, dziennych kalorii i dziennej liczby pięter. Klucze do źródeł informacji o stanie platformy znajdują się teraz w sekcji PlatformHealthSources.Keys(Ib7637)
- Metoda Easing.cubicBezierzastępuje metodęCubicBezierEasing.Builder. W ten sposób klasaEasingFunctionzostanie usunięta, a stałe wartości łagodzenia z tej klasy będą teraz bezpośrednio dostępne z interfejsuEasing. DodatkowosetInfiniteRepeatablejest zastępowane przezINFINITE_REPEATABLE_WITH_RESTARTiINFINITE_REPEATABLE_WITH_REVERSE(Ib41e7).
- Wdróż PlatformDataProvider, aby podawać tętno i dzienną liczbę kroków. InterfejsSensorGatewayzostał usunięty z publicznego interfejsu API. (I55b84)
- Dodaj PlatformDataProvideri zaktualizujStateStore, aby zarejestrować się wPlatformDataProvider, gdy węzeł z potoku wyrażeń wymaga obsługiwanego klucza dostawcy. (Ib616a)
- SensorGatewaynie jest już- Closeable, ponieważ nie przechowuje żadnych informacji o stanie. (I6b4f7)
- Zezwalaj na korzystanie z usługi FloatPropwDynamicFloatw celu śledzenia postępów wCircularProgressIndicator. Jest to obsługiwane w przypadku programów renderujących obsługujących wersję 1.2. Starsze programy renderujące w przypadku braku wartościstaticValueużyją wartości 0 (I0d91b).
- Stałe MultiButtonLayoutzostały przekształcone w klasęLayoutDefaults.MultiButtonLayoutDefaults, która zawiera teraz stałe dotyczące rozmiarów przycisków w zależności od liczby przycisków w układzie. (I13973)
- Obsługa używania StringPropzDynamicStringw tekście Material. Jest to obsługiwane w przypadku programów renderujących obsługujących wersję 1.2. Starsze programy renderujące będą używać podanej wartości statycznej. Zmień typ zwracany funkcjiText#getTextzStringnaStringProp. (I7275b)
Wersja 1.0.0-alpha09
10 maja 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.0.0-alpha09 Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaliśmy eksperymentalny element układu rozszerzenia. Pamiętaj, że nie można go używać domyślnie. Wymaga on rozszerzenia mechanizmu renderowania, które potrafi interpretować element układu. (I6581d)
- Dodano obsługę StrokeCapw przypadkuArcLine. (I94951)
- Dodaliśmy obsługę operacji warunkowej natychmiastowej. (I489a7)
- Dodaliśmy obsługę operacji Conditional Duration (Warunkowy czas trwania). (Iab469)
- Dodaliśmy obsługę tworzenia czasu trwania na podstawie sekund. (Ib5fa1)
Zmiany w interfejsie API
- Metody enable/disablePlatformSourcezostały usunięte z usługiDynamicTypeEvaluator. Za aktualizacje powinien odpowiadać dzwoniący. (I78c6d)
- Zezwalaj na ograniczanie rozmiaru powiązanych typów danych. (Ie2966)
- Dodaliśmy obsługę dynamicznego opisu treści w protolayout-material. (I62c8e)
- W przypadku czasu trwania i opóźnienia w parametrach animacji używaj wartości typu long i @IntRange. (I388b6)
Wersja 1.0.0-alpha08
19 kwietnia 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.0.0-alpha08 Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.
Nowe funkcje
- Kontakt AndroidTextStylezostał dodany do następujących grup:LayoutElementBuilders. (I8d967)
- Dodaliśmy obsługę ustawiania wykluczania dopełnienia czcionki w ProtoLayoutMaterial Text. (I17f5d)
- Obrazy wstawiane obsługują teraz format ARGB_8888. (I18c1e)
- DynamicColorobsługuje teraz operację- onCondition. (I10927)
Zmiany w interfejsie API
- Obsługa niestandardowego czasu trwania animacji odwróconej (I3251f)
- Dodaliśmy modyfikator SemanticDescription. Poza tymContentDescriptionnie można powiązać. (I3f1d)
- Metoda DynamicBool.isFalse()została zastąpiona metodąDynamicBool.negate(), a metodaDynamicBool.isTrue()została usunięta. Dodatkowo wartości NaNDynamicFloati zawężenie zakresuDynamicInt32doDynamicFloatpowodują teraz zwracanie nieprawidłowego wyniku dynamicznego. (I6ac1e)
- Formaty liczb całkowitych i zmiennoprzecinkowych korzystają teraz z wzorca Builder. (Ieb213)
Poprawki błędów
- W polach z możliwością animacji usunięto statyczną wartość rezerwową. (Ifcb01)
- DynamicTypeValueReceiver#onPreUpdatezostał(a) usunięty(a). (I2dc35)
- Długość ciągów w wyrażeniach dynamicznych jest teraz ograniczona. (I4c93)
- Zależności Gradle są teraz prawidłowo ustawione na apizamiastimplementation, gdy jest to wymagane. (I40503)
Wersja 1.0.0-alpha07
5 kwietnia 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.0.0-alpha07 Wersja 1.0.0-alpha07 zawiera te zatwierdzenia.
Nowe funkcje
- Dodanie obsługi wartości dynamicznych do StringProp(I04342)
- Oznaczanie elementów układu, które można powiązać (Ia110b)
Zmiany w interfejsie API
- sensorGateway#registerSensorGatewayConsumerprzyjmuje typ danych jako parametr zamiast metody w klasie Consumer. (Icf314)
- Nazwa ObservableStateStorezostała zmieniona naStateStore. (Ieb0e2)
- Zamiast argumentów konstruktora dodano DynamicTypeEvaluator.Builder, aby umożliwić używanie większej liczby argumentów opcjonalnych, w tymObservableStateStore, który domyślnie jest teraz pustym sklepem. (I6f832)
- Zmieniono kolejność parametrów w funkcji DynamicTypeEvaluator. (Ic1ba4)
Poprawki błędów
- Prawidłowe przekazywanie sygnałów ze źródeł czujników platformy do węzłów podrzędnych (I5a922)
Wersja 1.0.0-alpha06
22 marca 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.0.0-alpha06 Wersja 1.0.0-alpha06 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaliśmy eksperymentalny interfejs API do używania tętna i dziennej liczby kroków w wyrażeniach dynamicznych (Ifd711).
- Dodaliśmy obsługę opóźnienia wstecznego i do przodu w przypadku animacji. (Ic25f7)
- Dodaliśmy obsługę DynamicColorw przypadku obramowania i tła.
- Dodaliśmy obsługę wartości dynamicznych w przypadku typów w DimensionBuilder
- Układ i komponenty z tiles-materialzostaną przeniesione doprotolayout-material
Zmiany w interfejsie API
- Kontakt LoadActionListenerzostał dodany do następujących grup:ProtoLayoutViewInstance. (If7806)
Poprawki błędów
- Dodano FloatNodesTest(Id7281)
- Naprawiono awarię mechanizmu renderowania, gdy nie można było wczytać mapy bitowej strukturalnej.
Wersja 1.0.0-alpha05
8 marca 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.0.0-alpha05 Wersja 1.0.0-alpha05 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaliśmy do obiektu Modifierseksperymentalną animację „aktualizacji treści”. Animacja zostanie uruchomiona za każdym razem, gdy element (z tym modyfikatorem) lub jeden z jego elementów podrzędnych zmieni się podczas aktualizacji układu. (bd03e5d)
Zmiany w interfejsie API
- Dodaliśmy użytkowników forwardRepeatDelayMillisireverseRepeatDelayMillisdoRepeatable. Zmieniliśmy też nazwędelayMilliswAnimationSpecnastartDelayMillis(Ifb266).
- Metody DynamicTypeEvaluator.bindakceptują teraz obiekt Executor. (I346ab)
- Dodaliśmy metodę startEvaluationdoBoundDynamicType, aby wywoływać ocenę po powiązaniu typu dynamicznego. (I19908)
Poprawki błędów
- Obiekt Animator będzie ponownie używany w przypadku kolejnych animacji pojedynczego elementu. (Ia3be9)
Wersja 1.0.0-alpha04
22 lutego 2023 roku
Publikacja androidx.wear.protolayout:protolayout-*:1.0.0-alpha04 Wersja 1.0.0-alpha04 zawiera te zatwierdzenia.
Nowe funkcje
- ObservableStateStoreinformuje teraz słuchaczy również o usunięciu klucza.
- Do elementu DeviceParametersdodaliśmy wersję schematu renderowania i skalę czcionki (można ich używać do warunkowego tworzenia układów w odpowiedzi na różne wersje i ustawienia czcionki).
- Dodaliśmy obsługę animowania wartości DynamicInt32(I05485)
- Dodaliśmy reguły OnLoadiOnConditionalMet. Można ich używać do uruchamiania animacji, które obsługują regułę.
- Dodaliśmy wagę układu dla rozwiniętych wymiarów i minimalny rozmiar dla zawijanych wymiarów.
- Dodaliśmy typy dynamiczne „czas trwania” i „natychmiastowy”. Można ich używać do przedstawiania momentu w czasie lub czasu trwania w wyrażeniu dynamicznym.
- Dodaliśmy obsługę elementów AnimatedVectorDrawableiSeekableAnimatedVectorDrawablejako zasobów układu.
Zmiany w interfejsie API
- Dane z czujników wymagają interfejsu API w wersji 29 lub nowszej. (I8099e)
- Dodaliśmy 2 launchActionmetody pomocnicze (do uruchamiania aktywności).
Poprawki błędów
- Zmiana nazwy set/getSpecnaset/getAnimationSpecw animacji kafelków (I3d74b)
Wersja 1.0.0-alpha03
8 lutego 2023 r.
Publikacja androidx.wear.protolayout:protolayout-*:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.
Nowe funkcje
- Do typów dynamicznych w bibliotece protolayout-express dodaliśmy toByteArray()ifromByteArray().
- Do typów dynamicznych w bibliotece wyrażeń protolayout dodaliśmy toString().
- Dodaliśmy obsługę oceny typów dynamicznych. Klasa DynamicTypeEvaluatorz biblioteki protolayout-expression-pipeline może służyć do obliczania (i otrzymywania zaktualizowanych wartości) utworzonego wcześniej typu dynamicznego (DynamicString,DynamicFloat, …).
- Gdy animacje nie mogą być odtwarzane (ponieważ zostały wyłączone przez oceniającego lub liczba uruchomionych animacji osiągnęła ustawiony limit), do zastąpienia animacji zostaną użyte wartości statyczne ustawione w węźle animowanym.
Wersja 1.0.0-alpha02
25 stycznia 2023 r.
androidx.wear.protolayout:protolayout:1.0.0-alpha02, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02 i androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02 są zwalniane. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Nowe funkcje
- Kreatory układów z androidx.wear.tiles:tilesprzenoszą się doandroidx.wear.protolayout:protolayout. Te oznaczone symbolemandroidx.wear.tiles:tileszostaną wycofane w jednej z kolejnych wersji alfa.
Wersja 1.0.0-alpha01
11 stycznia 2023 r.
Publikacje androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01 i androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Ta wersja wprowadza nową bibliotekę „ProtoLayout Expression” do tworzenia wyrażeń ze zmiennych dynamicznych.
