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:
Groovy
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 dlaImageiImageResourcesdo użycia zProtoLayoutScopei 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) ProtoLayoutMaterial3MaterialScopeudostępnia terazContextjako 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 metodyhashCodeiequals. (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,textEdgeButtoniconButton,textButton,button,imageButton,avatarButton,compactButtontitleCard,appCard,graphicDataCard,iconDataCard,textDataCardcircularProgressIndicator,segmentedCircularProgressIndicatorprimaryLayout,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 tymclearSemantics],background,clip,opacityitp.), które można przekształcić w istniejący obiektModifiers.LayoutColorsiLayoutStringjako typy, które ułatwiają korzystanie z pól dynamicznych i ograniczeń.textifontStyle- 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,textEdgeButtoniconButton,textButton,button,imageButton,avatarButton,compactButtontitleCard,appCard,graphicDataCard,iconDataCard,textDataCardcircularProgressIndicator,segmentedCircularProgressIndicatorprimaryLayout,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 tymclearSemantics],background,clip,opacityitp.), które można przekształcić w istniejący obiektModifiers.LayoutColorsiLayoutStringjako typy, które ułatwiają korzystanie z pól dynamicznych i ograniczeń.textifontStyle- 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 ustawieniaFontSetting.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,CardColorsiProgressIndicatorColorsobsł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 metodhasInt/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 naaddToStateMap, a metodyDynamicDataMap.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ą. ProtoLayout
FontSettingobsł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 Material3
primaryLayout. (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ę nafoldRight, 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 doFontStylezamiast 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 settersetResponsiveContentInsetEnabled, 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ącBrushzSweepGradienti cień na górze, aby lepiej przedstawić długość większą niż 360 stopni, dodającShadowdo istniejącegoStrokeCap.DynamicInstantobsługuje formatowanie daty i godziny z uwzględnieniem strefy czasowej.DynamicInstantiDynamicDurationmogą 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 tworzeniaExpandedDimensionPropdodaliś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 zamiastSpProp. (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) DynamicInstantiDynamicDurationmogą 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()iStateBuilders.Builder.addKeyToValueMappingakceptują teraz bezpieczne typowo mapowanieDynamicDataKeynaDynamicDataValuezamiast niebezpiecznych typów ogólnych. Oznacza to, że znakDynamicDataValuejest teraz wpisywany za pomocąDynamicType. StałeHEART_RATE_ACCURACY_Xzostały przeniesione do katalogu głównegoPlatformHealthSources, aby dopasować je do pozycji innych stałych Androida.HEART_RATE_ACCURACY_Xstałe typu int są teraz używane bezpośrednio w funkcjachDynamicHeartRateAccuracy.constant()iDynamicHeartRateAccuracy.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ęRunnablezamiastSupplieriExecutordo 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żyjandroidx.wear.protolayout.Typographylub utwórz własnyFontStyle. (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.