Wearout Protolayout
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.
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
x48dp
. - Ulepszyliśmy
PrimaryLayout
iEdgeContentLayout
, dodając elementsetResponsiveContentInsetEnabled
, 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
- Bardziej kompletne informacje o zmianach wprowadzonych w wersji 1.1.0 znajdziesz w informacjach o wersji beta01.
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
iFontSetting.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.
- ustawianie różnych ustawień odmiany czcionki, np.
- Rozszerzony modyfikator
Corner
umożliwiający wskazanie każdego elementuCornerRadius
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ściLayoutElement
. Przekształcenia te można animować za pomocą wartości dynamicznych. - Dodano
setArcDirection
z opcjamiClockwise
,CounterClockwise
iNormal
do wszystkich elementów łuku (Arc
,ArcLine
iArcText
), aby zapewnić lepszą obsługę w różnych kierunkach układu (takich jak 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 najmniej48dp
x48dp
. - Ulepszyliśmy
PrimaryLayout
iEdgeContentLayout
, dodając elementsetResponsiveContentInsetEnabled
, 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 APIpreferredFontFamilies
. (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 elementuMaterial.CompactChip
, aby sprawdzić, czy treść tekstowa została ustawiona. (I6e8fc)
Zmiany interfejsu API
- Statki (
FontFamily
) zostały przeniesione do klasyFontStyle
zamiast do klasy Builder. (I06ced) - Zaktualizuj interfejs
FontSetting.weight
iFontSetting.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ł: - 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 elementachPrimaryLayout
, jak iEdgeContentLayout
. (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ć jedenPlatformDataValue
z innym. (I50Ba3) - Nazwa
Text#setIsScalable
została zmieniona naText#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 zasadysetResponsiveContentInsetEnabled
, 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
lubNormal
). Dodanie tego zachowania do elementówArc
,ArcLine
iArcText
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 elastycznego wstawienia 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 wysuwaniu się 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
- Bardziej kompletne informacje o zmianach wprowadzonych w wersji 1.1.0 znajdziesz w informacjach o wersji beta01.
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ściBrush
z parametremSweepGradient
i dodanie cienia na wierzchu, aby lepiej odzwierciedlić długość większą niż 360 stopni przez dodanieShadow
w dotychczasowym obiekcieStrokeCap
.- Funkcja
DynamicInstant
obsługuje strefowe formatowanie daty i godziny. Typy danychDynamicInstant
iDynamicDuration
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ącTEXT_OVERFLOW_ELLIPSIZE
i wycofującTEXT_OVERFLOW_ELLIPSIZE_END
. - W
Spacer
możesz teraz stosować wymiary rozwinięte z opcjonalną wagą. Do budynkuExpandedDimensionProp
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 wBoolProp
. - 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 platformaAndroidTextStyle
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 lubColorStops
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 elemencieFloatToInt32Node
. Węzeł nadal zgłasza wyjątek, jeśli podany identyfikatorRoundMode
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 interfejsuComparable
. (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 APITEXT_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 elementemModifier.visible
(I56902) - Funkcja
FontStyle#setSizes
akceptuje teraz liczbę całkowitą zamiastSpProp
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)
- Dodaj obsługę wartości dynamicznych do
BoolProp
(I2fe96) - Dodaj adnotację dotyczącą 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 budynkuExpandedDimensionProp
z użyciem wagi. (I4f72b) - Typy danych
DynamicInstant
iDynamicDuration
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 instancjiDyanamicInstant
(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ęzykaSweepGradient
. (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
igetLayoutConstraintForDynamicAnchorAngle
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ówLayoutElements
. (I8a74b)
Poprawki błędów
- Dodaliśmy kontrolę, która sprawdza, czy
DynamicColor
jest ustawione dlaSpanText
. (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()
iStateBuilders.Builder.addKeyToValueMapping
akceptują teraz mapowanie atrybutówDynamicDataKey
naDynamicDataValue
w bezpieczny sposób, a nie niebezpiecznych typów ogólnych. Oznacza to, żeDynamicDataValue
została wpisana za pomocą funkcjiDynamicType
. StałeHEART_RATE_ACCURACY_X
zostały przeniesione do pierwiastka wartościPlatformHealthSources
, aby dopasować je do innych stałych Android. Stałe stałeHEART_RATE_ACCURACY_X
są teraz używane bezpośrednio w parametrachDynamicHeartRateAccuracy.constant()
iDynamicHeartRateAccuracy.dynamicDataValueOf()
zamiast wartości stałej. (I82ff5)- Wystąpienie klasy
PlatformHealthSources.Constants
było przypadkowe. Naprawiliśmy ten błąd. (Icb849) PlatformTimeUpdateNotifier#setReceiver
otrzymuje teraz funkcjęRunnable
zamiast funkcjiSupplier
iExecutor
do powiadamiania. (I9d938)- Zmieniliśmy typ parametru w pliku
PlatformTimeUpdateNotifier#setReceiver
zCallable
naSupplier
. (I664bf) CompactChip
iTitleChip
obsługują teraz dodawanie ikon. (I5a01e).
Poprawki błędów
- Aktualizowanie komunikatów Prop z polami dynamicznymi, tak aby korzystały z 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
nagetKeyToValueMapping
i zmień zwracany typ naMap<<AppDataKey<?>,DynamicDataValue>
. (Iaa7ae). - Ustaw klasę
StateStore
jako ostateczną (I408ca) - Interfejs
TimeGateway
został zastąpiony interfejsemPlatformTimeUpdateNotifier
w biblioteceprotolayout-expression-pipeline
, który zapewnia pożądaną częstotliwość aktualizowania danych o czasie. (I60869) - Zmień nazwę pliku
register
/unregisterForData
w plikuPlatformDataProvider
naset
/clearReceiver
(I14b02) - Nazwa
getExcludeFontPadding
w interfejsie Material Text została zmieniona nahasExcludeFontPadding
. (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 naMAX_BUTTONS
. (I84788) - Nazwa
DAILY_DISTANCE
została zmieniona naDAILY_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; dodaniePlatformDataKey
na potrzeby dostępu do danych platformy, Dodano obsługę przestrzeni nazw wStateStore
. (I7985e) - Obsługuj operacje
Equal
iNotEqual
w tabeliDynamicBool
. (I6a0c1).
Zmiany interfejsu API
- Zajęcia
FontStyles
są teraz zakończone (Iaa2ea) - Usługa
LayoutElementBuilders#FontStyles
została wycofana. Użyj narzędziaandroidx.wear.protolayout.Typography
lub utwórz własne kontoFontStyle
. (IC929b) - Ukryj zagnieżdżony interfejs
Action#Builder
w interfejsieAction
. Implementacje narzędzia Builder są już dostępne w klasachLoadAction
iLaunchAction
. (I1d70c) - Zezwalaj na używanie
DynamicFloat
w usłudzeFloatProp
. Pamiętaj, że obiektFloatProp
nie wymaga ograniczeń układu, ponieważ nie jest używany jako właściwość zmieniająca układ. (I286ac), - Działania
LoalAction
iSetStateAction
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
naDynamicDataValue
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 instancjiStateStore
. 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 elementuStateStore
otrzyma wartośćIllegalStateException
. (Ibadb3). - Ukryj zajęcia
OnLoadTrigger
iOnConditionMetTrigger
i zmień nazwę zajęć zsetTrigger
nasetCondition
dla:OnConditionMetTrigger
. (Ibf629). - Ze względu na wydajność i zgodność mechanizmy renderowania
ProtoLayout
nie będą obsługiwać pełnego zestawu funkcji w zasobachAnimatedVectorDrawable
. 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
PlatformHealthSources.Keys
(Ib7637) - Metoda
Easing.cubicBezier
zastępuje metodęCubicBezierEasing.Builder
. KlasaEasingFunction
została usunięta, a stałe wygładzania z niej są teraz dostępne bezpośrednio w interfejsieEasing
. Oprócz tego interfejssetInfiniteRepeatable
został zastąpiony przezINFINITE_REPEATABLE_WITH_RESTART
iINFINITE_REPEATABLE_WITH_REVERSE
(Ib41e7) - Zastosuj funkcję
PlatformDataProvider
, aby widzieć tętno i dzienną liczbę kroków. InterfejsSensorGateway
został usunięty z publicznego interfejsu API. (I55b84) - Dodaj
PlatformDataProvider
i zaktualizujStateStore
, aby zarejestrować się wPlatformDataProvider
, 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
iDynamicFloat
do uzyskiwania postępów w projekcieCircularProgressIndicator
. 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 klasyLayoutDefaults.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 atrybutemDynamicString
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 funkcjiText#getText
zString
naStringProp
. (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
dlaArcLine
. (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ć obiektuContentDescription
. (I3f1d). - Metoda
DynamicBool.isFalse()
została zastąpiona przezDynamicBool.negate()
, a metodaDynamicBool.isTrue()
została usunięta. Oprócz wartości NaNDynamicFloat
i zawężenie polaDynamicInt32
do wartościDynamicFloat
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
zamiastimplementation
, 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 naStateStore
. (Ieb0e2). - Zamiast argumentów konstruktora dodano
DynamicTypeEvaluator.Builder
, aby umożliwić użycie większej liczby argumentów opcjonalnych, w tym argumentObservableStateStore
, 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 doprotolayout-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
ireverseRepeatDelayMillis
do kolekcjiRepeatable
. Ponadto zmieniliśmy nazwędelayMillis
wAnimationSpec
nastartDelayMillis
(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
iOnConditionalMet
. Można ich używać do uruchamiania animacji obsługujących regułę. - 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
iSeekableAnimatedVectorDrawable
.
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
naset/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()
ifromByteArray()
. - 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 doandroidx.wear.protolayout:protolayout
. Te w wersjiandroidx.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.