wear protolayout
Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja Beta | Wersja Alfa |
---|---|---|---|---|
24 września 2025 r. | 1.3.0 | - | - | 1.4.0-alpha01 |
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-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 pojawianie się elementu wraz z wyświetlaniem kafelka. (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 (backgroundImage
avatarImage
i ikony), które eliminują konieczność ręcznego rejestrowania zasobów wonTileResourceRequest
. (I525bd, b/428692714) ProtoLayout
Funkcje pomocnicze w Kotlinie dlaImage
iImageResources
do użycia zProtoLayoutScope
i automatyczną rejestracją zasobów. (Iada82, b/430584304)- Dodano funkcję pobierania informacji 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
PendingIntent
jako 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 wonTileRequest
bez konieczności rejestrowania go w mapowaniu wonTileResourcesRequest
. (Ifa69a, b/428693523) - Dodano koncepcję
ProtoLayoutScope
w ramach przygotowań do lepszego zarządzania zasobami w Kafelkach. (I132ce, b/428692423) ProtoLayout
Material3MaterialScope
udostępnia terazContext
jako pole publiczne do użycia w metodach w zakresie bez konieczności przekazywania go. (I0e5cc, b/414559956)- Udostępnienie publiczne 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.setResourceId
na rzecz nowego interfejsu API do automatycznej rejestracji zasobów, który jest dostępny w interfejsach APIImage.Builder(ProtoLayoutScope)
iImage.Builder.setImageResource
i eliminuje konieczność zastępowania metodyonTileResourcesRequest
. (I7bfe6, b/432758526) - Przeniesienie interfejsów API do tworzenia
ProtoLayoutScope
z 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
PendingIntent
wProtoTiles
(I38167, b/430610429) - Dodaj metodę
invalidateLayout
. (Ief898) - Przeniesienie domyślnego minSdk z API 21 na API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
ImageResource
ma teraz metodyhashCode
iequals
. (I650ee, b/428692423, b/428693523)- Dodaj nowy komunikat proto
PendingIntentAction
i 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-material3
tylko 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
ProtoLayout
Renderera, zapewniając w razie potrzeby odpowiednie rozwiązania zastępcze.
- Obejmuje to bibliotekę
- Bardziej przyjazne dla języka Kotlin interfejsy API podobne do Compose dla podstawowych elementów ProtoLayout
LayoutModifier
z możliwością dodawania większości modyfikatorów jako funkcji połączonych (padding
,contentDescription
[w tymclearSemantics
],background
,clip
,opacity
itp.), które można przekształcić w istniejący obiektModifiers
.LayoutColors
iLayoutString
jako typy, które ułatwiają korzystanie z pól dynamicznych i ograniczeń.text
ifontStyle
- lepsza obsługa map dla
StateBuilder
, w tymDynamicDataMap
i 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 modyfikatorachBackground
w przypadku elementów takich jakBox
,Spacer
itp. - Zezwalanie na dynamiczne wartości kolorów w
ColorStop
uż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ć pokrycie testami jednostkowymi dowolnych elementów ProtoLayout. - Nowy element
DashedArcLine
z ulepszonym zestawem funkcji, dzięki któremu linia może zawierać kreski, w przeciwieństwie do dotychczasowego elementuArcLine
. ArcSpacer
moż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
,ArcLine
iDashedArcLine
nie zgłoszą błędu, jeśli nie zostaną ustawione wartości dynamicznelayoutConstraints
. Pamiętaj, że starsze programy renderujące nadal wymagają ustawienia wartościlayoutConstraints
i 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
primaryLayout
jako 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-material3
tylko 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
LayoutModifier
z możliwością dodawania większości modyfikatorów jako funkcji połączonych (padding
,contentDescription
[w tymclearSemantics
],background
,clip
,opacity
itp.), które można przekształcić w istniejący obiektModifiers
.LayoutColors
iLayoutString
jako typy, które ułatwiają korzystanie z pól dynamicznych i ograniczeń.text
ifontStyle
- lepsza obsługa map dla
StateBuilder
, w tymDynamicDataMap
i 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 modyfikatorachBackground
w przypadku elementów takich jakBox
,Spacer
itp. - Zezwalanie na dynamiczne wartości kolorów w
ColorStop
uż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ć pokrycie testami jednostkowymi dowolnych elementów ProtoLayout. - Nowy element
DashedArcLine
z ulepszonym zestawem funkcji, dzięki któremu linia może zawierać kreski, w przeciwieństwie do dotychczasowego elementuArcLine
. ArcSpacer
moż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
platformVisibilityStatus
naPlatformEventSources.isLayoutVisible
i dodaliśmy nowy eksperymentalny interfejs APIPlatformEventSources.isLayoutUpdatePending
. (Ie1e04)
Poprawki błędów
- Marginesy w przypadku elementu
primaryLayout
są 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
ProtoLayout
komponentach Material3. (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
ProtoLayout
komponentach Material3. (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
enterTransition
iexitTransition
(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
LayoutElementAssertionsProvider
w celu oceny wartości dynamicznych. (Ib5fcb) - Dodawanie filtrów narożnych do biblioteki testowania protolayoutu (Ie2361)
ButtonColors
,CardColors
iProgressIndicatorColors
obsługują teraz metodę kopiowania z opcjonalnym zastępowaniem niektórych parametrów. (Ie2054)
Zmiany w interfejsie API
- Dodanie do biblioteki testowej obsługi dynamicznych wiązań danych (Ib98de)
- Naprawiono
imageButton
używane z funkcjąbackgroundImage
przez 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ątekUnsupportedOperationException
zamiastIllegalArgumentException
. (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
FontSetting
dla tekstu Material3. (Ic102d) - Dodano klasę
DynamicDataMap
, któraStateBuilder
obsługuje teraz lepiej zabezpieczony pod względem typów interfejs Kotlin API do obsługi stanów aplikacji (I012ba). - Dodano metody fabryczne, takie jak
intAppDataKey
, aby ułatwić tworzenie obiektówAppDataKey
(Icea2a). DynamicDataValue
ma teraz metodęhasValueOfType(Class<?>)
oprócz metodhasInt/hasColor/
... (I4f7a6)- Dodaliśmy
errorDim
doColorScheme
Material3 ProtoLayoutColorScheme
w 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
addKeyToValueMapping
została zmieniona naaddToStateMap
, a metodyDynamicDataMap.put
został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
FontSetting
obsługuje oś zaokrąglenia w przypadku czcionek, które ją obsługują. (I33eb5) - Zmieniono nazwę
multilineAlignment
na wyrównanie w metodzie tekstowej Material3. (I2b66b) - Zaktualizuj kołowy wskaźnik postępu, aby był typu Box. Określ też, że
mainContent
wconstructGraphic
ma 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 (
graphicCard
iavatarButton
), aby zapewnić rezerwę, gdyweight
wymiar rozwijania nie jest obsługiwany (np. w przypadku interfejsu API w wersji starszej niż 33). Zaktualizowano komponent tekstowy, aby w przypadku, gdyTEXT_OVERFLOW_ELLIPSIZE
nie 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
,visibility
iopacity
. (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.foldIn
zmieniło nazwę nafoldRight
, aby lepiej odzwierciedlać oczekiwane działanie (Idf242).- Warunek
VisibleOnce
jest obecnie w fazie eksperymentalnej. (Ib2d26) - Usuń
withOpacity
z publicznego interfejsu API, ponieważ istnieje alternatywna biblioteka graficzna. (I030c2) - Zmieniono nazwy metod najwyższego poziomu w
LayoutString.kt
iLayoutColor.kt
na nazwy przyjazne dla Javy. (I7aff0) - Usunięto typografie inne niż ProtoLayout w Material3. (Idd9ae)
- Dodaj sufiks Color do pól w klasach
*Colors
w Material3. (I2d114)
Poprawki błędów
- Dodano implementację zastępczą
EdgeButton
dla 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 Material3
textButton. (Id680d) - Dodaj komponent
iconButton
ProtoLayout 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
,clip
iclickable
(I35478) - Dodaj
LinearGradient
do 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
iconDataCard
itextDataCard
. (I4e1e4) - Dodano komponent ProtoLayout Material3
appCard
. (Id4c57) - Wyodrębnij
EdgeButtonColors
doButtonColors
. (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 renderera, aby umożliwić
ArcSpacer
pobieranie 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 korzystający z języka Kotlin powinni używać tego argumentu kompilatora, aby wymusić prawidłowe użycie:
-Xjspecify-annotations=strict
(jest to domyślny argument począwszy 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
,LayoutElementAssertion
iLayoutElementMatcher
(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
,buttonGroup
iprimaryLayout
.
Poprawki zabezpieczeń
- Od tej zmiany biblioteka androidx jest kompilowana z użyciem protokołu 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-proto
iandroidx.wear.protolayout:protolayout-external-protobuf
do 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 biblioteka androidx jest kompilowana z użyciem protokołu 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-proto
iandroidx.wear.protolayout:protolayout-external-protobuf
w 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
FontStyle
został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
PrimaryLayout
iEdgeContentLayout
, 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 podstawowej 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:
FontStyle
zostało zaktualizowane, aby obsługiwać dodatkowe czcionki w sposób opisany poniżej:- Ustawianie różnych ustawień wariantu czcionki, takich jak
FontSetting.weight
iFontSetting.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żdegoCornerRadius
za 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
,ArcLine
iArcText
) dodano atrybutsetArcDirection
z opcjamiClockwise
,CounterClockwise
iNormal
, 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
PrimaryLayout
iEdgeContentLayout
, 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
Text
na 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.width
powinien 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ę
hasText
doMaterial.CompactChip
, aby sprawdzić, czy treść tekstowa została ustawiona. (I6e8fc)
Zmiany w interfejsie API
FontFamily
const są przenoszone doFontStyle
zamiast do klasy Builder. (I06ced)- Zaktualizuj interfejsy API
FontSetting.weight
iFontSetting.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
FontSetting
API o te funkcje: - Dodaliśmy do
FontStyle
interfejs 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
LayoutDefaults
Material 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
axisName
naaxisTag
. (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
getTouchDelegateInfo
spowodowany 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). ArcDirectionProp
Builder oczekuje teraz wartości w konstruktorze. (I76ada)- Metoda
PlatformDataValues.Builder.putAll
umożliwia scalenie jednegoPlatformDataValue
z innym. (I50ba3) - Nazwa
Text#setIsScalable
został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
PrimaryLayout
jest 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 Arc
mają teraz możliwość dodania do nich atrybutuArcDirection
(Clockwise
,Counterclockwise
lubNormal
). Dodanie tego zachowania doArc
,ArcLine
lubArcText
naprawi ich zachowanie w układach od prawej do lewej. (I90699) EdgeContentLayout
został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 używać go 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
ArcLine
w 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
ProtoLayout
adnotacji o wymaganej wersji schematu. - Rozszerzono obszar docelowy każdego elementu
Clickable
do 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
PlatformTimeUpdateNotifierImpl
pojawia się natychmiast po włączeniu aktualizacji. (I77145)CircularProgressIndicator
został 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:
ArcLine
obsługuje teraz gradient, dodającBrush
zSweepGradient
i cień na górze, aby lepiej przedstawić długość większą niż 360 stopni, dodającShadow
do istniejącegoStrokeCap
.DynamicInstant
obsługuje formatowanie daty i godziny z uwzględnieniem strefy czasowej.DynamicInstant
iDynamicDuration
mogą 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_ELLIPSIZE
i wycofującTEXT_OVERFLOW_ELLIPSIZE_END
. Spacer
obsługuje teraz rozszerzone wymiary z opcjonalną wagą. Do tworzeniaExpandedDimensionProp
dodaliś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
ProtoLayout
mają 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. - W ramach innych inicjatyw dotyczących komponentów Material i Compose wyłączyliśmy domyślnie dopełnienie czcionki we wszystkich elementach
Text
. Dodatkowo z publicznego interfejsu API usuniętoAndroidTextStyle
i powiązane metody ustawiające. Wprowadzono 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
SweepGradient
API, które umożliwiają akceptowanie kolorów lubColorStops
w konstruktorze. (I6676f)
Poprawki błędów
- Dodanie interfejsu API z ograniczeniami i obsługi renderowania do ustawiania kierunku rysowania elementów łuku. (Idef5a)
- Jeśli nie zostanie podana, domyślnie przyjmuje wartość
Floor
wFloatToInt32Node
.RoundMode
Jeśli podany identyfikatorRoundMode
jest 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
VersionInfo
nie implementuje interfejsuComparable
. (I8d13c) - Renderowanie obsługuje teraz opcję
TEXT_OVERFLOW_ELLIPSIZE
. (I7f085)
Zmiany w interfejsie API
- Opcja przepełnienia tekstu
TEXT_OVERFLOW_ELLIPSIZE_END
został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 Compose, wyłączyliśmy domyślnie dopełnienie czcionki we wszystkich elementach tekstowych. Dodatkowo z publicznego interfejsu API usunięto
AndroidTextStyle
i powiązane z nim metody ustawiające. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3) Modifier.hidden
zastąpiono wartościąModifier.visible
(I56902)FontStyle#setSizes
akceptuje 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.weight
do tworzeniaExpandedDimensionProp
z wagą. (I4f72b) DynamicInstant
iDynamicDuration
mogą być używane jako typy danych dotyczące stanu lub platformy. (I6819f)
Zmiany w interfejsie API
- Aktualizacja interfejsu API, aby ukryć
DynamicZonedDateTime
i 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 pole
ArcLine
StrokeCap
Shadow
do interfejsu API. (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
StrokeCap
Shadow
. (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
Arcline
z obsługąSweepGradient
. (Ie7ce3) - Dodano obsługę formatowania daty i godziny z uwzględnieniem strefy czasowej. (Ibfae0)
- Dodano wymagane proto i otoczki Java 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
setLayoutConstraintForDynamicAnchorAngle
igetLayoutConstraintForDynamicAnchorAngle
. 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
ProtoLayout
do 30 zagnieżdżonychLayoutElements
. (I8a74b)
Poprawki błędów
- Dodaliśmy kontrolę, która zgłasza wyjątek, jeśli dla elementu
SpanText
ustawiono wartośćDynamicColor
. (I0e5bc) - Wyjaśniono, że jednostką źródła danych
DAILY_CALORIES
są 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
- Zezwalanie na ustawianie zegara na potrzeby testów powiązania z czasem. (I05622)
Zmiany w interfejsie API
PlatformDataReceiver.onData()
iStateBuilders.Builder.addKeyToValueMapping
akceptują teraz bezpieczne typowo mapowanieDynamicDataKey
naDynamicDataValue
zamiast niebezpiecznych typów ogólnych. Oznacza to, że znakDynamicDataValue
jest teraz wpisywany za pomocąDynamicType
. StałeHEART_RATE_ACCURACY_X
zostały przeniesione do katalogu głównegoPlatformHealthSources
, aby dopasować je do pozycji innych stałych Androida. Stałe typuHEART_RATE_ACCURACY_X
int są teraz używane bezpośrednio w funkcjachDynamicHeartRateAccuracy.constant()
iDynamicHeartRateAccuracy.dynamicDataValueOf()
zamiast stałej wartości. (I82ff5)- Klasa
PlatformHealthSources.Constants
została utworzona przez pomyłkę. Problem został już rozwiązany. (Icb849) PlatformTimeUpdateNotifier#setReceiver
otrzymuje teraz funkcjęRunnable
zamiastSupplier
iExecutor
do powiadamiania. (I9d938)- Zmieniliśmy typ parametru w pliku
PlatformTimeUpdateNotifier#setReceiver
zCallable
naSupplier
. (I664bf) - Atrybuty
CompactChip
iTitleChip
obsł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
PlatformDataKey
za dokładność pomiaru tętna. (I7f9b8)
Zmiany w interfejsie API
- Zmiana nazwy funkcji
StateBuilders#getIdToValueMapping
nagetKeyToValueMapping
i zmiana zwracanego typu naMap<<AppDataKey<?>,DynamicDataValue>
. (Iaa7ae) - Ustaw
StateStore
jako klasę końcową (I408ca) - Interfejs
TimeGateway
został zastąpiony interfejsemPlatformTimeUpdateNotifier
w biblioteceprotolayout-expression-pipeline
, która zapewnia odpowiednią częstotliwość aktualizacji danych czasowych. (I60869) - Zmień nazwę
register
/unregisterForData
wPlatformDataProvider
naset
/clearReceiver
(I14b02) - W Material Text nazwa
getExcludeFontPadding
został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_NUMBER
została zmieniona naMAX_BUTTONS
. (I84788) - Nazwa
DAILY_DISTANCE
został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)
PlatformDataKey
przestrzenie 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
Equal
iNotEqual
w przypadkuDynamicBool
. (I6a0c1)
Zmiany w interfejsie API
FontStyles
class is now final (Iaa2ea)LayoutElementBuilders#FontStyles
zostało wycofane. Użyjandroidx.wear.protolayout.Typography
lub utwórz własnyFontStyle
. (Ic929b)- Ukryj interfejs zagnieżdżony
Action#Builder
w interfejsieAction
. Implementacje klasy Builder są już dostępne w klasachLoadAction
iLaunchAction
. (I1d70c) - Zezwalaj na korzystanie z
DynamicFloat
wFloatProp
. Pamiętaj, żeFloatProp
nie wymaga ograniczeń układu, ponieważ nie jest używany jako właściwość zmieniająca układ. (I286ac) - Działania
LoalAction
iSetStateAction
został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
StateEntryValue
naDynamicDataValue
i 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_COUNT
pozycji. W przeciwnym razie podczas tworzenia lub aktualizowaniaStateStore
otrzyma kod błęduIllegalStateException
. (Ibadb3) - Ukryj zajęcia
OnLoadTrigger
iOnConditionMetTrigger
, a zmień nazwę zajęćsetTrigger
nasetCondition
w przypadku zajęćOnConditionMetTrigger
. (Ibf629) - Ze względu na wydajność i zgodność renderery
ProtoLayout
nie 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.cubicBezier
zastępuje metodęCubicBezierEasing.Builder
. W ten sposób klasaEasingFunction
zostanie usunięta, a stałe wartości łagodzenia z tej klasy będą teraz bezpośrednio dostępne z interfejsuEasing
. DodatkowosetInfiniteRepeatable
jest zastępowane przezINFINITE_REPEATABLE_WITH_RESTART
iINFINITE_REPEATABLE_WITH_REVERSE
(Ib41e7). - Wdróż
PlatformDataProvider
, aby podawać tętno i dzienną liczbę kroków. InterfejsSensorGateway
został usunięty z publicznego interfejsu API. (I55b84) - Dodaj
PlatformDataProvider
i zaktualizujStateStore
, aby zarejestrować się wPlatformDataProvider
, gdy węzeł z potoku wyrażeń wymaga obsługiwanego klucza dostawcy. (Ib616a) SensorGateway
nie jest jużCloseable
, ponieważ nie przechowuje żadnych danych. (I6b4f7)- Zezwalaj na korzystanie z usługi
FloatProp
wDynamicFloat
w 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ścistaticValue
użyją wartości 0 (I0d91b). - Stałe
MultiButtonLayout
został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
StringProp
zDynamicString
w 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#getText
zString
naStringProp
. (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ę
StrokeCap
w 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/disablePlatformSource
został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
AndroidTextStyle
został dodany do następujących grup:LayoutElementBuilders
. (I8d967) - Dodaliśmy obsługę ustawiania wykluczania dopełnienia czcionki w
ProtoLayout
Material Text. (I17f5d) - Obrazy wstawiane obsługują teraz format ARGB_8888. (I18c1e)
DynamicColor
obsługuje teraz operacjęonCondition
. (I10927)
Zmiany w interfejsie API
- Obsługa niestandardowego czasu trwania animacji odwróconej (I3251f)
- Dodaliśmy modyfikator
SemanticDescription
. Poza tymContentDescription
nie 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 NaNDynamicFloat
i zawężenie zakresuDynamicInt32
doDynamicFloat
powodują 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#onPreUpdate
został(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
api
zamiastimplementation
, 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#registerSensorGatewayConsumer
przyjmuje typ danych jako parametr zamiast metody w klasie Consumer. (Icf314)- Nazwa
ObservableStateStore
został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ę
DynamicColor
w przypadku obramowania i tła. - Dodaliśmy obsługę wartości dynamicznych w przypadku typów w
DimensionBuilder
- Układ i komponenty z
tiles-material
zostaną przeniesione doprotolayout-material
Zmiany w interfejsie API
- Kontakt
LoadActionListener
został dodany do następujących grup:ProtoLayoutViewInstance
. (If7806)
Poprawki błędów
- Dodano
FloatNodesTest
(Id7281) - Naprawiono awarię mechanizmu renderowania, gdy nie można 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
Modifiers
eksperymentalną 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
forwardRepeatDelayMillis
ireverseRepeatDelayMillis
doRepeatable
. Zmieniliśmy też nazwędelayMillis
wAnimationSpec
nastartDelayMillis
(Ifb266). - Metody
DynamicTypeEvaluator.bind
akceptują teraz obiekt Executor. (I346ab) - Dodaliśmy metodę
startEvaluation
doBoundDynamicType
, 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
ObservableStateStore
informuje teraz słuchaczy również o usunięciu klucza.- Do elementu
DeviceParameters
dodaliś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
OnLoad
iOnConditionalMet
. 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
AnimatedVectorDrawable
iSeekableAnimatedVectorDrawable
jako zasobów układu.
Zmiany w interfejsie API
- Dane z czujników wymagają interfejsu API w wersji 29 lub nowszej. (I8099e)
- Dodaliśmy 2
launchAction
metody pomocnicze (do uruchamiania aktywności).
Poprawki błędów
- Zmiana nazwy
set/getSpec
naset/getAnimationSpec
w 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
DynamicTypeEvaluator
z biblioteki protolayout-expression-pipeline może służyć do oceny (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ą dostępne. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Nowe funkcje
- Kreatory układów z
androidx.wear.tiles:tiles
przenoszą się doandroidx.wear.protolayout:protolayout
. Te oznaczone symbolemandroidx.wear.tiles:tiles
zostaną 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.