wear protolayout
Ostatnia aktualizacja | Wersja stabilna | Wersja kandydująca | Wersja Beta | Wersja alfa |
---|---|---|---|---|
11 grudnia 2024 r. | 1.2.1 | - | - | 1.3.0-alpha05 |
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ą.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.3
Wersja 1.3.0-alpha05
11 grudnia 2024 r.
androidx.wear.protolayout:protolayout-*:1.3.0-alpha05
został zwolniony. Wersja 1.3.0-alpha05 zawiera te komity.
Nowe funkcje
- Dodano
LayoutString
, aby umożliwić wiązanie pól ciągu w schemacie. (Ida650) - Dodano komponent kontenera karty
ProtoLayout Material3
. (Ic985a)
Poprawki błędów
- Biblioteka ta korzysta teraz z adnotacji JSpecify dotyczących nullowania, które są używane w zależności od typu. Deweloperzy Kotlina powinni używać tych argumentów kompilatora, aby wymusić prawidłowe użycie:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
(Id1f9b, b/326456246)
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 wiele 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
iLayoutElementMatcher
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
,buttonGroup
iprimaryLayout
.
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-proto
iandroidx.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ści
androidx.wear.protolayout:protolayout-proto
iandroidx.wear.protolayout:protolayout-external-protobuf
w wersji 1.2.0 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 kompozycje.
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.
- Ułatwienie dostępu do wszystkich docelowych elementów dotykowych przez zwiększenie obszaru klikalnego dowolnego elementu, który używa modyfikatora Clickable, do co najmniej
48dp
×48dp
. - Poprawiliśmy
PrimaryLayout
iEdgeContentLayout
, dodającsetResponsiveContentInsetEnabled
, 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 czcionki w Androidzie 14.
- Ulepszona obsługa układu od prawej do lewej we wszystkich elementach łuku.
Dodatkowe zmiany
- Pełniejszy zestaw zmian wprowadzonych w wersji 1.1.0 znajdziesz w informacjach o wersji beta01.
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 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 interfejsu 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.weight
iFontSetting.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.
- Ustawianie różnych ustawień odmian czcionki, takich jak
- Rozszerzono modyfikator
Corner
, aby umożliwić określanie każdegoCornerRadius
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 obiektuLayoutElement
. Te przekształcenia można animować za pomocą wartości dynamicznych. - Do wszystkich elementów łuku (
Arc
,ArcLine
iArcText
) dodano opcjesetArcDirection
z opcjamiClockwise
,CounterClockwise
iNormal
, 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 najmniej48dp
×48dp
. - Poprawiliśmy
PrimaryLayout
iEdgeContentLayout
, dodającsetResponsiveContentInsetEnabled
, 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 APIpreferredFontFamilies
. (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 komisy.
Nowe funkcje
- Dodaj metodę
hasText
doMaterial.CompactChip
, aby sprawdzić, czy ustawiono treść tekstu. (I6e8fc)
Zmiany w interfejsie API
- Konstanty
FontFamily
zostały przeniesione do klasyFontStyle
, a nie do klasy Builder. (I06ced) - Zaktualizuj interfejsy API
FontSetting.weight
iFontSetting.width
, aby uwzględniały adnotacje zakresu, a parametr wagi został zmieniony 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: - 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ą drugorzędną w komponencie
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 w komponenciePrimaryLayout
, jak iEdgeContentLayout
. (I4dc32)
Poprawki błędów
- Zmieniono nazwy osi czcionek zmiennych z
axisName
naaxisTag
. (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 jednegoPlatformDataValue
z innym. (I50ba3) - Nazwa
Text#setIsScalable
została zmieniona naText#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 zduplikowanymi 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 bezsetResponsiveContentInsetEnabled
, 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ć elementyArcDirection
(Clockwise
,Counterclockwise
lubNormal
). Dodanie tego zachowania do elementówArc
,ArcLine
lubArcText
poprawi ich działanie w układach RTL. (I90699) EdgeContentLayout
został zaktualizowany o nowy settersetResponsiveContentInsetEnabled
, 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 dopasowywaniu etykiet. (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 włączyć tej opcji. (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 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
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
- Pełniejszy zestaw zmian wprowadzonych w wersji 1.1.0 znajdziesz w informacjach o wersji beta01.
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
odznacza się natychmiast po włączeniu aktualizacji. (I77145)- Problem z układem
CircularProgressIndicator
został rozwiązany w przypadku układów RTL. Od teraz będzie ona zawsze obracać się zgodnie 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, dodającBrush
zSweepGradient
i cień na pokrywie, aby lepiej odzwierciedlać długość większą niż 360 stopni, dodającShadow
do istniejącegoStrokeCap
.DynamicInstant
obsługuje formatowanie daty i godziny z uwzględnieniem strefy czasowej. Typy danychDynamicInstant
iDynamicDuration
można stosować jako typy danych stanu lub platformy.- Funkcja automatycznego dostosowywania rozmiaru tekstu, która umożliwia ustawienie wielu rozmiarów jako
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ę, dodającTEXT_OVERFLOW_ELLIPSIZE
i wycofawszyTEXT_OVERFLOW_ELLIPSIZE_END
. Spacer
obsługuje teraz rozszerzone wymiary z opcjonalną wagą. Aby ułatwić tworzenieExpandedDimensionProp
, 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 kolumnieBoolProp
. - 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 renderze, 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 usunęliśmy 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ść typu wyliczeniowego.
- 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ą akceptowanie w konstruktorze albo kolorów, alboColorStops
. (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 elementachFloatToInt32Node
. 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 interfejsuComparable
. (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 APITEXT_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 przezModifier.visible
(I56902)- Funkcja
FontStyle#setSizes
przyjmuje teraz argumenty typu int zamiastSpProp
. (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 obiektuExpandedDimensionProp
z wagą. (I4f72b) - Typy danych
DynamicInstant
iDynamicDuration
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 interfejsuDyanamicInstant
(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) - Dodaliśmy 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
DynamicDataValue
. (Ie6cea) - Dodano metodę settera do pozycjonowania treści krawędzi w
EdgeContentLayout
, aby można było je umieszczać przed innymi treściami. (Ie8e8a)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że wyrażenie z wieloma rejestracjami źró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 czasu od momentu, gdy układ staje się widoczny, do momentu zainicjowania 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
setLayoutConstraintForDynamicAnchorAngle
igetLayoutConstraintForDynamicAnchorAngle
. 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ówLayoutElements
. (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()
iStateBuilders.Builder.addKeyToValueMapping
obsługują teraz mapowanieDynamicDataKey
naDynamicDataValue
z zabezpieczeniem typu zamiast niepewnych typów ogólnych. Oznacza to, żeDynamicDataValue
jest teraz wpisywana z użyciemDynamicType
. stałeHEART_RATE_ACCURACY_X
zostały przeniesione do katalogu głównegoPlatformHealthSources
, aby pasowały do innych stałych Androida. Zamiast stałych wartości intHEART_RATE_ACCURACY_X
są teraz używane bezpośrednio w funkcjachDynamicHeartRateAccuracy.constant()
iDynamicHeartRateAccuracy.dynamicDataValueOf()
. (I82ff5)- Klasa
PlatformHealthSources.Constants
została przez pomyłkę uruchomiona. Problem został już rozwiązany. (Icb849) - Funkcja
PlatformTimeUpdateNotifier#setReceiver
korzysta teraz z funkcjiRunnable
zamiastSupplier
i z opcjiExecutor
do wysyłania powiadomień. (I9d938) - Zmieniliśmy typ parametru w kolumnie
PlatformTimeUpdateNotifier#setReceiver
zCallable
naSupplier
. (I664bf) - Atrybuty
CompactChip
iTitleChip
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ążeniami (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
nagetKeyToValueMapping
i zmien typ zwracanej wartości naMap<<AppDataKey<?>,DynamicDataValue>
. (Iaa7ae) - Ustaw
StateStore
jako ostatnie zajęcia (I408ca) - W bibliotece
protolayout-expression-pipeline
interfejsTimeGateway
został zastąpiony przezPlatformTimeUpdateNotifier
, który zapewnia żądaną częstotliwość aktualizowania danych czasowych. (I60869) - Zmień nazwę
register
/unregisterForData
wPlatformDataProvider
naset
/clearReceiver
(I14b02) - W sekcji „Tekst materiału” nazwa
getExcludeFontPadding
została zmieniona nahasExcludeFontPadding
. (Iea01d) - Do wszystkich elementów komponentó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 naMAX_BUTTONS
. (I84788) - Nazwa
DAILY_DISTANCE
została zmieniona naDAILY_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)
PlatformDataKey
przestrzeni 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; dodajPlatformDataKey
, aby uzyskać dostęp do danych platformy; dodaj obsługę przestrzeni nazw wStateStore
. (I7985e) - Obsługa operacji
Equal
iNotEqual
w przypadkuDynamicBool
. (I6a0c1)
Zmiany w interfejsie API
- zajęcia
FontStyles
są już ostateczne (Iaa2ea) - Środowisko wykonawcze
LayoutElementBuilders#FontStyles
zostało wycofane. Użyjandroidx.wear.protolayout.Typography
lub utwórz własnąFontStyle
. (Ic929b) - Ukryj zagnieżdżony interfejs
Action#Builder
w interfejsieAction
. Implementacje klasy Builder są już dostępne w klasachLoadAction
iLaunchAction
. (I1d70c) - Zezwalaj na korzystanie z
DynamicFloat
w usłudzeFloatProp
. Pamiętaj, żeFloatProp
nie wymaga ograniczeń układu, ponieważ nie jest używany jako element zmieniający układ. (I286ac) - Akcje
LoalAction
iSetStateAction
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
naDynamicDataValue
i zaktualizuj interfejsy API stanu, aby używałyDynamicDataValue
(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żdego wystąpieniaStateStore
. 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 aktualizowaniaStateStore
pojawi się błądIllegalStateException
. (Ibadb3) - Ukryj zajęcia
OnLoadTrigger
iOnConditionMetTrigger
oraz zmień nazwę zajęćsetTrigger
nasetCondition
dlaOnConditionMetTrigger
. (Ibf629) - Ze względu na wydajność i zgodność przeglądarki
ProtoLayout
nie obsługują pełnego zestawu funkcji w zasobachAnimatedVectorDrawable
. Do czasu zdefiniowania obsługiwanego zestawu te interfejsy API są oznaczane jako eksperymentalne. (Ic6daf) - Dodano dynamiczne typy danych dla dziennego dystansu, dziennych kalorii i dziennych pięter. Klucze źródeł danych o zdrowiu platformy są teraz dostępne w sekcji
PlatformHealthSources.Keys
(Ib7637). - Metoda
Easing.cubicBezier
zastępuje metodęCubicBezierEasing.Builder
. W związku z tym klasaEasingFunction
została usunięta, a stałe interpolacji z tej klasy są teraz dostępne bezpośrednio z interfejsuEasing
. PonadtosetInfiniteRepeatable
jest zastępowany przezINFINITE_REPEATABLE_WITH_RESTART
iINFINITE_REPEATABLE_WITH_REVERSE
(Ib41e7). - W celu udostępniania tętna i liczby kroków na dzień użyj elementu
PlatformDataProvider
. InterfejsSensorGateway
został usunięty z publicznego interfejsu API. (I55b84) - Dodaj
PlatformDataProvider
i zaktualizujStateStore
, aby zarejestrowaćPlatformDataProvider
, gdy węzeł z potoku wyrażeń wymaga obsługiwanego przez dostawcę klucza. (Ib616a) - Element
SensorGateway
nie jest już elementemCloseable
, ponieważ nie ma już stanu. (I6b4f7) - Zezwalaj na korzystanie z usługi
FloatProp
w aplikacjiDynamicFloat
w celu śledzenia postępów w aplikacjiCircularProgressIndicator
. Ta funkcja jest obsługiwana w przypadku procesorów obsługujących wersję 1.2. Starsze renderery będą używać wartościstaticValue
, jeśli zostanie ona 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
StringProp
zDynamicString
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 zwracanejText#getText
zString
naStringProp
. (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
dlaArcLine
. (I94951) - Dodano obsługę operacji warunkowej natychmiastowej. (I489a7)
- Dodano obsługę operacji Czas trwania warunkowy. (Iab469)
- Dodano obsługę tworzenia czasu trwania w sekundach. (Ib5fa1)
Zmiany w interfejsie API
- Metody
enable/disablePlatformSource
zostały usunięte zDynamicTypeEvaluator
. 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
ProtoLayout
Tekś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 elementContentDescription
nie może być powiązany. (I3f1d) - Metoda
DynamicBool.isFalse()
została zastąpiona metodąDynamicBool.negate()
, a metodaDynamicBool.isTrue()
została usunięta. Dodatkowo wartości NaNDynamicFloat
i zwężenie zakresu wartościDynamicInt32
do wartościDynamicFloat
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
zamiastimplementation
. (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 naStateStore
. (Ieb0e2) - Zamiast argumentów konstruktora dodano argument
DynamicTypeEvaluator.Builder
, aby umożliwić stosowanie większej liczby argumentów opcjonalnych, w tymObservableStateStore
, 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 doprotolayout-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
forwardRepeatDelayMillis
ireverseRepeatDelayMillis
do zespołuRepeatable
. Zmieniliśmy też nazwędelayMillis
w plikuAnimationSpec
nastartDelayMillis
(Ifb266). - Metody
DynamicTypeEvaluator.bind
mogą teraz przyjmować wykonawcę. (I346ab) - Do metody
BoundDynamicType
dodaliśmy metodęstartEvaluation
, aby wywołać ocenę po przypisaniu 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 dla 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ę animacji wartości
DynamicInt32
(I05485) - Dodaliśmy reguły
OnLoad
iOnConditionalMet
. 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
iSeekableAnimatedVectorDrawable
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
naset/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()
ifromByteArray()
do biblioteki protolayout-express. - Dodaliśmy typ
toString()
do typów dynamicznych w bibliotece protolayout-expression. - 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
, …). - Jeśli 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 wartościami statycznymi ustawionymi 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-alpha02
i androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02
są dostępne. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Nowe funkcje
- Kreatory układów z poziomu
androidx.wear.tiles:tiles
są przenoszone doandroidx.wear.protolayout:protolayout
. W jednym z następnych wydań alfa wycofamy te z wersjiandroidx.wear.tiles:tiles
.
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
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.