wear protolayout

  
Ta biblioteka umożliwia definiowanie zestawu układów interfejsu i wyrażeń niezwiązanych z interfejsem, które mają być renderowane lub oceniane na zdalnych powierzchniach.
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja beta Wersja Alfa
14 stycznia 2026 r. 1.3.0 - - 1.4.0-alpha04

Deklarowanie zależności

Aby dodać zależność od wear-protolayout, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w artykule 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 nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Tworzenie nowego problemu

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wersja 1.4

Wersja 1.4.0-alpha04

14 stycznia 2026 r.

Publikacja androidx.wear.protolayout:protolayout-*:1.4.0-alpha04 Wersja 1.4.0-alpha04 zawiera te zmiany.

Zmiany w interfejsie API

  • Wycofaliśmy pomocnicze funkcje obrazów Material3 na rzecz nowych przeciążeń, które używają ProtoLayoutScope i lepszej koncepcji obsługi zasobów, w której ImageResource można bezpośrednio wstawić w układzie, co eliminuje potrzebę używania metody onTileResourcesRequest do mapowania zasobów. Aby uzyskać najlepsze wrażenia, używaj jej z androidx.wear.tiles.Material3TileService dodanym w wersji Wear Tiles 1.6-alpha04. (I8198c, b/440376391)

Wersja 1.4.0-alpha03

17 grudnia 2025 r.

Publikacja androidx.wear.protolayout:protolayout-*:1.4.0-alpha03 Wersja 1.4.0-alpha03 zawiera te zmiany.

Poprawki błędów

  • Porównywanie 2 typów zasobów pod kątem lepszego zarządzania zasobami i zwiększenia wydajności odbywa się teraz za pomocą zoptymalizowanych metod hash i equals. (82f21b2f)

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 PendingIntent clickable akceptuje teraz działanie rezerwowe (LoadAction/LaunchAction), które ma być używane, gdy tag PendingIntent nie jest obsługiwany przez ProtoLayout Renderera. Działanie rezerwowe zostanie automatycznie pobrane i umieszczone w układzie, gdy wersja renderera będzie starsza niż ta, która obsługuje PendingIntent. (I6eee2, b/450259727)
  • Pole protoLayoutScope w ramach MaterialScope jest teraz NonNull, co ułatwia korzystanie z niego, gdy MaterialScope jest tworzony za pomocą materialScopeWithResources. Dodatkowo istnieje funkcja hasProtoLayoutScope, 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

  • Dodaliśmy metodę pomocniczą dla LayoutModifier, która powoduje, że element pojawia się stopniowo, gdy kafelek staje się widoczny. (I38531, b/390345969)
  • Dodaliśmy materialScopeWithResources, aby obsługiwać koncepcję M3 MaterialScope, która zajmuje się też automatyczną rejestracją zasobów. Dodaliśmy w nim nowe metody pomocnicze dotyczące obrazów (backgroundImage, avatarImage i ikony), które eliminują konieczność ręcznego rejestrowania zasobów w onTileResourceRequest. (I525bd, b/428692714)
  • ProtoLayout Funkcje pomocnicze w Kotlinie dla ImageImageResources do użycia z ProtoLayoutScope oraz automatyczna rejestracja zasobów. (Iada82, b/430584304)
  • Dodano funkcję pobierania informacji o tym, ile właściwości Lottie jest dozwolonych w dostosowywaniu 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 do określonego koloru. (I301b3, b/423581481)
  • Dodaj interfejsy API dostawcy, aby akceptować PendingIntent jako działanie kliknięcia (I01978, b/433802488)
  • Dodaj nowy interfejs API w Image.Builder - setImageResource, aby ustawić obiekt zasobu bezpośrednio na obrazie w onTileRequest bez konieczności rejestrowania go w mapowaniu w onTileResourcesRequest. (Ifa69a, b/428693523)
  • Dodano koncepcję ProtoLayoutScope w ramach przygotowań do lepszego zarządzania zasobami w kafelkach. (I132ce, b/428692423)
  • ProtoLayout Material3 MaterialScope udostępnia teraz Context jako pole publiczne do użycia w metodach w zakresie bez konieczności przekazywania go. (I0e5cc, b/414559956)
  • Udostępnianie interfejsów API semantycznych nagłówków (I75299, b/413653475)
  • Udostępnij stałe ARC_DIRECTION_* publicznie do użycia w Arc/ArcLine/ArcText/DashedArcLine. (I83959, b/427556439)

Zmiany w interfejsie API

  • Wycofaliśmy metody Image.Builder()Image.Builder.setResourceId na rzecz nowego interfejsu API do automatycznej rejestracji zasobów, który jest dostępny w interfejsach API Image.Builder(ProtoLayoutScope)Image.Builder.setImageResource i eliminuje konieczność zastępowania metody onTileResourcesRequest. (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 wywołania. (I1d8e8, b/432758251)

Poprawki błędów

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 są odpowiednio skalowane od małych do dużych ekranów.
    • Obejmuje to bibliotekę protolayout-material3 tylko w Kotlinie z bardziej podobnymi do Compose interfejsami API dla tych komponentów i funkcji:
    • Dynamiczny motyw kolorystyczny pochodzący z systemu i tarcza zegarka z najnowszym motywem Material 3 w zakresie kolorów, kształtów i typografii.
    • MaterialScope – do obsługi wszystkich opartych na opiniach ustawień domyślnych 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.
  • 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 tym clearSemantics), background, clip, opacity itp.), które można przekształcić w istniejący obiekt Modifiers.
    • LayoutColorsLayoutString jako typy, które ułatwiają korzystanie z pól dynamicznych i ograniczeń.
    • textfontStyle
    • lepsza obsługa map dla StateBuilder, w tym DynamicDataMap i metody fabryczne, takie jak intAppDataKey, które ułatwiają tworzenie obiektów AppDataKey;
  • Animacje Lottie obsługują opcję ustawiania różnych wyzwalaczy, które określają, kiedy animacja ma się rozpocząć, np. po załadowaniu układu lub gdy stanie się on widoczny.
    • Ulepszona obsługa gradientów:
    • Interfejs Linear gradient API w ramach Brush, którego można używać w modyfikatorach Background w przypadku elementów takich jak Box, Spacer itp.
    • Zezwalanie na dynamiczne wartości kolorów w ColorStop używanych w przypadku gradientów liniowych i łukowych
    • 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 elementów ProtoLayout.
  • Nowy element DashedArcLine z ulepszonym zestawem funkcji, dzięki któremu linia może zawierać kreski, w przeciwieństwie do dotychczasowego elementu ArcLine.
  • 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 API 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, ArcLineDashedArcLine nie zgłoszą błędu, jeśli nie ustawiono wartości dynamicznych layoutConstraints. Pamiętaj, że starsze programy renderujące nadal wymagają ustawienia wartości layoutConstraints 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 miejsc 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 są odpowiednio skalowane od małych do dużych ekranów.
    • Obejmuje to bibliotekę protolayout-material3 tylko w Kotlinie z bardziej podobnymi do Compose interfejsami API dla tych komponentów i funkcji:
    • Dynamiczny motyw kolorystyczny pochodzący z systemu i tarcza zegarka z najnowszym motywem Material 3 w zakresie kolorów, kształtów i typografii.
    • MaterialScope – do obsługi wszystkich opartych na opiniach ustawień domyślnych 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.
  • 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 tym clearSemantics), background, clip, opacity itp.), które można przekształcić w istniejący obiekt Modifiers.
    • LayoutColorsLayoutString jako typy, które ułatwiają korzystanie z pól dynamicznych i ograniczeń.
    • textfontStyle
    • lepsza obsługa map dla StateBuilder, w tym DynamicDataMap i metody fabryczne, takie jak intAppDataKey, które ułatwiają tworzenie obiektów AppDataKey;
  • Animacje Lottie obsługują opcję ustawiania różnych wyzwalaczy, które określają, kiedy animacja ma się rozpocząć, np. po załadowaniu układu lub gdy stanie się on widoczny.
    • Ulepszona obsługa gradientów:
    • Interfejs Linear gradient API w ramach Brush, którego można używać w modyfikatorach Background w przypadku elementów takich jak Box, Spacer itp.
    • Zezwalanie na dynamiczne wartości kolorów w ColorStop używanych w przypadku gradientów liniowych i łukowych
    • 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 elementów ProtoLayout.
  • Nowy element DashedArcLine z ulepszonym zestawem funkcji, dzięki któremu linia może zawierać kreski, w przeciwieństwie do dotychczasowego elementu ArcLine.
  • 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 pomocnika do pędzla w modyfikatorze tła w języku Kotlin. (I995de)
  • Obowiązkowe pole Android Context 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 na PlatformEventSources.isLayoutVisible i dodaliśmy nowy eksperymentalny interfejs API PlatformEventSources.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 zajmować 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 ustawienia FontSetting.tabularNum(). W pozostałych przypadkach ta opcja nie jest potrzebna, a bez niej dostępnych będzie więcej znaków. (Id3cd9)
  • Wyjaśnienie domyślnego dynamicznego motywu kolorystycznego w 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 enterTransitionexitTransition (I4a4d6)
  • Dodaliśmy dodatkowe powiązanie z platformą, 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, CardColorsProgressIndicatorColors obsł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 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ątek UnsupportedOperationException zamiast IllegalArgumentException. (Ia36c3)
  • Zaktualizowano domyślne wartości tokenów kolorów, aby odzwierciedlały najnowszą specyfikację. (I75d44)
  • Rozwiązanie problemu z aliasingiem widocznym na liniach łukowych w renderze 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óra StateBuilder obsługuje teraz lepszy interfejs API Kotlina bezpieczny pod względem typów dla stanów aplikacji (I012ba).
  • Dodano metody fabryczne, takie jak intAppDataKey, aby ułatwić tworzenie obiektów AppDataKey (Icea2a).
  • DynamicDataValue ma teraz metodę hasValueOfType(Class<?>) oprócz metod hasInt/hasColor/... (I4f7a6)
  • Dodaliśmy errorDim do Material3 ProtoLayout ColorScheme w przypadku błędów o wysokim priorytecie lub działań awaryjnych, takich jak alerty bezpieczeństwa. (Ia17bb)
  • Dodaliśmy zabezpieczenie przed awarią podczas uzyskiwania dostępu do globalnego ustawienia ograniczenia ruchu, która występowała na niektórych platformach, na których to ustawienie nie było dostępne. (I01e2c)

Zmiany w interfejsie API

  • addKeyToValueMapping została zmieniona na addToStateMap, a metody DynamicDataMap.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ą. ProtoLayoutFontSetting 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 mainContentconstructGraphic 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 w SweepGradient. (I0146d)
  • Poprawki w Dokumentach. (I4a63a)
  • Zaktualizowaliśmy komponenty Material 3 (graphicCardavatarButton), aby zapewnić rezerwę, gdy weight wymiar rozwijania nie jest obsługiwany (np. w przypadku interfejsu API w wersji starszej niż 33). Zaktualizowano komponent tekstowy, aby w przypadku, gdy TEXT_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

  • Dodano 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, visibilityopacity. (I6d3dd)
  • Dodano przycisk awatara do komponentu ProtoLayout Material3. (Idb5ae)
  • Umożliwiamy teraz dostosowywanie marginesów (bocznych i w niektórych przypadkach dolnych) w Material3primaryLayout. (Ib22f6)
  • Dodaj podzieloną wersję kołowego wskaźnika postępu. (I6a648)
  • Dodano komponent kompaktowego przycisku do ProtoLayout Material3. (Ia3c5c)
  • Dodano komponenty przycisku w kształcie pigułki i przycisku obrazu do ProtoLayout Material3. (Ifb88a)

Zmiany w interfejsie API

  • LayoutModfier.foldIn zmieniło nazwę na foldRight, aby lepiej odzwierciedlać oczekiwane działanie (Idf242).
  • Warunek VisibleOnce jest obecnie w wersji eksperymentalnej. (Ib2d26)
  • Usuń withOpacity z publicznego interfejsu API, ponieważ istnieje alternatywna biblioteka graficzna. (I030c2)
  • Zmieniono nazwy metod najwyższego poziomu w LayoutString.ktLayoutColor.kt na nazwy zgodne z Java. (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ć zarówno statyczne, jak 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)
  • Dodaliśmy 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,clipclickable (I35478)
  • Dodaj LinearGradient do pędzla i zezwalaj na jego używanie w modyfikatorze tła. (Ic4dea)
  • Dodaj mały rozmiar do karty aplikacji i titleCard. (I91f98)
  • Dodano komponent ProtoLayout Material3 graphicDataCard. (I92be7)
  • Dodano komponenty ProtoLayout Material3 iconDataCardtextDataCard. (I4e1e4)
  • Dodano komponent ProtoLayout Material3 appCard. (Id4c57)
  • Streszczenie: EdgeButtonColors do ButtonColors. (I83624)
  • Dodano komponent ProtoLayout Material3 titleCard. (I2dc72)

Zmiany w interfejsie API

  • Interfejs ProtoLayout Material3 API akceptuje teraz wartość 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

  • Dodaliśmy 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. Aby wymusić prawidłowe użycie, deweloperzy Kotlin powinni użyć tego argumentu kompilatora: -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, LayoutElementAssertionLayoutElementMatcher (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 i primaryLayout.

Poprawki dotyczące bezpieczeństwa

  • 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-protoandroidx.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 dotyczące bezpieczeństwa

  • 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-protoandroidx.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 (poziomej i pionowej) 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 PrimaryLayoutEdgeContentLayout, dodając do nich element setResponsiveContentInsetEnabled, 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

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ł zaktualizowany, aby obsługiwać dodatkowe czcionki w sposób opisany poniżej:
    • Ustawianie różnych ustawień wariantu czcionki, takich jak FontSetting.weightFontSetting.width
    • Ustawienie 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.
  • Rozszerzony modyfikator Corner, który umożliwia określanie każdego CornerRadius 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 skalowanie LayoutElement. Te przekształcenia można animować za pomocą wartości dynamicznych.
  • Dodano setArcDirection z opcjami Clockwise, CounterClockwise i Normal do wszystkich elementów łuku (Arc, ArcLine i ArcText), 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, zwiększając obszar klikalny każdego elementu, który używa modyfikatora Clickable, do co najmniej 48dp × 48dp.
  • Ulepszyliśmy elementy PrimaryLayoutEdgeContentLayout, dodając do nich element setResponsiveContentInsetEnabled, 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 linter, które sugeruje użycie tych interfejsów API z szybką poprawką.
  • Ulepszone skalowanie i nieskalowanie komponentó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 API preferredFontFamilies. (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 do Material.CompactChip, aby sprawdzić, czy treść tekstowa została ustawiona. (I6e8fc)

Zmiany w interfejsie API

  • FontFamily const są przenoszone do FontStyle zamiast do klasy Builder. (I06ced)
  • Zaktualizuj interfejsy API FontSetting.weightFontSetting.width, aby zawierały adnotacje Range, 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 interfejs API asymetrycznych rogów, aby można było określać promień każdego rogu osobno za pomocą 2 wartości. (Icbd69)
  • Rozszerzyliśmy interfejs API FontSetting o te funkcje:
    • ustawienie funkcji czcionki, np. ustawienie czcionki jako tabelarycznej. (If12b7)
    • ustawienia wariantu czcionki, np. ustawienie niestandardowej szerokości czcionek zmiennych. (I2b36d)
  • 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 w PrimaryLayout, jak i w EdgeContentLayout. (I4dc32)

Poprawki błędów

  • Zmieniono nazewnictwo osi czcionki zmiennej z: axisName na: axisTag. (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 z błędem w getTouchDelegateInfo spowodowanym 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 jednego PlatformDataValue z innym. (I50ba3)
  • Nazwa Text#setIsScalable została zmieniona na Text#setScalable. (If920e)
  • W przypadku komponentu Material Text można określić, czy ma on 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 elementu setResponsiveContentInsetEnabled, 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 atrybutu ArcDirection (Clockwise, Counterclockwise lub Normal). Dodanie tego zachowania do Arc, ArcLine lub ArcText naprawi ich zachowanie w układach od prawej do lewej. (I90699)
  • EdgeContentLayout zostało zaktualizowane o nowy element ustawiający setResponsiveContentInsetEnabled, aby lepiej dopasować je do wytycznych UX, zapewnić spójność w przypadku kafelków dzięki umieszczeniu głównej etykiety w stałym miejscu u góry i odpowiednio dopasowanemu wcięciu etykiet. (I60175)
  • Dodaliśmy PrimaryLayout.setResponsiveContentInsetEnabled, które dodaje responsywne wcięcie do etykiety głównej, etykiety dodatkowej i dolnego elementu w tym układzie, aby uniknąć wyjścia treści 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 wszystkich funkcji: skracania, 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.
  • Rozszerzyliśmy 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

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 jest zaznaczane 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 dzięki dodaniu BrushSweepGradient i cienia na górze, aby lepiej przedstawiać długość większą niż 360 stopni, przez dodanie Shadow do istniejącego StrokeCap.
  • DynamicInstant obsługuje formatowanie daty i godziny z uwzględnieniem strefy czasowej. DynamicInstantDynamicDuration mogą być używane jako typy danych dotyczące stanu lub platformy.
  • Funkcja automatycznego określania 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ąc TEXT_OVERFLOW_ELLIPSIZE i wycofując TEXT_OVERFLOW_ELLIPSIZE_END.
  • Spacer obsługuje teraz rozszerzone wymiary z opcjonalną wagą. Do tworzenia ExpandedDimensionProp 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 w BoolProp.
  • 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 w programie renderującym rozszerzony obszar docelowy 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ęto AndroidTextStyle i powiązane 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 SweepGradient API, które umożliwiają akceptowanie kolorów lub ColorStops w 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 podasz wartości, domyślna wartość RoundModeFloatToInt32Node to Floor. Jeśli podany identyfikator RoundMode 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 interfejsu Comparable. (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 API TEXT_OVERFLOW_ELLIPSIZE, który działa w bardzo podobny sposób. (I822d8)
  • Zgodnie z innymi komponentami Material i inicjatywami związanymi z Compose wyłączyliśmy teraz domyślnie dopełnienie czcionki we wszystkich elementach tekstowych. Dodatkowo z publicznego interfejsu API usunięto AndroidTextStyle i powiązane z nim funkcje 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 zamiast SpProp. (I02b37)

Poprawki błędów

  • Wywołuje wyjątek w przypadku napotkania wartości typu wyliczeniowego Undefined lub Unrecognized. (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 wymaganiu dotyczącym 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łej szerokości, 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 tworzenia ExpandedDimensionProp z wagą. (I4f72b)
  • DynamicInstantDynamicDuration mogą być używane jako typy danych dotyczące stanu lub platformy. (I6819f)

Zmiany w interfejsie API

  • Aktualizacja interfejsu API w celu ukrycia DynamicZonedDateTime i przeniesienia wszystkich jego operacji do DyanamicInstant (I34b94)
  • Element Spacer obsługuje teraz rozszerzony wymiar szerokości i wysokości. (Ie7c94)
  • Rozszerzenie obszaru docelowego kliknięcia w Rendererze (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 ArcLine StrokeCap Shadow. (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 prototypy 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, wykonaj instrukcje podane tutaj.

Zmiany w interfejsie API

  • Usunęliśmy metody setLayoutConstraintForDynamicAnchorAnglegetLayoutConstraintForDynamicAnchorAngle z elementu Arc. 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żonych LayoutElements. (I8a74b)

Poprawki błędów

  • Dodaliśmy sprawdzenie, które zgłasza wyjątek, jeśli wartość DynamicColor została ustawiona dla elementu SpanText. (I0e5bc)
  • Wyjaśniono, że jednostką źródła danych DAILY_CALORIES są kcal. (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 z czasem. (I05622)

Zmiany w interfejsie API

  • PlatformDataReceiver.onData()StateBuilders.Builder.addKeyToValueMapping akceptują teraz bezpieczne typowo mapowanie DynamicDataKey na DynamicDataValue zamiast niebezpiecznych typów ogólnych. Oznacza to, że znak DynamicDataValue jest teraz wpisywany za pomocą DynamicType. Stałe HEART_RATE_ACCURACY_X zostały przeniesione do katalogu głównego PlatformHealthSources, aby dopasować je do pozycji innych stałych Androida. Stałe typu HEART_RATE_ACCURACY_X int są teraz używane bezpośrednio w funkcjach DynamicHeartRateAccuracy.constant()DynamicHeartRateAccuracy.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 zamiast SupplierExecutor, aby wysyłać powiadomienia. (I9d938)
  • Zmieniliśmy typ parametru w pliku PlatformTimeUpdateNotifier#setReceiverCallable na Supplier. (I664bf)
  • Atrybuty CompactChipTitleChip 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 ustawieniach, 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 zmiany.

Nowe funkcje

  • Dodaliśmy PlatformDataKey dla dokładności pomiaru tętna. (I7f9b8)

Zmiany w interfejsie API

  • Zmiana nazwy funkcji StateBuilders#getIdToValueMapping na getKeyToValueMapping i zmiana zwracanego typu na Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae)
  • Ustaw StateStore jako klasę końcową (I408ca)
  • Interfejs TimeGateway został zastąpiony interfejsem PlatformTimeUpdateNotifier w bibliotece protolayout-expression-pipeline, która zapewnia odpowiednią częstotliwość aktualizacji danych o czasie. (I60869)
  • Zmień nazwę register/unregisterForData w PlatformDataProvider na set/clearReceiver (I14b02)
  • W Material Text nazwa getExcludeFontPadding została zmieniona na hasExcludeFontPadding. (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 na MAX_BUTTONS. (I84788)
  • Nazwa DAILY_DISTANCE została zmieniona na DAILY_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 konwencją nazewnictwa w języku 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; dodaj PlatformDataKey, aby uzyskać dostęp do danych platformy; dodaj obsługę przestrzeni nazw w StateStore. (I7985e)
  • Obsługa operacji EqualNotEqual w przypadku DynamicBool. (I6a0c1)

Zmiany w interfejsie API

  • FontStyles class is now final (Iaa2ea)
  • LayoutElementBuilders#FontStyles zostało wycofane. Użyj androidx.wear.protolayout.Typography lub utwórz własny FontStyle. (Ic929b)
  • Ukryj interfejs zagnieżdżony Action#Builder w interfejsie Action. Implementacje klasy Builder są już dostępne w klasach LoadActionLaunchAction. (I1d70c)
  • Zezwalaj na korzystanie z DynamicFloatFloatProp. Pamiętaj, że FloatProp nie wymaga ograniczeń układu, ponieważ nie jest używany jako właściwość zmieniająca układ. (I286ac)
  • Działania LoalActionSetStateAction 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)
  • Zmień nazwę StateEntryValue na DynamicDataValue i zaktualizuj interfejsy API stanu, aby używać DynamicDataKey (If1c01).
  • Ograniczamy liczbę wpisów w StateStore, aby zapewnić, że zużycie pamięci i czas aktualizacji stanu są dobrze ograniczone i kontrolowane w przypadku każdej instancji StateStore. 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 aktualizowania StateStore otrzyma błąd IllegalStateException. (Ibadb3)
  • Ukryj zajęcia OnLoadTriggerOnConditionMetTrigger, a zmień nazwę zajęć setTrigger na setCondition dla OnConditionMetTrigger. (Ibf629)
  • Ze względu na wydajność i kompatybilność renderery ProtoLayout nie będą obsługiwać pełnego zestawu funkcji w zasobach AnimatedVectorDrawable. 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 klasa EasingFunction zostanie usunięta, a stałe łagodzenia z tej klasy będą teraz bezpośrednio dostępne z interfejsu Easing. Dodatkowo setInfiniteRepeatable jest zastępowane przez INFINITE_REPEATABLE_WITH_RESTARTINFINITE_REPEATABLE_WITH_REVERSE (Ib41e7)
  • Zaimplementuj PlatformDataProvider, aby podawać tętno i dzienną liczbę kroków. Interfejs SensorGateway został usunięty z publicznego interfejsu API. (I55b84)
  • Dodaj PlatformDataProvider i zaktualizuj StateStore, aby zarejestrować się w PlatformDataProvider, gdy węzeł z potoku wyrażeń wymaga klucza obsługiwanego przez dostawcę. (Ib616a)
  • SensorGateway nie jest już Closeable, ponieważ nie przechowuje żadnych informacji o stanie. (I6b4f7)
  • Zezwalaj na korzystanie z usługi FloatPropDynamicFloat w celu śledzenia postępów w CircularProgressIndicator. Jest to obsługiwane w przypadku programów renderujących obsługujących wersję 1.2. Starsze programy renderujące w przypadku braku wartości staticValue 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 StringPropDynamicString 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. Zaktualizuj typ zwracany Text#getTextString na StringProp. (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 przypadku ArcLine. (I94951)
  • Dodaliśmy obsługę operacji warunkowej błyskawicznej. (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ługi DynamicTypeEvaluator. Za aktualizacje powinien odpowiadać wywołujący. (I78c6d)
  • Zezwalaj na ograniczanie rozmiaru powiązanych typów danych. (Ie2966)
  • Dodaliśmy obsługę dynamicznego opisu treści w protolayout-material. (I62c8e)
  • Używaj wartości long i @IntRange w przypadku czasu trwania i opóźnienia w parametrach AnimationParameters. (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 tym ContentDescription nie można powiązać. (I3f1d)
  • Metoda DynamicBool.isFalse() została zastąpiona metodą DynamicBool.negate(), a metoda DynamicBool.isTrue() została usunięta. Dodatkowo wartości NaN DynamicFloat i zawężenie zakresu DynamicInt32 do DynamicFloat 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 w razie potrzeby prawidłowo ustawione na api zamiast implementation. (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 na StateStore. (Ieb0e2)
  • Dodano DynamicTypeEvaluator.Builder zamiast argumentów konstruktora, aby umożliwić używanie większej liczby argumentów opcjonalnych, w tym ObservableStateStore, 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 do przodu i do tyłu w przypadku animacji. (Ic25f7)
  • Dodaliśmy obsługę DynamicColor w przypadku obramowania i tła.
  • Dodaliśmy obsługę wartości dynamicznych do typów w DimensionBuilder
  • Układ i komponenty z tiles-material przenoszą się do protolayout-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 eksperymentalną animację „aktualizacji treści” do obiektu Modifiers. 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 i reverseRepeatDelayMillis do Repeatable. Zmieniliśmy też nazwę delayMillisAnimationSpec na startDelayMillis (Ifb266).
  • Metody DynamicTypeEvaluator.bind akceptują teraz obiekt Executor. (I346ab)
  • Dodaliśmy metodę startEvaluation do BoundDynamicType, 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 OnLoadOnConditionalMet. Można ich używać do uruchamiania animacji obsługujących 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 AnimatedVectorDrawableSeekableAnimatedVectorDrawable 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 metody pomocnicze launchAction (do uruchamiania aktywności).

Poprawki błędów

  • Zmiana nazwy set/getSpec na set/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()fromByteArray().
  • 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 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ą dostępne. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.

Nowe funkcje

  • Kreatory układów z androidx.wear.tiles:tiles przenoszą się do androidx.wear.protolayout:protolayout. Te oznaczone symbolem androidx.wear.tiles:tiles zostaną wycofane w jednej z kolejnych wersji alfa.

Wersja 1.0.0-alpha01

11 stycznia 2023 r.

androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01 zostały opublikowane. Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

  • Ta wersja wprowadza nową bibliotekę „ProtoLayout Expression” do tworzenia wyrażeń ze zmiennych dynamicznych.