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
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.

Tworzenie nowego problemu

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ę M3 MaterialScope, 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 w onTileResourceRequest. (I525bd, b/428692714)
  • ProtoLayout Funkcje pomocnicze w Kotlinie dla ImageImageResources do użycia z ProtoLayoutScope 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 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ępnienie publiczne semantycznych interfejsów API nagłówków (I75299, b/413653475)
  • Udostępnij stałe ARC_DIRECTION_* do użytku 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 połączenia. (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 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.
  • 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 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 modyfikatorach Background w przypadku elementów takich jak Box, 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 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 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, ArcLineDashedArcLine nie zgłoszą błędu, jeśli nie zostaną ustawione wartości dynamiczne 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 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.
  • 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 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 modyfikatorach Background w przypadku elementów takich jak Box, 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 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 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 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 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 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 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 i ProgressIndicatorColors 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ą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 ł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óra StateBuilder 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ów AppDataKey (Icea2a).
  • DynamicDataValue ma teraz metodę hasValueOfType(Class<?>) oprócz metod hasInt/hasColor/... (I4f7a6)
  • Dodaliśmy errorDim do ColorSchemeMaterial3 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 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

  • 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, 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 fazie 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 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,clipclickable (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 iconDataCardtextDataCard. (I4e1e4)
  • Dodano komponent ProtoLayout Material3 appCard. (Id4c57)
  • Wyodrębnij EdgeButtonColors do ButtonColors. (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, 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 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-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 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-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 (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 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ło zaktualizowane, aby obsługiwać dodatkowe czcionki w sposób opisany poniżej:
    • Ustawianie różnych ustawień wariantu czcionki, takich jak FontSetting.weightFontSetting.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.
  • 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.
  • Do wszystkich elementów łuku (Arc, ArcLineArcText) dodano atrybut setArcDirection z opcjami Clockwise, CounterClockwiseNormal, 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 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 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 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 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:
    • ustawienie funkcji czcionki, np. ustawienie czcionki jako tabelarycznej. (If12b7)
    • ustawienie 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 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 jednego PlatformDataValue z innym. (I50ba3)
  • Nazwa Text#setIsScalable została zmieniona na Text#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 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 setter setResponsiveContentInsetEnabled, aby lepiej dopasować je do wytycznych UX, zapewnić spójność w przypadku kafelków dzięki umieszczeniu głównej etykiety w stałym miejscu u góry i odpowiedniemu wcięciu etykiet. (I60175)
  • Dodaliśmy element PrimaryLayout.setResponsiveContentInsetEnabled, który dodaje responsywny margines wewnętrzny do etykiety głównej, etykiety dodatkowej i dolnego elementu w tym układzie, aby uniknąć sytuacji, w której treść wychodzi poza krawędź ekranu. (I0c457)
  • Dodaje metodę usuwania zewnętrznych marginesów z CircularProgressIndicator, aby można było 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

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ąc BrushSweepGradient i cień na górze, aby lepiej przedstawić długość większą niż 360 stopni, dodając 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 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ą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 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ęto AndroidTextStyle 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 lub ColorStops 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 w FloatToInt32Node.RoundMode 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)
  • 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 zamiast SpProp. (I02b37)

Poprawki błędów

  • Zgłaszaj wyjątek, gdy napotkasz niezdefiniowaną lub nierozpoznaną wartość wyliczenia. (I9d2cf)
  • Refaktoryzacja DynamicTypeBindingRequest. (I27b57)
  • Unieważnia wynik wyrażenia, gdy daje ono nieprawidłową wartość liczbową (NaN lub nieskończoność) lub zgłasza błąd ArithmeticException. (I681ae)

Wersja 1.1.0-alpha03

29 listopada 2023 r.

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

Nowe funkcje

  • Dodano eksperymentalną obsługę dynamicznego ukrywania i odkrywania elementów układu (I64a78)
  • Dodanie obsługi wartości dynamicznych do BoolProp (I2fe96)
  • Dodano adnotację o wymaganej wersji schematu do interfejsów API ProtoLayout (I0f03c)
  • Rozszerzenie interfejsu API o nową opcję w TextOverflow, która umożliwia zastąpienie tekstu wielokropkiem w kontenerze nadrzędnym o stałym rozmiarze, nawet jeśli nie osiągnięto maksymalnej liczby wierszy (ale nie ma wystarczająco dużo miejsca na tekst). (I110a9)
  • Dodaliśmy metodę pomocniczą DimensionBuilders.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, aby ukryć DynamicZonedDateTime i przenieść wszystkie jego operacje do DyanamicInstant (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 setLayoutConstraintForDynamicAnchorAnglegetLayoutConstraintForDynamicAnchorAngle. 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 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()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 do powiadamiania. (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 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 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 czasowych. (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 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; 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)
  • Zmiana nazwy StateEntryValue na DynamicDataValue 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 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 kod błędu IllegalStateException. (Ibadb3)
  • Ukryj zajęcia OnLoadTriggerOnConditionMetTrigger, a zmień nazwę zajęć setTrigger na setCondition w przypadku zajęć OnConditionMetTrigger. (Ibf629)
  • Ze względu na wydajność i zgodność 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 wartości ł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).
  • Wdróż 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 obsługiwanego klucza dostawcy. (Ib616a)
  • SensorGateway nie jest już Closeable, ponieważ nie przechowuje żadnych danych. (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. Zmień typ zwracany funkcji 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 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ługi DynamicTypeEvaluator. 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 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 prawidłowo ustawione na api zamiast implementation, 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 na StateStore. (Ieb0e2)
  • Zamiast argumentów konstruktora dodano DynamicTypeEvaluator.Builder, 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 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 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 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 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, 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 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 launchAction metody pomocnicze (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 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-alpha02androidx.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.

Publikacje androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01androidx.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.