wear protolayout

  
Ta biblioteka umożliwia zdefiniowanie zestawu układów interfejsu użytkownika i wyrażeń niebędących interfejsem użytkownika, które mają być renderowane i oceniane na zdalnych powierzchniach.
Ostatnia aktualizacja Wersja stabilna Wersja kandydująca Wersja Beta Wersja alfa
13 listopada 2024 r. 1.2.1 - - 1.3.0-alpha04

Deklarowanie zależności

Aby dodać zależność od pakietu wear-protolayout, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w repozytorium Maven firmy Google.

Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle aplikacji lub modułu:

Groovy

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation "androidx.wear.protolayout:protolayout-expression:1.3.0-alpha04"

    // Use to implement support for Wear ProtoLayout
    implementation "androidx.wear.protolayout:protolayout:1.3.0-alpha04"

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation "androidx.wear.protolayout:protolayout-material:1.3.0-alpha04"
}

Kotlin

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation("androidx.wear.protolayout:protolayout-expression:1.3.0-alpha04")

    // Use to implement support for Wear ProtoLayout
    implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha04")

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation("androidx.wear.protolayout:protolayout-material:1.3.0-alpha04")
}

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 zauważysz 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 z gwiazdką.

Tworzenie nowego zgłoszenia

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

Wersja 1.3

Wersja 1.3.0-alpha04

13 listopada 2024 r.

androidx.wear.protolayout:protolayout-*:1.3.0-alpha04 został zwolniony. Wersja 1.3.0-alpha04 zawiera te komity.

Nowe funkcje

  • Zaktualizowaliśmy kształt Material3, aby był klasą z polami zawierającymi rzeczywistą wartość zaokrąglenia, tak jak w komponowaniu na Wear. (Ied8cd)
  • Zaktualizowano kolory Material3, aby uwzględnić koncepcję ColorScheme, taką samą jak w komponowaniu na Wear. (If645e)
  • Dodaj do biblioteki testów kilka często używanych funkcji dopasowywania. (Ie5cec)

Wersja 1.3.0-alpha03

30 października 2024 r.

androidx.wear.protolayout:protolayout-*:1.3.0-alpha03 został zwolniony. Wersja 1.3.0-alpha03 zawiera te komity.

Nowe funkcje

  • Dodaj LayoutElementAssertionsProvider, LayoutElementAssertion i LayoutElementMatcher do biblioteki testowej (Id1110)

Wersja 1.3.0-alpha02

16 października 2024 r.

androidx.wear.protolayout:protolayout-*:1.3.0-alpha02 został zwolniony. Wersja 1.3.0-alpha02 zawiera te komity.

Nowe funkcje

  • Wstępna wersja biblioteki Material 3. Obejmuje komponenty text, edgeButton, buttonGroupprimaryLayout.

Poprawki dotyczące bezpieczeństwa

  • Od momentu wprowadzenia tej zmiany androidx kompiluje się z użyciem protobuf 4.28.2, aby rozwiązać problem CVE-2024-7254. Aby rozwiązać problem z luką w zabezpieczeniach, zaktualizuj zależności androidx.wear.protolayout:protolayout-protoandroidx.wear.protolayout:protolayout-external-protobuf w wersji 1.3.0-alpha01 do wersji 1.3.0-alpha02.

Darowizna zewnętrzna

Wersja 1.3.0-alpha01

2 października 2024 r.

androidx.wear.protolayout:protolayout-*:1.3.0-alpha01 został zwolniony. Wersja 1.3.0-alpha01 zawiera te komity.

Poprawki błędów

  • Doprecyzowaliśmy, że dostępność nazw rodzin czcionek Roboto i Roboto Flex zależy od urządzenia. (I193be)
  • Włączona rodzina czcionek Roboto Flex w renderowaniu kafelka AndroidX. (I08e94)

Wersja 1.2

Wersja 1.2.1

16 października 2024 r.

androidx.wear.protolayout:protolayout-*:1.2.1 został zwolniony. Wersja 1.2.1 zawiera te komity.

Poprawki dotyczące bezpieczeństwa

  • Od momentu wprowadzenia tej zmiany androidx kompiluje się z użyciem protobuf 4.28.2, aby rozwiązać problem CVE-2024-7254. Aby rozwiązać problem z luką w zabezpieczeniach, zaktualizuj zależność od wersji 1.2.0 pakietów androidx.wear.protolayout:protolayout-protoandroidx.wear.protolayout:protolayout-external-protobuf do wersji 1.2.1.

Wersja 1.2.0

7 sierpnia 2024 r.

androidx.wear.protolayout:protolayout-*:1.2.0 został zwolniony. Wersja 1.2.0 zawiera te komity.

Ważne zmiany od wersji 1.1.0

  • Interfejs FontStyle został zaktualizowany, aby obsługiwać dodatkowe czcionki dla zmiennych osi oraz interfejs API do wyboru czcionki, który będzie obsługiwać czcionki Flex.
  • Obsługa dodatkowych modyfikatorów:
    • Modyfikator transformacji umożliwiający przesunięcie, obrót i pomniejszenie z animowaniem lub bez.
    • Określanie różnych wartości (poziomej i pionowej) dla każdego zaokrąglenia.
  • Ulepszenie dostępności wszystkich docelowych elementów dotykowych przez zwiększenie obszaru klikalnego dowolnego elementu, który używa modyfikatora Clickable, tak aby wynosił co najmniej 48dp × 48dp.
  • Poprawiliśmy PrimaryLayoutEdgeContentLayout, dodając setResponsiveContentInsetEnabled, aby lepiej obsługiwać układy elastyczne na różnych rozmiarach ekranu i poprawić spójność kafelków.
  • Ulepszone skalowanie/brak skalowania tekstu Material Design w ramach 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.

androidx.wear.protolayout:protolayout-*:1.2.0-rc01 został zwolniony. Wersja 1.2.0-rc01 zawiera te komity.

Poprawki błędów

  • Poprawiliśmy standardowy element Material Chip, aby można go było używać jako ikony tylko wtedy, gdy nie przekazano etykiety głównej ani etykiety dodatkowej. (Iceef9)
  • Dokumentacja dotycząca układów Material została zaktualizowana, aby zawierać wizualizacje z odpowiedniej strony, co ułatwia zrozumienie układów. (I0256a)

Wersja 1.2.0-beta01

10 lipca 2024 r.

androidx.wear.protolayout:protolayout-*:1.2.0-beta01 został zwolniony. Wersja 1.2.0-beta01 zawiera te komity.

Nowe funkcje

Wersja 1.2.0-beta01 pakietu Wear ProtoLayout oznacza, że ta wersja biblioteki jest kompletna pod względem funkcji, a interfejs API jest zablokowany (z wyjątkiem wersji oznaczonych jako eksperymentalne). Interfejs Wear ProtoLayout 1.2 zawiera te nowe funkcje i interfejsy API:

  • FontStyle został zaktualizowany, aby obsługiwać dodatkowe czcionki:
    • Ustawianie różnych ustawień odmian czcionki, takich jak FontSetting.weightFontSetting.width
    • Ustawianie tej samej szerokości dla wszystkich znaków liczbowych – cyfry w tablicy (ustawienie funkcji czcionki FontSetting.tnum)
    • Ulepszone interfejsy API do wyboru czcionek, które obsługują nadchodzące czcionki elastyczne. W tym celu należy określić preferowane nazwy rodzin czcionek.
  • Rozszerzono modyfikator Corner, aby umożliwić określanie każdego CornerRadius za pomocą osobnych wartości poziomych i pionowych, co pozwala tworzyć elementy o asymetrycznych rogach.
  • Dodano nowy modyfikator Transformation, który umożliwia przesuwanie, obracanie i zmienianie rozmiaru obiektu LayoutElement. Te przekształcenia można animować za pomocą wartości dynamicznych.
  • Do wszystkich elementów łuku (Arc, ArcLineArcText) dodano opcje setArcDirection z opcjami Clockwise, CounterClockwiseNormal, aby zapewnić lepszą obsługę różnych kierunków układu (np. lewo-prawo i odwrotnie).
  • Ułatwiliśmy dostęp do wszystkich docelowych elementów dotykowych, zwiększając obszar dotykowy dowolnego elementu, który używa modyfikatora Clickable, do co najmniej 48dp × 48dp.
  • Poprawiliśmy układy PrimaryLayoutEdgeContentLayout, dodając opcję setResponsiveContentInsetEnabled, aby lepiej obsługiwać układy elastyczne na różnych rozmiarach ekranu i poprawić spójność kafelków. Dodano ostrzeżenie linter, aby zasugerować użycie tych interfejsów API z szybkim rozwiązaniem.
  • Ulepszone skalowanie/brak skalowania komponentu Material Text w ramach nieliniowego skalowania czcionki w Androidzie 14.

Zmiany w interfejsie API

  • Domyślna nazwa rodziny czcionek (DEFAULT_SYSTEM_FONT) jest usuwana, ponieważ jest ona domyślnie używana, gdy nie używasz interfejsu API preferredFontFamilies. (I39dab)
  • Parametr przekazywany do funkcji FontSetting.width powinien być dodatni. (I1266f)

Wersja 1.2.0-alpha05

26 czerwca 2024 r.

androidx.wear.protolayout:protolayout-*:1.2.0-alpha05 został zwolniony. Wersja 1.2.0-alpha05 zawiera te komity.

Nowe funkcje

  • Dodaj metodę hasText do Material.CompactChip, aby sprawdzić, czy ustawiono treść tekstu. (I6e8fc)

Zmiany w interfejsie API

  • Konstanty FontFamily zostały przeniesione do klasy FontStyle, a nie do klasy Builder. (I06ced)
  • Zaktualizuj interfejsy API FontSetting.weightFontSetting.width, aby zawierały adnotacje zakresu oraz zmieniały parametr wagi na int. (Ia726c)

Poprawki błędów

  • Teksty nieskalowalne w Material Library teraz poprawnie działają z nieliniowym skalowaniem czcionki w Androidzie 14. (I6601e)

Wersja 1.2.0-alpha04

29 maja 2024 r.

androidx.wear.protolayout:protolayout-*:1.2.0-alpha04 został zwolniony. Wersja 1.2.0-alpha04 zawiera te komisy.

Zmiany w interfejsie API

  • Dodano interfejs API dotyczące niesymetrycznych rogów, aby umożliwić oddzielne określenie promienia każdego z rogów za pomocą 2 wartości. (Icbd69)
  • Rozszerzono interfejs API FontSetting o:
    • ustawienia funkcji czcionki, takie jak ustawienie czcionki jako tabeli; (If12b7)
    • ustawienia czcionki, np. ustawienie niestandardowej szerokości dla czcionek zmiennych; (I2b36d)
  • Dodano interfejs API rodziny czcionek do FontStyle, aby umożliwić określenie kolejności, w jakiej mają być używane rodziny czcionek. (Iba9f5)
  • Zmieniliśmy nazwy stałych wartości wysokości przestrzeni między treścią a etykietą pomocniczą w elementach LayoutDefaults w Material Design, które początkowo miały prefiks „Edge content” (treści na Edge), aby były bardziej uniwersalne, ponieważ można je stosować zarówno do PrimaryLayout, jak i EdgeContentLayout. (I4dc32)

Poprawki błędów

  • Zmieniono nazwy osi czcionek zmiennych z axisName na axisTag. (I02ba3)

Wersja 1.2.0-alpha03

14 maja 2024 r.

androidx.wear.protolayout:protolayout-*:1.2.0-alpha03 został zwolniony. Wersja 1.2.0-alpha03 zawiera te komity.

Nowe funkcje

  • Dodano interfejs API do ustawiania niestandardowych wartości wag dla FontStyle. (I7390a)

Poprawki błędów

  • Usuń błąd w funkcji getTouchDelegateInfo spowodowany pustą mapą docelową. (I2accf)

Wersja 1.2.0-alpha02

1 maja 2024 r.

androidx.wear.protolayout:protolayout-*:1.2.0-alpha02 został zwolniony. Wersja 1.2.0-alpha02 zawiera te komity.

Zmiany w interfejsie API

  • Dodaliśmy obsługę wyłączania efektu falowania 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 tej funkcji (Ic0827)
  • ArcDirectionProp Builder oczekuje teraz wartości w konstruktorze. (I76ada)
  • Metoda PlatformDataValues.Builder.putAll umożliwia połączenie jednego PlatformDataValue z innym. (I50ba3)
  • Nazwa Text#setIsScalable została zmieniona na Text#setScalable. (If920e)
  • Materiał Tekst może określać, czy ma używać skalowanego rozmiaru (zmienia się, gdy użytkownik zmienia rozmiar czcionki). (Ibc849)
  • Dodaliśmy opcję ustawienia opisu treści na TitleChip. (I5d21f)
  • Poprawiono CompactChip, aby działał prawidłowo tylko z ikoną, oraz zaktualizowano interfejs API, aby umożliwić tę opcję. (I6589e)

Poprawki błędów

  • Rozwiązaliśmy problem z potencjalnie podwójnymi danymi platformy podczas inicjowania. (Iba0fd)
  • Dodaj do klasy DynamicDataNode nową metodę gettera, która zwraca koszt węzła. Koszt jest używany podczas nabywania limitu węzła dynamicznego. Obecnie węzły o stałych wartościach mają koszt 0, a wszystkie pozostałe – koszt 1. (Ia33e1)
  • Usuń logikę zliczania z poziomu NO_OP_QUOTA_MANAGER. (Ib50b8)
  • Dodaliśmy regułę lint, która ostrzega, gdy PrimaryLayout jest używana bez setResponsiveContentInsetEnabled, i zapewnia szybkie rozwiązanie problemu. (I12025)
  • Liczba węzłów wyrażeń dynamicznych jest ograniczona. (Iffae8)

Wersja 1.2.0-alpha01

6 marca 2024 roku

androidx.wear.protolayout:protolayout-*:1.2.0-alpha01 został zwolniony. Wersja 1.2.0-alpha01 zawiera te komity.

Nowe funkcje

  • Do elementów ProtoLayout Arc można teraz dodawać elementy ArcDirection (Clockwise, Counterclockwise lub Normal). Dodanie tego zachowania do elementów Arc, ArcLine lub ArcText poprawi ich działanie w układach RTL. (I90699)
  • EdgeContentLayout został zaktualizowany o nowy setter setResponsiveContentInsetEnabled, aby zapewnić większą zgodność z wytycznymi dotyczącymi UX oraz spójność w przypadku kafelków dzięki umieszczeniu etykiety głównej w stałym miejscu u góry i dopasowywanej w etykiecie. (I60175)
  • Dodaliśmy element PrimaryLayout.setResponsiveContentInsetEnabled, który dodaje element dynamiczny do etykiety głównej, etykiety dodatkowej i elementu dolnego w tym układzie, aby uniknąć wychodzenia treści poza krawędź ekranu. (I0c457)
  • Dodaje metodę usuwania zewnętrznych marginesów z elementu CircularProgressIndicator, aby można było używać go jako mniejszego komponentu. (I55c06)

Zmiany w interfejsie API

  • W renderowaniu kafelków domyślnie wyłączono wypełnienie czcionki we wszystkich elementach tekstowych. Nie można go włączyć. (I3e300)

Poprawki błędów

  • Rozwiązanie problemu z wyrównaniem tekstu, gdy w Tekście są używane jednocześnie elipsa, odstęp między literami i wyrównanie do środka. (I716c7)
  • Dodać obejście problemu z rysowaniem łuku w Skia. (I08f09)
  • Napraw ArcLine kierunek rysowania w przypadku układów RTL. (I6c141)

Wersja 1.1

Wersja 1.1.0

7 lutego 2024 r.

androidx.wear.protolayout:protolayout-*:1.1.0 został zwolniony. Wersja 1.1.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.0.0

  • Obsługa gradientów i lepsza reprezentacja długości większych niż 360 stopni w funkcji ArcLine.
  • Formatowanie daty i godziny obsługuje różne strefy czasowe w przypadku dynamicznych typów danych.
  • lepsze opcje automatycznego dostosowywania rozmiaru tekstu i elipsy, aby obsługiwać obcięty tekst;
  • Spacer obsługuje rozszerzone wymiary z opcjonalną wagą.
  • Dodanie adnotacji wymagań dotyczących wersji schematu do wszystkich interfejsów API usługi ProtoLayout.
  • Rozszerzenie obszaru docelowego dowolnego elementu Clickable do 48 x 48 dp, aby spełniać wymagania ułatwień dostępu.
  • Wypełnienie czcionki jest domyślnie wyłączone i jest jedynym zachowaniem we wszystkich elementach tekstowych i komponentach Material Design, które zawierają tekst.

Dodatkowe zmiany

Wersja 1.1.0-rc01

24 stycznia 2024 r.

androidx.wear.protolayout:protolayout-*:1.1.0-rc01 został zwolniony. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

  • PlatformTimeUpdateNotifierImpl zaznacza się natychmiast po włączeniu aktualizacji. (I77145)
  • Problem z usługą CircularProgressIndicator został rozwiązany w przypadku układów RTL. Od teraz będzie ona zawsze wskazywać kierunek zgodny z ruchem wskazówek zegara. (I95ee3)
  • Dodać obejście problemu z rysowaniem łuku skia. (I08f09)

Wersja 1.1.0-beta01

10 stycznia 2024 r.

androidx.wear.protolayout:protolayout-*:1.1.0-beta01 został zwolniony. Wersja 1.1.0-beta01 zawiera te commity.

Nowe funkcje

Wersja 1.1.0-beta01 pakietu Wear ProtoLayout oznacza, że ta wersja biblioteki jest kompletna pod względem funkcji, a interfejs API jest zablokowany (z wyjątkiem wersji oznaczonych jako eksperymentalne). Interfejs Wear ProtoLayout 1.1 zawiera te nowe funkcje i interfejsy API:

  • ArcLine obsługuje teraz gradient dzięki dodaniu BrushSweepGradient i cieniem na czapie, aby lepiej odzwierciedlać 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. Typy danych DynamicInstantDynamicDuration mogą być używane jako typy danych stanu lub platformy.
  • Funkcja automatycznego dostosowywania rozmiaru tekstu, która umożliwia ustawienie wielu rozmiarów w opcji FontStyle.setSizes, gdzie rozmiar tekstu będzie automatycznie dostosowywany na podstawie miejsca, jakie zajmuje w elemencie nadrzędnym. Dodatkowo ulepszyliśmy opcje stosowania wielokropków do tekstu, który wylewa się poza kolumnę. Wprowadziliśmy TEXT_OVERFLOW_ELLIPSIZE i wycofaliśmy TEXT_OVERFLOW_ELLIPSIZE_END.
  • Spacer obsługuje teraz rozszerzone wymiary z opcjonalną wagą. Aby ułatwić tworzenie 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 kolumnie BoolProp.
  • Wszystkie interfejsy API ProtoLayout mają teraz adnotację wymagań dotyczących wersji schematu, a wersję można sprawdzić przed wywołaniem nowszego interfejsu API.
  • Każdy element, który ma element Clickable, ma teraz obszar docelowy rozszerzony do co najmniej 48 x 48 w rendererze, aby lepiej spełniać wymagania dotyczące ułatwień dostępu.
  • W ślad za innymi komponentami Material Design i inicjatywami dotyczącymi Compose wyłączyliśmy domyślnie wypełnienie czcionki we wszystkich elementach Text. Dodatkowo z publicznego interfejsu API usunięto metodę AndroidTextStyle i powiązane z nią metody settera. Zmiany te obejmują te poprawki błędów:
  • Dodano setter do pozycjonowania treści krawędzi w EdgeContentLayout, aby można było je umieścić przed innymi treściami.
  • Wyjątek jest zawsze zgłaszany, gdy napotkasz nieznana wartość enumeracji.
  • unieważnia wynik wyrażenia, gdy zwraca ono nieprawidłową wartość liczbową (NaN lub nieskończoność) albo ArithmeticException.

Zmiany w interfejsie API

  • Aktualizacje interfejsu SweepGradient API, które umożliwiają przyjmowanie w konstruktorze albo kolorów, albo ColorStops. (I6676f)

Poprawki błędów

  • Dodano ograniczoną obsługę interfejsu API i renderowania w celu ustawienia kierunku, w jakim rysowane są elementy łuku. (Idef5a)
  • Jeśli nie podasz wartości, RoundMode przyjmie domyślnie wartość Floor w elementach FloatToInt32Node. Jeśli podana wartość RoundMode nie zostanie rozpoznana, węzeł nadal wyrzuci wyjątek. (I1b2d8)

Wersja 1.1.0-alpha04

13 grudnia 2023 r.

androidx.wear.protolayout:protolayout-*:1.1.0-alpha04 został zwolniony. Wersja 1.1.0-alpha04 zawiera te commity.

Nowe funkcje

  • Klasa VersionInfo nie implementuje interfejsu Comparable. (I8d13c)
  • Renderer 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 bardzo podobnie. (I822d8)
  • W ślad za innymi komponentami Material Design i inicjatywami dotyczącymi tworzenia wiadomości wyłączyliśmy domyślnie wypełnienie czcionki we wszystkich elementach tekstowych. Ponadto z publicznego interfejsu API usunięto metodę AndroidTextStyle i powiązane z nią metody ustawień. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3)
  • Modifier.hidden został zastąpiony przez Modifier.visible (I56902)
  • Funkcja FontStyle#setSizes przyjmuje teraz argumenty typu int zamiast SpProp. (I02b37)

Poprawki błędów

  • Wyjątek w przypadku napotkania niezdefiniowanej lub niezrozumiałej wartości. (I9d2cf)
  • Refaktoryzacja DynamicTypeBindingRequest. (I27b57)
  • unieważnia wynik wyrażenia, gdy zwraca ono nieprawidłową wartość liczbową (NaN lub nieskończoność) albo ArithmeticException. (I681ae)

Wersja 1.1.0-alpha03

29 listopada 2023 r.

androidx.wear.protolayout:protolayout-*:1.1.0-alpha03 został zwolniony. Wersja 1.1.0-alpha03 zawiera te commity.

Nowe funkcje

  • Dodanie eksperymentalnej obsługi dynamicznego ukrywania i odkrywania elementów układu (I64a78)
  • Dodanie obsługi wartości dynamicznych do BoolProp (I2fe96)
  • Dodanie adnotacji wymagań dotyczących wersji schematu do interfejsów API ProtoLayout (I0f03c)
  • Rozszerzenie interfejsu API o nową opcję TextOverflow umożliwiającą pominięcie tekstu w kontenerze nadrzędnym o stałych wymiarach, nawet jeśli nie osiągnięto maksymalnej liczby wierszy (ale nie ma wystarczająco dużo miejsca na tekst). (I110a9)
  • Dodano pomocniczą metodę DimensionBuilders.weight do tworzenia obiektu ExpandedDimensionProp z wagą. (I4f72b)
  • Typy danych DynamicInstantDynamicDuration mogą być używane jako typy danych stanu lub platformy. (I6819f)

Zmiany w interfejsie API

  • Zaktualizuj interfejs API, aby ukryć interfejs DynamicZonedDateTime i przenieść wszystkie jego operacje do interfejsu DyanamicInstant (I34b94)
  • Spacer obsługuje teraz wymiar Rozwinięty w przypadku szerokości i wysokości. (Ie7c94)
  • Obsługa rozszerzenia obszaru docelowego kliknięcia w Renderze (I39c79)

Wersja 1.1.0-alpha02

15 listopada 2023 r.

androidx.wear.protolayout:protolayout-*:1.1.0-alpha02 został zwolniony. Wersja 1.1.0-alpha02 zawiera te commity.

Nowe funkcje

  • Dodano do interfejsu API pole ArcLine StrokeCap Shadow. (I830ec)
  • Rozszerzenie interfejsu API o możliwość określenia szerokości lub wysokości elementu Spacer, który ma się rozszerzać. (I757ca)
  • Dodaliśmy eksperymentalny interfejs API, który automatycznie dostosowuje rozmiar tekstu do miejsca, jakie zajmuje w elemencie nadrzędnym. (Ibbe63)
  • Obsługa minimalnego rozmiaru klikalnego (I178e3)
  • Dodano obsługę renderowania dla StrokeCap Shadow. (I48b17)
  • Dodano obsługę renderowania gradientu Sweep w ArcLine. (I4d5bb)

Wersja 1.1.0-alpha01

18 października 2023 r.

androidx.wear.protolayout:protolayout-*:1.1.0-alpha01 został zwolniony. Wersja 1.1.0-alpha01 zawiera te commity.

Nowe funkcje

  • Dodano opcję pędzla do Arcline z obsługą SweepGradient. (Ie7ce3)
  • Dodano obsługę formatowania daty i godziny z uwzględnieniem strefy czasowej. (Ibfae0)
  • Dodano prototypy i Wrappery Java wymagane do formatowania daty i godziny w strefie czasowej. (I97126)
  • Dodano metody dostępu do wartości przechowywanej w atrybucie DynamicDataValue. (Ie6cea)
  • Dodano setter do pozycjonowania treści krawędzi w EdgeContentLayout, aby można było je umieścić przed innymi treściami. (Ie8e8a)

Poprawki błędów

  • Rozwiązaliśmy problem polegający na tym, że wyrażenie z wieloma rejestracjami źródeł danych czasowych nie było aktualizowane natychmiast. (I8e1a8)
  • Naprawiono błąd polegający na tym, że podczas aktualizacji różnic element główny był wyśrodkowy. (Ie48f7)
  • Nieskonfigurowane (lub puste) wartości ograniczeń układu nie będą już ignorowane. (Ibc785)
  • Skrócenie opóźnienia między momentem, w którym układ staje się widoczny, a inicjalizacją jego węzłów w potoku. (I38d4e)

Wersja 1.0

Wersja 1.0.0

9 sierpnia 2023 r.

androidx.wear.protolayout:protolayout-*:1.0.0 został zwolniony. Wersja 1.0.0 zawiera te zatwierdzenia.

Najważniejsze funkcje wersji 1.0.0

Biblioteka ProtoLayout zawiera interfejsy API do tworzenia układów i wyrażeń, które można stosować na różnych interfejsach Wear OS. Na przykład biblioteka kafelków używa tych interfejsów API do obsługi powiązań danych platformy (w celu szybszego aktualizowania danych kafelków) i animacji.

Wersja 1.0.0-rc01

26 lipca 2023 r.

androidx.wear.protolayout:protolayout-*:1.0.0-rc01 został zwolniony. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.

  • Aby przejść z usługi Tiles do usługi ProtoLayout, wykonaj instrukcje podane tutaj.

Zmiany w interfejsie API

  • Z elementu Arc usunęliśmy metody setLayoutConstraintForDynamicAnchorAnglegetLayoutConstraintForDynamicAnchorAngle. Te metody zostały dodane przez pomyłkę i nie miały żadnego wpływu na podany układ. (If7d01)
  • Maksymalna głębokość układu ProtoLayout została ograniczona do 30 zagnieżdżonych elementów LayoutElements. (I8a74b)

Poprawki błędów

  • Dodaliśmy sprawdzanie, czy dla SpanText ustawiono wartość DynamicColor. (I0e5bc)
  • Jednostką źródła danych DAILY_CALORIES jest kcal. (Iaa785)

Wersja 1.0.0-beta01

21 czerwca 2023 r.

androidx.wear.protolayout:protolayout-*:1.0.0-beta01 został zwolniony. Wersja 1.0.0-beta01 zawiera te commity.

Nowe funkcje

  • Zezwalanie na ustawianie zegara w przypadku testów ograniczonych czasowo. (I05622)

Zmiany w interfejsie API

  • PlatformDataReceiver.onData()StateBuilders.Builder.addKeyToValueMapping obsługują teraz mapowanie DynamicDataKey na DynamicDataValue z zabezpieczeniem typu zamiast niepewnych typów ogólnych. Oznacza to, że DynamicDataValue jest teraz wpisywana z użyciem DynamicType. stałe HEART_RATE_ACCURACY_X zostały przeniesione do katalogu głównego PlatformHealthSources, aby pasowały do innych stałych Androida. Zamiast stałych wartości int HEART_RATE_ACCURACY_X są teraz używane bezpośrednio w funkcjach DynamicHeartRateAccuracy.constant()DynamicHeartRateAccuracy.dynamicDataValueOf(). (I82ff5)
  • Klasa PlatformHealthSources.Constants została przez pomyłkę uruchomiona. Problem został już rozwiązany. (Icb849)
  • Funkcja PlatformTimeUpdateNotifier#setReceiver korzysta teraz z funkcji Runnable zamiast Supplier i z opcji Executor do wysyłania powiadomień. (I9d938)
  • Zmieniliśmy typ parametru w kolumnie PlatformTimeUpdateNotifier#setReceiverCallable na Supplier. (I664bf)
  • Atrybuty CompactChip i TitleChip obsługują teraz dodawanie ikony. (I5a01e)

Poprawki błędów

  • Zaktualizuj wiadomości z polami dynamicznymi, aby zamiast nich używać pola oneof (I81739)
  • Ponownie używaj implementacji setterów w przypadku przeciążeń, które mają settery (Ied70c)
  • Prawidłowe rejestrowanie odcisków palców w przypadku funkcji setters z przeciążeniem (I86ed2)

Wersja 1.0.0-alpha11

7 czerwca 2023 r.

androidx.wear.protolayout:protolayout-*:1.0.0-alpha11 został zwolniony. Wersja 1.0.0-alpha11 zawiera te commity.

Nowe funkcje

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

Zmiany w interfejsie API

  • Zmień nazwę elementu StateBuilders#getIdToValueMapping na getKeyToValueMapping i zmien typ zwracanej wartości na Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae)
  • Ustaw StateStore jako ostatnie zajęcia (I408ca)
  • W bibliotece protolayout-expression-pipeline interfejs TimeGateway został zastąpiony przez PlatformTimeUpdateNotifier, który zapewnia żądaną częstotliwość aktualizowania danych czasowych. (I60869)
  • Zmień nazwę register/unregisterForDataPlatformDataProvider na set/clearReceiver (I14b02)
  • W sekcji Tekst materiału nazwa getExcludeFontPadding została zmieniona na hasExcludeFontPadding. (Iea01d)
  • Do wszystkich elementów elementów dodano funkcję ustawiania, która umożliwia idealne wyrównanie etykiety. Wszystkie elementy mają teraz ustawioną minimalną wartość dotkalnego celu. (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

  • Zaktualizuj dokumenty dotyczące typów właściwości, aby wyjaśnić, dlaczego jest wymagana wartość statyczna. Podaj wartość domyślną, która zostanie użyta, jeśli nie podano wartości statycznej. (I155aa)
  • PlatformDataKeyprzestrzeni nazw powinny być zgodne ze specyfikacją nazewnictwa języka Java. (I47bda)

Wersja 1.0.0-alpha10

24 maja 2023 r.

androidx.wear.protolayout:protolayout-*:1.0.0-alpha10 został zwolniony. Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaj AppDataKey, aby uzyskać dostęp do stanu aplikacji przesyłanej strumieniowo; dodaj PlatformDataKey, aby uzyskać dostęp do danych platformy; dodaj obsługę przestrzeni nazw w StateStore. (I7985e)
  • Obsługa operacji Equal i NotEqual w przypadku DynamicBool. (I6a0c1)

Zmiany w interfejsie API

  • zajęcia FontStyles są już ostateczne (Iaa2ea)
  • Środowisko wykonawcze LayoutElementBuilders#FontStyles zostało wycofane. Użyj pola androidx.wear.protolayout.Typography lub utwórz własne FontStyle. (Ic929b)
  • Ukryj zagnieżdżony interfejs Action#Builder w interfejsie Action. Implementacje klasy Builder są już dostępne w klasach LoadActionLaunchAction. (I1d70c)
  • Zezwalaj na korzystanie z DynamicFloat w usłudze FloatProp. Pamiętaj, że FloatProp nie wymaga ograniczeń układu, ponieważ nie jest używany jako element zmieniający układ. (I286ac)
  • Akcje LoalActionSetStateAction zostały usunięte, ponieważ nie były jeszcze obsługiwane. (I5d6a6)
  • Dodaliśmy obsługę formatu ARGB_8888 dla zasobów obrazów wstawionych w tekście. (I8a07c)
  • Zmień nazwę StateEntryValue na DynamicDataValue i zaktualizuj interfejsy API stanu, aby używały DynamicDataValue (If1c01)DynamicDataKey
  • Ograniczamy liczbę wpisów dozwolonych w StateStore, aby zapewnić odpowiednią kontrolę i ograniczenie wykorzystania pamięci oraz czasu aktualizacji stanu w przypadku każdej instancji StateStore. Dlatego deweloper musi zadbać o to, aby na mapie nie było więcej niż MAX_STATE_ENTRY_COUNT pozycji. W przeciwnym razie podczas tworzenia lub aktualizowania StateStore pojawi się błąd IllegalStateException. (Ibadb3)
  • Ukryj zajęcia OnLoadTrigger i OnConditionMetTrigger oraz zmień nazwę zajęć setTrigger na setCondition dla OnConditionMetTrigger. (Ibf629)
  • Ze względu na wydajność i zgodność przeglądarki ProtoLayout nie obsługują pełnego zestawu funkcji w zasobach AnimatedVectorDrawable. Do czasu zdefiniowania obsługiwanego zestawu te interfejsy API są oznaczane jako eksperymentalne. (Ic6daf)
  • Dodano dynamiczne typy danych dotyczące dziennego dystansu, dziennych kalorii i dniowych pięter. Klucze źródeł danych o zdrowiu platformy znajdują się teraz w sekcji PlatformHealthSources.Keys (Ib7637)
  • Metoda Easing.cubicBezier zastępuje metodę CubicBezierEasing.Builder. W związku z tym klasa EasingFunction została usunięta, a stałe interpolacji z tej klasy są teraz dostępne bezpośrednio z interfejsu Easing. Ponadto setInfiniteRepeatable jest zastępowany przez INFINITE_REPEATABLE_WITH_RESTART i INFINITE_REPEATABLE_WITH_REVERSE (Ib41e7).
  • W celu udostępniania tętna i liczby kroków na dzień użyj elementu PlatformDataProvider. Interfejs SensorGateway został usunięty z publicznego interfejsu API. (I55b84)
  • Dodaj PlatformDataProvider i zaktualizuj StateStore, aby zarejestrować PlatformDataProvider, gdy węzeł z potoku wyrażeń wymaga obsługiwanego przez dostawcę klucza. (Ib616a)
  • Element SensorGateway nie jest już elementem Closeable, ponieważ nie ma już stanu. (I6b4f7)
  • Zezwalaj na korzystanie z usługi FloatProp w aplikacji DynamicFloat w celu śledzenia postępów w aplikacji CircularProgressIndicator. Ta funkcja jest obsługiwana w przypadku procesorów obsługujących wersję 1.2. Starsze renderery będą używać wartości staticValue, jeśli zostanie podana, w przeciwnym razie 0 (I0d91b).
  • Stałe MultiButtonLayout zostały przekształcone w klasę LayoutDefaults.MultiButtonLayoutDefaults, która zawiera teraz rozmiary przycisków zależne od liczby przycisków w układzie. (I13973)
  • Obsługa StringPropDynamicString w Material Text. Ta funkcja jest obsługiwana w przypadku procesorów obsługujących wersję 1.2. Stare mechanizmy renderowania będą używać podawanej wartości statycznej. Zmień typ wartości zwracanej Text#getTextString na StringProp. (I7275b)

Wersja 1.0.0-alpha09

10 maja 2023 r.

androidx.wear.protolayout:protolayout-*:1.0.0-alpha09 został zwolniony. Wersja 1.0.0-alpha09 zawiera te commity.

Nowe funkcje

  • Dodaliśmy eksperymentalny element układu rozszerzenia. Pamiętaj, że domyślnie nie można go używać. Wymaga ona rozszerzenia mechanizmu renderowania, które potrafi interpretować element układu. (I6581d)
  • Dodano obsługę właściwości StrokeCap dla ArcLine. (I94951)
  • Dodano obsługę operacji warunkowych typu „natychmiastowy”. (I489a7)
  • Dodano obsługę operacji Warunkowa długość trwania. (Iab469)
  • Dodano obsługę tworzenia czasu trwania w sekundach. (Ib5fa1)

Zmiany w interfejsie API

  • Metody enable/disablePlatformSource zostały usunięte z DynamicTypeEvaluator. Osoba dzwoniąca powinna być odpowiedzialna za aktualizacje. (I78c6d)
  • Umożliwianie ograniczania rozmiaru powiązanych typów danych. (Ie2966)
  • Dodaliśmy obsługę dynamicznego opisu treści w protolayout-material. (I62c8e)
  • Użyj long i @IntRange do określenia czasu trwania i opóźnienia w AnimationParameters. (I388b6)

Wersja 1.0.0-alpha08

19 kwietnia 2023 r.

androidx.wear.protolayout:protolayout-*:1.0.0-alpha08 został zwolniony. Wersja 1.0.0-alpha08 zawiera te commity.

Nowe funkcje

  • Kontakt AndroidTextStyle został dodany do następujących grup: LayoutElementBuilders. (I8d967)
  • Dodaliśmy obsługę ustawień wykluczających wypełnienie czcionki w ProtoLayoutTekście Material Design. (I17f5d)
  • Format ARGB_8888 jest teraz obsługiwany w przypadku obrazów wstawionych. (I18c1e)
  • DynamicColor obsługuje teraz operację onCondition. (I10927)

Zmiany w interfejsie API

  • Obsługa niestandardowego czasu trwania odtwarzania wstecznego animacji (I3251f)
  • Dodaliśmy modyfikator SemanticDescription. Ponadto element ContentDescription nie może być powiązany. (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 zwężenie zakresu wartości DynamicInt32 do wartości DynamicFloat powodują teraz nieprawidłowy wynik dynamiczny. (I6ac1e)
  • Formatery int i float używają teraz wzorca Builder. (Ieb213)

Poprawki błędów

  • Wartość statyczna zastępcza została usunięta z pól animowanych. (Ifcb01)
  • DynamicTypeValueReceiver#onPreUpdate został(a) usunięty(a). (I2dc35)
  • Długość ciągów znaków w wyrażeniach dynamicznych jest teraz ograniczona. (I4c93)
  • W razie potrzeby zależności Gradle są teraz prawidłowo ustawione na api zamiast implementation. (I40503)

Wersja 1.0.0-alpha07

5 kwietnia 2023 r.

androidx.wear.protolayout:protolayout-*:1.0.0-alpha07 został zwolniony. Wersja 1.0.0-alpha07 zawiera te commity.

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 Consumer. (Icf314)
  • Nazwa ObservableStateStore została zmieniona na StateStore. (Ieb0e2)
  • Zamiast argumentów konstruktora dodano argument DynamicTypeEvaluator.Builder, aby umożliwić stosowanie większej liczby argumentów opcjonalnych, w tym ObservableStateStore, który domyślnie jest pustym sklepem. (I6f832)
  • Zmieniono kolejność parametrów w funkcji DynamicTypeEvaluator. (Ic1ba4)

Poprawki błędów

  • Prawidłowe rozprzestrzenianie sygnałów z źródeł czujników platformy do węzłów docelowych (I5a922)

Wersja 1.0.0-alpha06

22 marca 2023 r.

androidx.wear.protolayout:protolayout-*:1.0.0-alpha06 został zwolniony. Wersja 1.0.0-alpha06 zawiera te commity.

Nowe funkcje

  • Dodaliśmy eksperymentalny interfejs API do korzystania z tętności i liczby kroków w wyrażeniach dynamicznych (Ifd711).
  • Dodaliśmy obsługę odtwarzania wstecz 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 typach w DimensionBuilder
  • Układ i komponenty z tiles-material są przenoszone 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)
  • Rozwiązano problem z awarią mechanizmu renderowania, gdy nie można było wczytać bitmapy uporządkowanej.

Wersja 1.0.0-alpha05

8 marca 2023 r.

androidx.wear.protolayout:protolayout-*:1.0.0-alpha05 został zwolniony. Wersja 1.0.0-alpha05 zawiera te commity.

Nowe funkcje

  • Do obiektu Modifiers dodaliśmy eksperymentalną animację „aktualizacja treści”. Animacja zostanie uruchomiona, gdy element (z tym modyfikatorem) lub jeden z jego elementów podrzędnych ulegnie zmianie podczas aktualizacji układu. (bd03e5d)

Zmiany w interfejsie API

  • Dodano użytkowników forwardRepeatDelayMillisreverseRepeatDelayMillis do zespołu Repeatable. Zmieniliśmy też nazwę delayMillis w pliku AnimationSpec na startDelayMillis (Ifb266).
  • Metody DynamicTypeEvaluator.bind mogą teraz przyjmować wykonawcę. (I346ab)
  • Do metody BoundDynamicType dodaliśmy metodę startEvaluation, aby wywołać ocenę po powiązaniu typu dynamicznego. (I19908)

Poprawki błędów

  • Obiekt Animator będzie używany ponownie w przypadku kolejnych animacji tego samego elementu. (Ia3be9)

Wersja 1.0.0-alpha04

22 lutego 2023 roku

androidx.wear.protolayout:protolayout-*:1.0.0-alpha04 został zwolniony. Wersja 1.0.0-alpha04 zawiera te commity.

Nowe funkcje

  • ObservableStateStore teraz informuje słuchaczy również o usunięciu klucza.
  • Do DeviceParameters dodaliśmy wersję schematu renderowania i rozmiar czcionki (które można wykorzystać 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 zawiniętych wymiarów.
  • Dodaliśmy typy dynamiczne „czas trwania” i „natychmiastowy”. Można ich używać do reprezentowania chwili lub czasu trwania w wyrażeniu dynamicznym.
  • Dodaliśmy obsługę właściwości AnimatedVectorDrawable i SeekableAnimatedVectorDrawable 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 pomocnicze metody launchAction (do uruchamiania czynności).

Poprawki błędów

  • Zmień nazwę set/getSpec na set/getAnimationSpec w animacji kafelków (I3d74b)

Wersja 1.0.0-alpha03

8 lutego 2023 r.

androidx.wear.protolayout:protolayout-*:1.0.0-alpha03 został zwolniony. Wersja 1.0.0-alpha03 zawiera te commity.

Nowe funkcje

  • Dodaliśmy typy dynamiczne toByteArray() i fromByteArray() do biblioteki protolayout-express.
  • Dodaliśmy typ toString() do biblioteki protolayout-expression dla typów dynamicznych.
  • Dodaliśmy obsługę oceny w przypadku typów dynamicznych. Klasy DynamicTypeEvaluator z biblioteki protolayout-expression-pipeline można używać do oceny (i otrzymywania zaktualizowanych wartości) wcześniej utworzonego typu dynamicznego (DynamicString, DynamicFloat, …).
  • Gdy animacji nie można odtworzyć (ponieważ są one wyłączone przez oceniającego lub liczba uruchomionych animacji osiągnęła ustawiony limit), animacja zostanie zastąpiona przez wartości statyczne ustawione w węźle animowanym.

Wersja 1.0.0-alpha02

25 stycznia 2023 r.

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

Nowe funkcje

  • Kreatory układów z poziomu androidx.wear.tiles:tiles są przenoszone do androidx.wear.protolayout:protolayout. W jednym z następnych wydań alfa zostaną wycofane te, które są w wersji androidx.wear.tiles:tiles.

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 są dostępne. Wersja 1.0.0-alpha01 zawiera te commity.

Nowe funkcje

  • W tej wersji wprowadzamy nową bibliotekę „ProtoLayout Expression” do tworzenia wyrażeń z dynamicznych zmiennych.