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 platformach zdalnych.
Najnowsza aktualizacja Wersja stabilna Kandydat do wydania Wersja Beta Wydanie alfa
26 czerwca 2024 r. 1.1.0 - - 1.2.0-alfa05

Deklarowanie zależności

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

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

Odlotowy

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

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

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

Kotlin

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

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

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

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 wydania lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nową bibliotekę, przejrzyj istniejące problemy w tej bibliotece. Możesz oddać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Tworzenie nowego numeru

Więcej informacji znajdziesz w dokumentacji narzędzia do śledzenia problemów.

Wersja 1.2

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 interfejs API FontSetting.width, 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 w przypadku poszczególnych elementów klikalnych. (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ą wagą.
  • 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 interfejs AndroidTextStyle i powiązane z nim ustawienia zostały usunięte z publicznego interfejsu API, wprowadzając następujące poprawki:
  • 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

  • Dodaj AppDataKey w przypadku dostępu do stanu przekazanego aplikacji; dodaj PlatformDataKey w celu uzyskiwania dostępu do danych platformy; dodaj 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 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 obiekt do zmiany układu (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ć, że wykorzystanie pamięci i czas aktualizacji stanu są dobrze ograniczone i kontrolowane w przypadku każdej instancji 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 w domenie 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

  • Do obiektu Modifiers dodaliśmy eksperymentalną animację „aktualizacji treści”. 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.