Wearout Protolayout

  
Ta biblioteka umożliwia definiowanie zestawu układów interfejsu i wyrażeń niezwiązanych z interfejsem, które będą renderowane/oceniane na zdalnych platformach.
Najnowsza aktualizacja Wersja stabilna Kandydat do wydania Wersja Beta Wydanie alfa
7 sierpnia 2024 r. 1.2.0 - - -

Deklarowanie zależności

Aby dodać zależność od Wear-protolayout, musisz dodać repozytorium Google Maven do w projektach AI. Zapoznaj się z repozytorium Google Maven. .

Dodaj zależności artefaktów, których potrzebujesz 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.2.0"

    // Use to implement support for Wear ProtoLayout
    implementation "androidx.wear.protolayout:protolayout:1.2.0"

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

Kotlin

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

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

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

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Opinia

Twoja opinia pomoże nam ulepszyć Jetpack. Daj nam znać, jeśli odkryjesz nowe problemy jak ulepszyć tę bibliotekę. Przyjrzyj się istniejące problemy w tej bibliotece, zanim utworzysz nową. Możesz zagłosować nad istniejącym problemem przez klikając przycisk gwiazdki.

Tworzenie nowego numeru

Zobacz dokumentację narzędzia Issue Tracker. .

Wersja 1.2

Wersja 1.2.0

7 sierpnia 2024 r.

Usługa androidx.wear.protolayout:protolayout-*:1.2.0 została zwolniona. Wersja 1.2.0 zawiera. tych zobowiązań.

Ważne zmiany od wersji 1.1.0

  • Zaktualizowaliśmy FontStyle, aby zapewnić dodatkową obsługę czcionek dla osi zmiennych i lepszy interfejs API wyboru czcionek, aby obsługiwać przyszłe czcionki Flex.
  • Obsługa dodatkowych modyfikatorów:
    • Modyfikator przekształcenia oferujący przesunięcie, obrót i skalowanie z animacjami lub bez nich.
    • Określenie różnych wartości (poziomego i pionowego) dla każdego promienia narożnika.
  • Łatwiejszy dostęp do wszystkich docelowych elementów dotykowych przez zwiększenie obszaru do kliknięcia każdego elementu używającego modyfikatora kliknięcia do wartości co najmniej 48dp x 48dp.
  • Ulepszyliśmy PrimaryLayout i EdgeContentLayout, dodając element setResponsiveContentInsetEnabled, aby lepiej obsługiwać elastyczne zachowanie tych układów na ekranach o różnych rozmiarach i poprawić spójność kafelków.
  • Poprawione skalowanie lub nieskalowanie tekstu Material Design na potrzeby nieliniowego skalowania czcionek w Androidzie 14.
  • Ulepszona obsługa kierunku układu od prawej do lewej na wszystkich elementach łuku.

Dodatkowe zmiany

Wersja 1.2.0-rc01

24 lipca 2024 r.

Usługa androidx.wear.protolayout:protolayout-*:1.2.0-rc01 została zwolniona. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiliśmy standardowy element Material Chip, dzięki czemu można go używać jako ikony tylko wtedy, gdy nie jest przekazywana żadna etykieta podstawowa ani dodatkowa. (Iceef9).
  • Zaktualizowaliśmy dokumentację układów Material Design, by zawierała wizualizacje z odpowiedniej strony, by ułatwić ich zrozumienie. (I0256a)

Wersja 1.2.0-beta01

10 lipca 2024 r.

Usługa androidx.wear.protolayout:protolayout-*:1.2.0-beta01 została zwolniona. Wersja 1.2.0-beta01 zawiera te zatwierdzenia.

Nowe funkcje

Wersja 1.2.0-beta01 Wear ProtoLayout oznacza, że ta wersja biblioteki jest już gotowa, a interfejs API jest zablokowany (z wyjątkiem miejsc oznaczonych jako eksperymentalne). Wear ProtoLayout 1.2 zawiera te nowe funkcje i interfejsy API:

  • W FontStyle dodaliśmy obsługę czcionek w następujący sposób:
    • ustawianie różnych ustawień odmiany czcionki, np. FontSetting.weight i FontSetting.width;
    • Ustawianie tej samej szerokości wszystkich znaków liczbowych – cyfry w tabeli (FontSetting.tnum ustawienie funkcji czcionki)
    • Ulepszyliśmy interfejsy API wyboru czcionek, aby obsługiwały przyszłe czcionki elastyczne, określając preferowane nazwy rodzin czcionek, które mają być używane.
  • Rozszerzony modyfikator Corner umożliwiający wskazanie każdego elementu CornerRadius za pomocą osobnych wartości poziomych i pionowych, co umożliwia korzystanie z elementów budynków o asymetrycznych narożnikach.
  • Dodano nowy modyfikator Transformation oferujący przesunięcie, obrót i skalowanie wartości LayoutElement. Przekształcenia te można animować za pomocą wartości dynamicznych.
  • Dodano setArcDirection z opcjami Clockwise, CounterClockwise i Normal do wszystkich elementów łuku (Arc, ArcLine i ArcText), aby zapewnić lepszą obsługę w różnych kierunkach układu (np. LTR i RTL).
  • Łatwiejszy dostęp do wszystkich docelowych elementów dotykowych przez zwiększenie obszaru do kliknięcia każdego elementu używającego modyfikatora Clickable do wartości co najmniej 48dp x 48dp.
  • Ulepszyliśmy PrimaryLayout i EdgeContentLayout, dodając element setResponsiveContentInsetEnabled, aby lepiej obsługiwać elastyczne zachowanie tych układów na ekranach o różnych rozmiarach i poprawić spójność kafelków. Dodaliśmy ostrzeżenie linter, które sugeruje użycie tych interfejsów API z szybkim rozwiązaniem.
  • Poprawione skalowanie/brak skalowania atrybutu Material Text na potrzeby nieliniowego skalowania czcionek w Androidzie 14.

Zmiany interfejsu API

  • Domyślna nazwa rodziny czcionek (DEFAULT_SYSTEM_FONT) została usunięta, ponieważ sugeruje nieużywanie interfejsu API preferredFontFamilies. (I39dab)
  • Parametr przekazywany do metody FontSetting.width powinien być dodatni. (I1266f)

Wersja 1.2.0-alpha05

26 czerwca 2024 r.

Usługa androidx.wear.protolayout:protolayout-*:1.2.0-alpha05 została zwolniona. Wersja 1.2.0-alfa05 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaj metodę hasText do elementu Material.CompactChip, aby sprawdzić, czy treść tekstowa została ustawiona. (I6e8fc)

Zmiany interfejsu API

  • Statki (FontFamily) zostały przeniesione do klasy FontStyle zamiast do klasy Builder. (I06ced)
  • Zaktualizuj interfejs FontSetting.weight i FontSetting.width API, aby uwzględnić adnotacje zakresu i zmienić parametr wagi na int. (IA726c).

Poprawki błędów

  • Nieskalowalne teksty w bibliotece Material Design działają teraz poprawnie z nieliniowym skalowaniem czcionek na Androidzie 14. (I6601e)

Wersja 1.2.0-alfa04

29 maja 2024 r.

Usługa androidx.wear.protolayout:protolayout-*:1.2.0-alpha04 została zwolniona. Wersja 1.2.0-alfa04 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Dodano interfejs API asymetrycznych narożników, który umożliwia osobne określenie promienia każdego narożnika za pomocą 2 wartości. (Icbd69)
  • Rozszerzyliśmy interfejs API FontSetting, aby obejmował:
    • ustawienia funkcji czcionki, na przykład ustawienie czcionki w formie tabeli. (If12b7).
    • ustawienia wariantów czcionek, na przykład ustawienia niestandardowej szerokości czcionek o zmiennych parametrach. (I2b36d)
  • Do FontStyle dodano interfejs API rodziny czcionek, który umożliwia określenie listy kolejności, których rodzinom czcionek należy używać. (IBA9f5)
  • Zmieniono nazwy stałych wysokości odstępu między treścią i etykietą dodatkową w elemencie LayoutDefaults Material, które początkowo miały przedrostek „Edge content”, aby były bardziej ogólne, ponieważ można je stosować zarówno w elementach PrimaryLayout, jak i EdgeContentLayout. (I4dc32)

Poprawki błędów

  • Zmieniono nazwę nazw osi zmiennych czcionek z „axisName” na „axisTag”. (I02ba3)

Wersja 1.2.0-alfa03

14 maja 2024 r.

Usługa androidx.wear.protolayout:protolayout-*:1.2.0-alpha03 została zwolniona. Wersja 1.2.0-alfa03 zawiera te zatwierdzenia.

Nowe funkcje

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

Poprawki błędów

  • Napraw błąd w zadaniu getTouchDelegateInfo z powodu pustej mapy docelowej. (I2accf).

Wersja 1.2.0-alfa02

1 maja 2024 r.

Usługa androidx.wear.protolayout:protolayout-*:1.2.0-alpha02 została zwolniona. Wersja 1.2.0-alfa02 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Dodaliśmy obsługę wyłączania komentarzy falowych na poszczególnych klikalnych elementach. (If1ede).
  • Interfejs API do przekształcania został usunięty z ArcModifiers, ponieważ nie obsługuje tej funkcji (Ic0827)
  • Kreator ArcDirectionProp oczekuje teraz wartości w konstruktorze. (I76ada)
  • Metoda PlatformDataValues.Builder.putAll pozwala połączyć jeden PlatformDataValue z innym. (I50Ba3)
  • Nazwa Text#setIsScalable została zmieniona na Text#setScalable. (If920e).
  • Parametr Material Text pozwala określić, czy rozmiar ma być skalowalny (rośnie po zmianie rozmiaru czcionki użytkownika). (IBC849)
  • Dodaliśmy opcję ustawiania opisu treści na TitleChip. (I5d21f)
  • Rozwiązaliśmy problem CompactChip, aby działał prawidłowo tylko z ikoną i zaktualizowaliśmy interfejs API, aby zezwolić na tę opcję. (I6589e)

Poprawki błędów

  • Wyeliminowaliśmy problem potencjalnie zduplikowanych danych platformy podczas inicjowania. (IBa0fd).
  • Wprowadź nową metodę pobierania do funkcji DynamicDataNode, aby pobrać koszt węzła. Koszt jest używany podczas uzyskiwania limitu węzłów dynamicznych. Obecnie koszt węzłów o stałych wartościach wynosi 0, a pozostałych węzłów – 1. (Ia33e1).
  • Usuń z NO_OP_QUOTA_MANAGER funkcję liczenia. (IB50b8)
  • Dodaliśmy regułę lintowania, która zgłasza ostrzeżenie, gdy zasada PrimaryLayout jest używana bez zasady setResponsiveContentInsetEnabled, i pozwala szybko rozwiązać ten problem. (I12025)
  • Liczba węzłów wyrażeń dynamicznych jest ograniczona. (Iffae8).

Wersja 1.2.0-alpha01

6 marca 2024 roku

Usługa androidx.wear.protolayout:protolayout-*:1.2.0-alpha01 została zwolniona. Wersja 1.2.0-alfa01 zawiera te zatwierdzenia.

Nowe funkcje

  • Do elementów ProtoLayout Arc można teraz dodać opcję ArcDirection (Clockwise, Counterclockwise lub Normal). Dodanie tego zachowania do elementów Arc, ArcLine i ArcText spowoduje poprawienie ich działania w układach od prawej do lewej. (I90699)
  • Komponent EdgeContentLayout został zaktualizowany o nową opcję ustawiającą setResponsiveContentInsetEnabled, aby lepiej dostosować ją do wytycznych dotyczących UX i spójności w kafelkach dzięki zastosowaniu etykiety podstawowej na stałej pozycji u góry i elastycznym wstawieniu w przypadku etykiet. (I60175)
  • Dodaliśmy w tym układzie element PrimaryLayout.setResponsiveContentInsetEnabled, który dodaje elastyczne wcięcie do etykiety głównej, etykiety dodatkowej i elementu u dołu, aby zapobiec wydostaniu się treści poza krawędź ekranu. (I0c457)
  • Dodaje metodę usuwania zewnętrznych marginesów z elementu CircularProgressIndicator, dzięki czemu można jej używać jako mniejszego komponentu. (I55c06)

Zmiany interfejsu API

  • Mechanizm renderowania kafelków domyślnie wyklucza dopełnienie czcionki we wszystkich elementach tekstowych, bez możliwości jego uwzględnienia. (I3e300)

Poprawki błędów

  • Rozwiązanie problemu z wyrównaniem tekstu, gdy w przypadku tekstu używane są wszystkie wielokropki, odstępy między literami i wyrównanie do środka. (I716c7)
  • Dodaj obejście problemu z rysowaniem łuku ściennego. (I08f09)
  • Popraw kierunek rysowania w trybie ArcLine w układach od prawej do lewej. (I6c141)

Wersja 1.1

Wersja 1.1.0

7 lutego 2024 r.

Usługa androidx.wear.protolayout:protolayout-*:1.1.0 została zwolniona. Wersja 1.1.0 zawiera te zatwierdzenia.

Ważne zmiany wprowadzone od wersji 1.0.0

  • Obsługa gradientów i lepsze przedstawianie długości przekraczających 360 stopni w funkcji ArcLine.
  • Formatowanie daty i godziny obsługuje różne strefy czasowe w przypadku typów danych dynamicznych.
  • Ulepszone opcje automatycznego zmieniania rozmiaru i elipsyfikacji tekstu w celu obsługi przyciętego tekstu.
  • Dystans obsługuje wymiary po rozwinięciu z opcjonalną grubością.
  • Adnotacja o wymaganiu wersji schematu do wszystkich interfejsów API ProtoLayout.
  • Rozszerzono obszar docelowy do dowolnego elementu Clickable do 48 dp x 48 dp, aby spełnić wymagania dotyczące ułatwień dostępu.
  • Dopełnienie czcionki jest domyślnie wyłączone i jest jedynym zachowaniem w przypadku wszystkich elementów Text i komponentów Material, które zawierają tekst.

Dodatkowe zmiany

Wersja 1.1.0-rc01

24 stycznia 2024 r.

Usługa androidx.wear.protolayout:protolayout-*:1.1.0-rc01 została zwolniona. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

  • PlatformTimeUpdateNotifierImpl zaznacza się natychmiast po włączeniu aktualizacji. (I77145)
  • Element CircularProgressIndicator został poprawiony w przypadku układów od prawej do lewej. Od teraz wszystko będzie się wyświetlać w prawo we wszystkich przypadkach. (I95ee3).
  • Dodaj obejście problemu z rysowaniem łuku ściennego. (I08f09)

Wersja 1.1.0-beta01

10 stycznia 2024 r.

Usługa androidx.wear.protolayout:protolayout-*:1.1.0-beta01 została zwolniona. Wersja 1.1.0-beta01 zawiera te zatwierdzenia.

Nowe funkcje

Wersja 1.1.0-beta01 Wear ProtoLayout oznacza, że ta wersja biblioteki jest już gotowa, 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 przez dodanie właściwości Brush z parametrem SweepGradient i dodanie cienia na wierzchu, aby lepiej odzwierciedlić długość większą niż 360 stopni przez dodanie Shadow w dotychczasowym obiekcie StrokeCap.
  • Funkcja DynamicInstant obsługuje strefowe formatowanie daty i godziny. Typy danych DynamicInstant i DynamicDuration mogą być używane jako typy danych stanu lub platformy.
  • Funkcja automatycznego skalowania rozmiaru tekstu, która umożliwia ustawienie wielu rozmiarów tekstu w polu FontStyle.setSizes, gdzie rozmiar tekstu będzie automatycznie skalowany odpowiednio do miejsca w środku elementu nadrzędnego. Dodatkowo ulepszyliśmy opcje elipsji w przypadku nadmiarowych tekstów, dodając TEXT_OVERFLOW_ELLIPSIZE i wycofując TEXT_OVERFLOW_ELLIPSIZE_END.
  • W Spacer możesz teraz stosować wymiary rozwinięte z opcjonalną wagą. Do budynku ExpandedDimensionProp dodaliśmy metodę pomocniczą DimensionBuilders.weight.
  • Obsługa dynamicznego ukrywania i odkrywania elementów układu za pomocą funkcji Modifier.visible. Obejmuje to wartości dynamiczne w BoolProp.
  • Wszystkie interfejsy API ProtoLayout mają teraz adnotację dotyczącą wersji schematu, a wersję można sprawdzić przed wywołaniem nowszego interfejsu API.
  • Obszar docelowy każdego elementu z atrybutem Clickable w mechanizmie renderowania jest teraz poszerzony do co najmniej 48 x 48, aby lepiej spełniał wymagania dotyczące ułatwień dostępu.
  • W związku z innymi inicjatywami dotyczącymi komponentów Material Design i tworzenia wiadomości obecnie domyślnie wyłączyliśmy dopełnienie czcionki we wszystkich elementach Text. Dodatkowo platforma AndroidTextStyle i powiązane ustawienia zostały usunięte z publicznego interfejsu API. z następującymi poprawkami błędów:
  • Dodano element ustawiający do określania pozycji zawartości krawędzi w elemencie EdgeContentLayout, aby można było umieścić ją przed innymi treściami.
  • Konsekwentnie zgłaszam wyjątek w przypadku napotkania nierozpoznanej wartości wyliczeniowej.
  • Unieważnia wynik wyrażenia, gdy zwraca ono nieprawidłową wartość liczbową (NaN lub nieskończoność) lub zwraca wartość ArithmeticException.

Zmiany interfejsu API

  • Aktualizacja interfejsu API SweepGradient umożliwiająca akceptowanie kolorów lub ColorStops w konstruktorze. (I6676f)

Poprawki błędów

  • Dodanie ograniczonego interfejsu API i mechanizmu renderowania umożliwiającego ustawianie kierunku, w którym rysowane są elementy łuku. (Idef5a).
  • Jeśli nie określono inaczej, RoundMode ma domyślną wartość Floor w elemencie FloatToInt32Node. Węzeł nadal zgłasza wyjątek, jeśli podany identyfikator RoundMode nie jest rozpoznawany. (I1b2d8).

Wersja 1.1.0-alfa04

13 grudnia 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.1.0-alpha04 została zwolniona. Wersja 1.1.0-alfa04 zawiera te zatwierdzenia.

Nowe funkcje

  • Klasa VersionInfo nie implementuje interfejsu Comparable. (I8d13c).
  • Mechanizm renderowania obsługuje teraz opcję TEXT_OVERFLOW_ELLIPSIZE. (I7f085)

Zmiany interfejsu API

  • Opcja nadmiaru tekstu TEXT_OVERFLOW_ELLIPSIZE_END została wycofana. Użyj nowego interfejsu API TEXT_OVERFLOW_ELLIPSIZE, który działa bardzo podobnie. (I822d8)
  • W związku z innymi inicjatywami dotyczącymi komponentów Material Design i tworzenia wiadomości obecnie domyślnie wyłączyliśmy dopełnienie czcionki we wszystkich elementach Text. Dodatkowo platforma AndroidTextStyle i powiązane ustawienia zostały usunięte z publicznego interfejsu API. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3)
  • Pole Modifier.hidden zostało zastąpione elementem Modifier.visible (I56902)
  • Funkcja FontStyle#setSizes akceptuje teraz liczbę całkowitą zamiast SpProp argumentów. (I02b37)

Poprawki błędów

  • Zgłoś wyjątek w przypadku uzyskania niezdefiniowanej lub nierozpoznanej wartości wyliczeniowej. (I9d2cf).
  • Refaktoryzacja DynamicTypeBindingRequest. (I27b57)
  • Unieważnia wynik wyrażenia, gdy zwraca ono nieprawidłową wartość liczbową (NaN lub nieskończoność) lub zwraca wartość ArithmeticException. (I681ae).

Wersja 1.1.0-alfa03

29 listopada 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.1.0-alpha03 została zwolniona. Wersja 1.1.0-alfa03 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaj eksperymentalną obsługę dynamicznego ukrywania/odkrywania elementów układu (I64a78)
  • Dodawanie obsługi wartości dynamicznych do BoolProp (I2fe96)
  • Dodaj adnotację dotyczącą wymagań wersji schematu do interfejsów API usługi ProtoLayout (I0f03c)
  • Rozszerzenie interfejsu API o nową opcję w TextOverflow, która umożliwia elipsowanie tekstu w stałym kontenerze nadrzędnym nawet wtedy, gdy nie osiągnięto maksymalnej liczby wierszy (ale brakuje miejsca na tekst). (I110a9)
  • Dodano metodę pomocniczą DimensionBuilders.weight do budynku ExpandedDimensionProp z użyciem wagi. (I4f72b)
  • Typy danych DynamicInstant i DynamicDuration mogą być używane jako typy danych stanu lub platformy. (I6819f)

Zmiany interfejsu API

  • Zaktualizuj interfejs API, aby ukryć obiekt DynamicZonedDateTime i przenieść wszystkie jego operacje do instancji DyanamicInstant (I34b94)
  • Odstęp obsługuje teraz wymiar po rozwinięciu w odniesieniu do szerokości i wysokości. (IE7c94)
  • Obsługa rozszerzenia obszaru docelowego kliknięcia w mechanizmie renderowania (I39c79)

Wersja 1.1.0-alfa02

15 listopada 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.1.0-alpha02 została zwolniona. Wersja 1.1.0-alfa02 zawiera te zatwierdzenia.

Nowe funkcje

  • Do interfejsu API dodano pole ArcLine StrokeCap Shadow. (I830ec)
  • Rozszerzanie interfejsu API w celu określenia szerokości lub wysokości odstępu w celu rozwinięcia. (I757CA)
  • Dodaliśmy eksperymentalny interfejs API, który automatycznie skaluje rozmiar tekstu w zależności od miejsca w obiekcie nadrzędnym. (Ibbe63)
  • Obsługa minimalnego rozmiaru klikalnego (I178e3)
  • Dodano obsługę mechanizmu renderowania dla StrokeCap Shadow. (I48b17)
  • Dodano obsługę mechanizmu renderowania dla gradientu automatycznego w ArcLine. (I4d5bb)

Wersja 1.1.0-alpha01

18 października 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.1.0-alpha01 została zwolniona. Wersja 1.1.0-alfa01 zawiera te zatwierdzenia.

Nowe funkcje

  • Do modelu Arcline dodano opcję pędzla z obsługą języka SweepGradient. (IE7ce3).
  • Dodano obsługę formatowania strefowego daty i godziny. (Ibfae0)
  • Dodano proto i opakowania Java wymagane do strefowego formatowania daty i godziny. (I97126)
  • Dodano metody pobierania do odczytu wartości zapisanej w elemencie DynamicDataValue. (IE6cea),
  • Dodano element ustawiający do określania pozycji zawartości krawędzi w elemencie EdgeContentLayout, aby można było umieścić ją przed innymi treściami. (IE8E8a)

Poprawki błędów

  • Rozwiązaliśmy problem, który powodował, że wyrażenie z wieloma rejestracjami źródła danych nie było aktualizowane od razu. (I8E1a8).
  • Usunięto błąd polegający na wyśrodkowaniu elementu rdzenia podczas aktualizacji różnic. (IE48f7).
  • Nieskonfigurowane (lub puste) wartości ograniczeń układu nie będą już ignorowane. (IBC785)
  • Krótsze opóźnienie między wyświetleniem układu a inicjowaniem węzłów jego potoku. (I38d4e)

Wersja 1.0

Wersja 1.0.0

9 sierpnia 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.0.0 została zwolniona. Wersja 1.0.0 zawiera te zatwierdzenia.

Główne funkcje 1.0.0

Biblioteka ProtoLayout zawiera 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 Tiles używa tych interfejsów API do obsługi wiązania danych platformy (w celu szybszego aktualizowania danych kafelków) i animacji.

Wersja 1.0.0-rc01

26 lipca 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.0.0-rc01 została zwolniona. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.

  • Aby przeprowadzić migrację z kafelków do ProtoLayout, postępuj zgodnie z tymi instrukcjami.

Zmiany interfejsu API

  • Usunęliśmy metody setLayoutConstraintForDynamicAnchorAngle i getLayoutConstraintForDynamicAnchorAngle z elementu Arc. Te metody zostały dodane przez pomyłkę i nie miały żadnego wpływu na podany układ. (If7d01).
  • Ograniczyliśmy maksymalną głębokość, jaką w układzie ProtoLayout może być 30 zagnieżdżonych elementów LayoutElements. (I8a74b)

Poprawki błędów

  • Dodaliśmy kontrolę, która sprawdza, czy DynamicColor jest ustawione dla SpanText. (I0e5bc).
  • Wyjaśniono, że jednostka źródła danych DAILY_CALORIES to kcal. (Iaa785).

Wersja 1.0.0-beta01

21 czerwca 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.0.0-beta01 została zwolniona. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.

Nowe funkcje

  • Zezwalaj na ustawianie zegara na potrzeby testów wiązań czasowych. (I05622)

Zmiany interfejsu API

  • PlatformDataReceiver.onData() i StateBuilders.Builder.addKeyToValueMapping akceptują teraz mapowanie atrybutów DynamicDataKey na DynamicDataValue w bezpieczny sposób, a nie niebezpiecznych typów ogólnych. Oznacza to, że DynamicDataValue została wpisana za pomocą funkcji DynamicType. Stałe HEART_RATE_ACCURACY_X zostały przeniesione do pierwiastka wartości PlatformHealthSources, aby dopasować je do innych stałych Android. Stałe stałe HEART_RATE_ACCURACY_X są teraz używane bezpośrednio w parametrach DynamicHeartRateAccuracy.constant() i DynamicHeartRateAccuracy.dynamicDataValueOf() zamiast wartości stałej. (I82ff5)
  • Wystąpienie klasy PlatformHealthSources.Constants było przypadkowe. Naprawiliśmy ten błąd. (Icb849)
  • Funkcja PlatformTimeUpdateNotifier#setReceiver otrzymuje teraz Runnable zamiast funkcji Supplier i Executor do powiadamiania. (I9d938)
  • Zmieniliśmy typ parametru w pliku PlatformTimeUpdateNotifier#setReceiver z Callable na Supplier. (I664bf)
  • CompactChip i TitleChip obsługują teraz dodawanie ikon. (I5a01e).

Poprawki błędów

  • Aktualizowanie komunikatów Prop z polami dynamicznymi, tak aby używały w zamian jednego z nich (I81739)
  • Ponowne wykorzystanie implementacji mechanizmu ustawiającego w przypadku przeciążeń (Ied70c)
  • Prawidłowo rejestruj odciski palców u seterów z przeciążeniami (I86ed2)

Wersja 1.0.0-alfa11

7 czerwca 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.0.0-alpha11 została zwolniona. Wersja 1.0.0-alfa11 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy PlatformDataKey, aby zwiększyć dokładność tętna. (I7f9b8)

Zmiany interfejsu API

  • Zmień nazwę kolumny StateBuilders#getIdToValueMapping na getKeyToValueMapping i zmień zwracany typ na Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae).
  • Ustaw klasę StateStore jako ostateczną (I408ca)
  • Interfejs TimeGateway został zastąpiony interfejsem PlatformTimeUpdateNotifier w bibliotece protolayout-expression-pipeline, który zapewnia pożądaną częstotliwość aktualizowania danych o czasie. (I60869)
  • Zmień nazwę pliku register/unregisterForData w pliku PlatformDataProvider na set/clearReceiver (I14b02)
  • Nazwa getExcludeFontPadding w interfejsie Material Text została zmieniona na hasExcludeFontPadding. (EOG)
  • Do wszystkich komponentów elementu dodano element montujący do idealnie wyrównania etykiety. Wszystkie elementy mają teraz stosowany co najmniej cel do kliknięcia. (I8ae92).
  • Nazwa konta 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 dokumentację typów Prop, aby wyjaśnić, dlaczego wymuszana jest wartość statyczna. Określ wartość domyślną, która będzie używana w przypadku braku wartości statycznej. (I155aa).
  • Przestrzenie nazw PlatformDataKey powinny być zgodne ze stylem Java. (I47bda)

Wersja 1.0.0-alpha10

24 maja 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.0.0-alpha10 została zwolniona. Wersja 1.0.0-alfa10 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodanie AppDataKey umożliwiającego dostęp do stanu przekazanego aplikacji; dodanie PlatformDataKey na potrzeby dostępu do danych platformy, Dodano obsługę przestrzeni nazw w StateStore. (I7985e)
  • Obsługuj operacje Equal i NotEqual w tabeli DynamicBool. (I6a0c1).

Zmiany interfejsu API

  • Zajęcia FontStyles są teraz zakończone (Iaa2ea)
  • Usługa LayoutElementBuilders#FontStyles została wycofana. Użyj narzędzia androidx.wear.protolayout.Typography lub utwórz własne konto FontStyle. (IC929b)
  • Ukryj zagnieżdżony interfejs Action#Builder w interfejsie Action. Implementacje narzędzia Builder są już dostępne w klasach LoadAction i LaunchAction. (I1d70c)
  • Zezwalaj na używanie DynamicFloat w usłudze FloatProp. Pamiętaj, że obiekt FloatProp nie wymaga ograniczeń układu, ponieważ nie jest używany jako właściwość zmieniająca układ. (I286ac),
  • Działania LoalAction i SetStateAction zostały usunięte, ponieważ nie były jeszcze obsługiwane. (I5d6a6)
  • Dodano obsługę formatu ARGB_8888 na potrzeby zasobów obrazu w tekście. (I8a07c).
  • Zmień nazwę StateEntryValue na DynamicDataValue i zaktualizuj stan APIS tak, by używał DynamicDataKey (If1c01).
  • Ograniczamy liczbę wpisów dozwolonych w polu StateStore, aby zapewnić prawidłowe uwzględnienie i kontrolowanie czasu wykorzystania pamięci i aktualizacji stanu w przypadku każdej instancji StateStore. W związku z tym deweloper musi zadbać o to, aby nie miał więcej niż MAX_STATE_ENTRY_COUNT wpisów na mapie. W przeciwnym razie podczas tworzenia lub aktualizowania elementu StateStore otrzyma wartość IllegalStateException. (Ibadb3).
  • Ukryj zajęcia OnLoadTrigger i OnConditionMetTrigger i zmień nazwę zajęć z setTrigger na setCondition dla: OnConditionMetTrigger. (Ibf629).
  • Ze względu na wydajność i zgodność mechanizmy renderowania ProtoLayout nie będą obsługiwać pełnego zestawu funkcji w zasobach AnimatedVectorDrawable. Oznaczamy te interfejsy API jako eksperymentalne, dopóki nie uda nam się zdefiniować obsługiwanego zestawu. (Ic6daf).
  • Dodano dynamiczne typy danych dotyczących dziennego dystansu, dziennych kalorii i dziennej liczby pięter. Klucze do źródeł informacji o stanie platformy są teraz dostępne pod adresem PlatformHealthSources.Keys (Ib7637)
  • Metoda Easing.cubicBezier zastępuje metodę CubicBezierEasing.Builder. Klasa EasingFunction została usunięta, a stałe wygładzania z niej są teraz dostępne bezpośrednio w interfejsie Easing. Oprócz tego interfejs setInfiniteRepeatable został zastąpiony przez INFINITE_REPEATABLE_WITH_RESTART i INFINITE_REPEATABLE_WITH_REVERSE (Ib41e7)
  • Zastosuj funkcję PlatformDataProvider, aby widzieć 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 obsługiwany klucz dostawcy jest wymagany przez węzeł z potoku wyrażeń. (IB616a)
  • SensorGateway nie jest już Closeable, ponieważ nie zachowuje żadnego stanu. (I6b4f7)
  • Zezwalaj na używanie dodatku FloatProp i DynamicFloat do uzyskiwania postępów w projekcie CircularProgressIndicator. Jest to obsługiwane w mechanizmach renderowania obsługujących wersję 1.2. Jeśli zostanie podany, stare mechanizmy renderowania zwracają wartość zastępczą staticValue. W przeciwnym razie ma on wartość 0 (I0d91b).
  • Stałe MultiButtonLayout zostały zrefaktoryzowane do klasy LayoutDefaults.MultiButtonLayoutDefaults, która zawiera teraz te wartości dla rozmiarów przycisków w zależności od liczby przycisków w układzie. (I13973)
  • Obsługa używania interfejsu StringProp z atrybutem DynamicString w tekście z materiale. Jest to obsługiwane w mechanizmach renderowania obsługujących wersję 1.2. Stare mechanizmy renderowania będą używać podanej wartości statycznej. Zmień typ zwracania funkcji Text#getText z String na StringProp. (I7275b)

Wersja 1.0.0-alpha09

10 maja 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.0.0-alpha09 została zwolniona. Wersja 1.0.0-alfa09 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy eksperymentalny element układu rozszerzenia. Pamiętaj, że nie może być ono używane domyślnie i wymaga rozszerzenia mechanizmu renderowania zdolnego do zrozumienia elementu układu. (I6581D)
  • Dodano obsługę StrokeCap dla ArcLine. (I94951)
  • Dodano obsługę warunkowego wyszukiwania dynamicznego. (I489a7)
  • Dodano obsługę operacji czasu trwania warunkowego. (IAb469).
  • Dodano obsługę tworzenia czasu trwania na podstawie sekund. (Ib5fa1)

Zmiany interfejsu API

  • enable/disablePlatformSource metod zostało usuniętych z: DynamicTypeEvaluator. Rozmówca powinien być odpowiedzialny za aktualizacje. (I78c6D)
  • Zezwalaj na ograniczanie rozmiaru powiązanych typów danych. (IE2966).
  • Dodano obsługę opisów zawartości dynamicznej w elemencie protolayout-material. (I62c8e)
  • W parametrach AnimationParameters podaj czas trwania i opóźnienie długie i @IntRange. (I388b6)

Wersja 1.0.0-alpha08

19 kwietnia 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.0.0-alpha08 została zwolniona. Wersja 1.0.0-alfa08 zawiera te zatwierdzenia.

Nowe funkcje

  • Kontakt AndroidTextStyle został dodany do następujących grup: LayoutElementBuilders. (I8D967)
  • Dodaliśmy obsługę ustawień wykluczania dopełnienia czcionki w tekście z materiału ProtoLayout. (I17f5d)
  • Format ARGB_8888 jest teraz obsługiwany w przypadku obrazów w treści. (I18c1e).
  • DynamicColor obsługuje teraz operację onCondition. (I10927)

Zmiany interfejsu API

  • Obsługa niestandardowego czasu trwania animacji odwrotnej (I3251f).
  • Dodaliśmy modyfikator SemanticDescription. Nie można też powiązać obiektu ContentDescription. (I3f1d).
  • Metoda DynamicBool.isFalse() została zastąpiona przez DynamicBool.negate(), a metoda DynamicBool.isTrue() została usunięta. Oprócz wartości NaN DynamicFloat i zawężenie pola DynamicInt32 do wartości DynamicFloat generuje teraz nieprawidłowy wynik dynamiczny. (I6ac1e),
  • Obiekty formatujące typu Int i float (zmiennoprzecinkowa) używają teraz wzorca konstruktora. (Ieb213).

Poprawki błędów

  • Z pól animowanych została usunięta statyczna wartość zastępcza. (Ifcb01)
  • DynamicTypeValueReceiver#onPreUpdate został(a) usunięty(a). (I2dc35)
  • Długość ciągów znakó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.

Usługa androidx.wear.protolayout:protolayout-*:1.0.0-alpha07 została zwolniona. Wersja 1.0.0-alfa07 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodawanie obsługi wartości dynamicznych do StringProp (I04342)
  • Oznaczanie elementów układu możliwych do powiązania (Ia110b)

Zmiany interfejsu API

  • Funkcja sensorGateway#registerSensorGatewayConsumer przyjmuje typ danych jako parametr, a nie metodę w elemencie konsumenta. (Icf314).
  • Nazwa konta ObservableStateStore została zmieniona na StateStore. (Ieb0e2).
  • Zamiast argumentów konstruktora dodano DynamicTypeEvaluator.Builder, aby umożliwić użycie większej liczby opcjonalnych argumentów, w tym argument ObservableStateStore, który teraz domyślnie ustawia pusty magazyn. (I6f832)
  • Zrefaktoryzowana kolejność parametrów w polu DynamicTypeEvaluator. (IC1ba4).

Poprawki błędów

  • Prawidłowo przekazuj sygnały ze źródeł czujników platformy do węzłów kolejnych (I5a922)

Wersja 1.0.0-alpha06

22 marca 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.0.0-alpha06 została zwolniona. Wersja 1.0.0-alfa06 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy eksperymentalny interfejs API do wykorzystywania tętna i dziennych kroków w wyrażeniach dynamicznych (Ifd711)
  • Dodaliśmy obsługę opóźnienia wstecznego i do przodu w animacji. (Ic25f7).
  • Dodaliśmy obsługę obramowania i tła w DynamicColor
  • Dodaliśmy obsługę wartości dynamicznych do typów w DimensionBuilder
  • Układ i komponenty z pliku tiles-material są przenoszone do protolayout-material

Zmiany interfejsu API

  • Kontakt LoadActionListener został dodany do następujących grup: ProtoLayoutViewInstance. (If7806).

Poprawki błędów

  • Dodano: FloatNodesTest (Id7281)
  • Napraw błąd mechanizmu renderowania, który pojawia się, gdy nie można wczytać struktury bitmapy.

Wersja 1.0.0-alpha05

8 marca 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.0.0-alpha05 została zwolniona. Wersja 1.0.0-alfa05 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodaliśmy eksperymentalną „aktualizację treści” do obiektu Modifiers. Animacja jest wywoływana 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 interfejsu API

  • Dodaliśmy użytkowników forwardRepeatDelayMillis i reverseRepeatDelayMillis do albumu Repeatable. Ponadto zmieniliśmy nazwę delayMillis w AnimationSpec na startDelayMillis (Ifb266).
  • Metody usługi DynamicTypeEvaluator.bind akceptują teraz Wykonawcę. (I346ab)
  • Do elementu BoundDynamicType dodaliśmy metodę startEvaluation, aby aktywować ocenę po powiązaniu typu dynamicznego. (I19908).

Poprawki błędów

  • Obiekt Animator będzie ponownie użyty w kolejnych animacjach pojedynczego elementu. (Ia3be9).

Wersja 1.0.0-alpha04

22 lutego 2023 roku

Usługa androidx.wear.protolayout:protolayout-*:1.0.0-alpha04 została zwolniona. Wersja 1.0.0-alfa04 zawiera te zatwierdzenia.

Nowe funkcje

  • ObservableStateStore informuje teraz detektory o usunięciu klucza.
  • Na DeviceParameters dodaliśmy wersję schematu renderowania i skalę czcionek, której można używać do warunkowego tworzenia układów w odpowiedzi na różne wersje i ustawienia czcionek.
  • Dodaliśmy obsługę animowania wartości DynamicInt32 (I05485).
  • Dodano reguły OnLoad i OnConditionalMet. Można ich używać do uruchamiania animacji obsługujących aktywator.
  • Dodaliśmy wagę układu w przypadku wymiarów po rozwinięciu oraz minimalny rozmiar w przypadku wymiarów opakowanych.
  • Dodaliśmy typy dynamiczne czasu trwania i dynamicznych reklam błyskawicznych. Można ich używać do reprezentowania czasu w wyrażeniu dynamicznym lub czasu trwania.
  • Dodaliśmy obsługę zasobów układu AnimatedVectorDrawable i SeekableAnimatedVectorDrawable.

Zmiany interfejsu API

  • Dane z czujników wymagają interfejsu API w wersji 29 lub nowszej. (I8099e)
  • Dodaliśmy 2 metody pomocnicze launchAction (do uruchamiania działań).

Poprawki błędów

  • Zmiana nazwy elementu set/getSpec na set/getAnimationSpec w animacji kafelków (I3d74b)

Wersja 1.0.0-alpha03

8 lutego 2023 r.

Usługa androidx.wear.protolayout:protolayout-*:1.0.0-alpha03 została zwolniona. Wersja 1.0.0-alfa03 zawiera te zatwierdzenia.

Nowe funkcje

  • Do typów dynamicznych w bibliotece Protolayout-Express dodaliśmy toByteArray() i fromByteArray().
  • Dodaliśmy toString() do typów dynamicznych w bibliotece wyrażeń protoukładowych.
  • Dodaliśmy obsługę oceny typów dynamicznych. Klasy DynamicTypeEvaluator z biblioteki potoku protoukładu można użyć do oceny (i otrzymania zaktualizowanych wartości) wcześniej utworzonego typu dynamicznego (DynamicString, DynamicFloat, ...)
  • Gdy nie można odtworzyć animacji (ponieważ zostały one wyłączone przez weryfikatora lub liczba uruchomionych animacji osiągnęła ustalony limit), do zastąpienia animacji zostaną użyte wartości statyczne ustawione w węźle animowanym.

Wersja 1.0.0-alpha02

25 stycznia 2023 r.

androidx.wear.protolayout:protolayout:1.0.0-alpha02, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02 i androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02 zostały udostępnione. Wersja 1.0.0-alfa02 zawiera te zatwierdzenia.

Nowe funkcje

  • Kreatory układów z androidx.wear.tiles:tiles są przenoszone do androidx.wear.protolayout:protolayout. Te w wersji androidx.wear.tiles:tiles zostaną wycofane w jednej z następnych wersji alfa.

Wersja 1.0.0-alpha01

11 stycznia 2023 r.

androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01 i androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01 zostały udostępnione. Wersja 1.0.0-alfa01 zawiera te zatwierdzenia.

Nowe funkcje

  • W tej wersji wprowadziliśmy nową bibliotekę „ProtoLayout Expression” do tworzenia wyrażeń ze zmiennych dynamicznych.