носить протомакет
Последнее обновление | Стабильный выпуск | Кандидат на выпуск | Бета-версия | Альфа-релиз |
---|---|---|---|---|
26 февраля 2025 г. | 1.2.1 | - | - | 1.3.0-альфа09 |
Объявление зависимостей
Чтобы добавить зависимость от Wear-Protolayout, необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .
Добавьте зависимости для нужных вам артефактов в файл build.gradle
для вашего приложения или модуля:
классный
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" }
Котлин
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") }
Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Дополнительную информацию см. в документации по системе отслеживания проблем .
Версия 1.3
Версия 1.3.0-альфа09
26 февраля 2025 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.3.0-alpha09
. Версия 1.3.0-alpha09 содержит эти коммиты .
Новые возможности
- Добавлены экспериментальные модификаторы для
enterTransition
иexitTransition
( I4a4d6 ). - Мы добавили дополнительную привязку к платформе, чтобы получать статус видимости полного макета при каждом его изменении. ( I250c3 )
- Разрешить вставку состояния тестируемого приложения и данных платформы в
LayoutElementAssertionsProvider
для оценки динамических значений. ( Ib5fcb ) - Добавьте угловые фильтры в библиотеку тестирования protolayout ( Ie2361 ).
-
ButtonColors
,CardColors
иProgressIndicatorColors
теперь поддерживают метод копирования с возможностью переопределения некоторых параметров. ( Ie2054 )
Изменения API
- Добавить поддержку динамической привязки данных в библиотеку тестирования ( Ib98de ).
- Исправьте
imageButton
при использовании с функциейbackgroundImage
, удалив наложение. Кроме того, разрешите функциюbackgroundImage
, позволяющую указывать значение null для цвета наложения, что означает, что наложение не будет применяться. ( Ibec3c )
Исправления ошибок
- Изменен метод
hasValueOfType
по умолчанию, чтобы он выбрасывалUnsupportedOperationException
вместоIllegalArgumentException
. ( Ia36c3 ) - Значения цветовых маркеров по умолчанию обновляются в соответствии с последней спецификацией. ( I75d44 )
- Исправлены проблемы с псевдонимами, видимыми на дуговых линиях в средстве рендеринга плиток AndroidX. ( I88190 )
Версия 1.3.0-альфа08
12 февраля 2025 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.3.0-alpha08
. Версия 1.3.0-alpha08 содержит эти коммиты .
Новые возможности
- Добавьте параметр списка
FontSetting
для текста Material3. ( Ic102d ) - Добавлен класс
DynamicDataMap
, которыйStateBuilder
теперь поддерживает для более безопасного API Kotlin для состояний приложений ( I012ba ). - Добавлены фабричные методы, такие как
intAppDataKey
, для упрощения создания объектовAppDataKey
( Icea2a ). -
DynamicDataValue
теперь имеет методhasValueOfType(Class<?>)
в дополнение к методамhasInt/hasColor/
.... ( I4f7a6 ). - Мы добавили
errorDim
вColorScheme
Material3 ProtoLayout для ошибок с высоким приоритетом или экстренных действий, таких как оповещения о безопасности. ( Ia17bb ) - Мы добавили защиту от сбоя при доступе к глобальной настройке уменьшения движения, которая срабатывала на некоторых платформах, где этот параметр не был предусмотрен. ( I01e2c )
Изменения API
-
addKeyToValueMapping
переименованы вaddToStateMap
, а методыDynamicDataMap.put
удалены, поскольку они были избыточными. ( Ibe9dd ) - Material3 Typography теперь поддерживает переменную ось округлости для системных шрифтов, которые поддерживают эту ось. ProtoLayout
FontSetting
поддерживает ось округлости для шрифтов, которые поддерживают эту ось. ( I33eb5 ) -
multilineAlignment
переименован в выравнивание в текстовом методе Material3. ( I2b66b ) - Обновите круговой индикатор прогресса до типа Box, а также укажите
mainContent
вconstructGraphic
как тип Box ( I5a3dc ). - Улучшенная поддержка использования кругового индикатора прогресса на графике ( I039db ).
Исправления ошибок
- Разрешите динамические значения в
ColorStop
, а также для начальных/конечных углов вSweepGradient
. ( I0146d ) - Документы исправлены. ( I4a63a )
- Обновлены компоненты Material 3 (
graphicCard
иavatarButton
), чтобы обеспечить резервный вариант, когда размер расширенияweight
не поддерживается (например, ниже API 33). Обновлен текстовый компонент для возврата кTEXT_OVERFLOW_ELLIPSIZE_END
, когдаTEXT_OVERFLOW_ELLIPSIZE
не поддерживается средством визуализации. ( I19e2c ) - Обновление документации для
PrimaryLayoutMargins
. ( Ibaf7b )
Версия 1.3.0-альфа07
29 января 2025 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.3.0-alpha07
. Версия 1.3.0-alpha07 содержит эти коммиты .
Новые возможности
- Добавлена опция API для установки различных триггеров для анимации Лотти. Кроме того, добавлен API для триггеров, срабатывающих при отображении макета ( I8272d ).
- Добавлены модификаторы
border
,visibility
иopacity
. ( I6d3dd ) - Добавлена кнопка аватара в компонент ProtoLayout Material3. ( Idb5ae )
- Теперь мы разрешаем настраивать поля (боковые и в некоторых случаях нижние) в
primaryLayout
Material3. ( Ib22f6 ) - Добавьте сегментированный вариант кругового индикатора прогресса. ( I6a648 )
- В ProtoLayout Material3 добавлен компонент компактной кнопки. ( Ia3c5c )
- В ProtoLayout Material3 добавлены компоненты кнопки в форме таблетки и кнопки изображения. ( Ifb88a )
Изменения API
-
LayoutModfier.foldIn
теперьfoldRight
, чтобы лучше отражать ожидаемое поведение ( Idf242 ). - Триггер
VisibleOnce
теперь является экспериментальным. ( Ib2d26 ) - Удалите
withOpacity
из общедоступного API, поскольку существует альтернатива графической библиотеке. ( I030c2 ) - Переименованы методы верхнего уровня в
LayoutString.kt
иLayoutColor.kt
чтобы их имена были понятны Java. ( I7aff0 ) - Удалены типографики, не относящиеся к ProtoLayout, в Material3. ( Idd9ae )
- Добавьте суффикс Color к полям классов
*Colors
в Material3. ( I2d114 )
Исправления ошибок
- Добавьте резервную реализацию
EdgeButton
для старого средства визуализации без поддержки асимметричных углов. ( I63364 ) - Добавьте резервную реализацию кругового индикатора прогресса со старым средством рендеринга. ( I0f134 )
Версия 1.3.0-альфа06
15 января 2025 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.3.0-alpha06
. Версия 1.3.0-alpha06 содержит эти коммиты .
Новые возможности
-
LayoutColor
для поддержки как статических, так и динамических типов цвета ( I4c89b ). - Добавлен компонент textButton
ProtoLayout Material3
. ( Ид680d ) - Добавьте компонент
iconButton
ProtoLayout Material3. ( Ica3f0 ) - Добавлен компонент контейнера кнопок ProtoLayout Material3. ( I17a38 )
- Добавлена поддержка семантических модификаторов Chainable в protolayout-material3 ( I4af62 ).
- Добавлен один сегмент ProtoLayout Material3
CircularProgressIndicator
( I2c8a2 ). - Добавлены
padding
, модификаторыmetadata
( I8720a ). - Добавлены модификаторы
background
,clip
иclickable
( I35478 ). - Добавьте
LinearGradient
в Brush и разрешите его использование в модификаторе фона. ( Ic4dea ) - Добавьте небольшой размер для appCard и
titleCard
. ( I91f98 ) - Добавлен компонент ProtoLayout
graphicDataCard
. ( I92be7 ) - Добавлены компоненты ProtoLayout Material3
iconDataCard
иtextDataCard
. ( I4e1e4 ) - Добавлен компонент
appCard
ProtoLayout Material3. ( Id4c57 ) - Абстрагируйте
EdgeButtonColors
вButtonColors
. ( I83624 ) - Добавлен компонент
titleCard
ProtoLayout Material3. ( I2dc72 )
Изменения API
- API ProtoLayout Material3 теперь принимает
LayoutString
для поддержки как статического, так и динамического текста. ( I9c24a )
Исправления ошибок
- Добавить реализацию рендеринга для раздувания
DashedArcLine
( I0c700 ). - Изменение рендерера, позволяющее
ArcSpacer
использовать длину dp. ( I1437b )
Версия 1.3.0-альфа05
11 декабря 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.3.0-alpha05
. Версия 1.3.0-alpha05 содержит эти коммиты .
Новые возможности
- Добавлен
LayoutString
для поддержки привязываемых строковых полей макета. ( Ида650 ) - Добавлен компонент контейнера карточек
ProtoLayout Material3
. ( Ic985a )
Исправления ошибок
- Эта библиотека теперь использует аннотации NULL NULL JSpecify , которые являются типизированными. Разработчики Kotlin должны использовать следующие аргументы компилятора для обеспечения правильного использования:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
( Id1f9b , b/326456246 )
Версия 1.3.0-альфа04
13 ноября 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.3.0-alpha04
. Версия 1.3.0-alpha04 содержит эти коммиты .
Новые возможности
- Форма Material3 обновлена и теперь представляет собой класс с полями, содержащими фактическое значение угла, как и в Wear Compose. ( Ied8cd )
- Обновлены цвета Material3, чтобы включить концепцию
ColorScheme
, такую же, как в Wear Compose. ( Если645е ) - Добавьте в библиотеку тестирования несколько часто используемых средств сопоставления. ( Ie5cec )
Версия 1.3.0-альфа03
30 октября 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.3.0-alpha03
. Версия 1.3.0-alpha03 содержит эти коммиты .
Новые возможности
- Добавьте
LayoutElementAssertionsProvider
,LayoutElementAssertion
иLayoutElementMatcher
в библиотеку тестирования ( Id1110 ).
Версия 1.3.0-альфа02
16 октября 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.3.0-alpha02
. Версия 1.3.0-alpha02 содержит эти коммиты .
Новые возможности
- Начальная версия библиотеки Material 3. Включает компоненты
text
,edgeButton
,buttonGroup
иprimaryLayout
.
Исправления безопасности
- После этого изменения androidx компилируется с protobuf 4.28.2 для устранения CVE-2024-7254 . Обновите свою зависимость от версии 1.3.0-alpha01
androidx.wear.protolayout:protolayout-proto
иandroidx.wear.protolayout:protolayout-external-protobuf
до 1.3.0-alpha02, чтобы устранить риск уязвимости.
Внешний вклад
Версия 1.3.0-альфа01
2 октября 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.3.0-alpha01
. Версия 1.3.0-alpha01 содержит эти коммиты .
Исправления ошибок
- Уточнено, что доступность названий семейств шрифтов Roboto и Roboto Flex зависит от устройства. ( I193be )
- Включено семейство шрифтов Roboto Flex в средстве рендеринга плиток AndroidX. ( I08e94 )
Версия 1.2
Версия 1.2.1
16 октября 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.2.1
. Версия 1.2.1 содержит эти коммиты .
Исправления безопасности
- После этого изменения androidx компилируется с protobuf 4.28.2 для устранения CVE-2024-7254 . Обновите свою зависимость от
androidx.wear.protolayout:protolayout-proto
иandroidx.wear.protolayout:protolayout-external-protobuf
версии 1.2.0 до 1.2.1, чтобы устранить риск уязвимости.
Версия 1.2.0
7 августа 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.2.0
. Версия 1.2.0 содержит. эти коммиты .
Важные изменения с версии 1.1.0
-
FontStyle
был обновлен, чтобы обеспечить дополнительную поддержку шрифтов для переменных осей и улучшенный API выбора шрифта для поддержки будущих шрифтов Flex. - Поддержка дополнительных модификаторов:
- Модификатор трансформации, обеспечивающий перемещение, вращение и масштабирование с анимацией или без нее.
- Указание разных значений (по горизонтали и вертикали) для каждого углового радиуса.
- Улучшена доступность всех сенсорных объектов за счет расширения области касания любого элемента, использующего модификатор Clickable, до размера не менее
48dp
на48dp
. - Улучшены
PrimaryLayout
иEdgeContentLayout
путем добавленияsetResponsiveContentInsetEnabled
для лучшей поддержки адаптивного поведения этих макетов на экранах разных размеров и улучшения согласованности плиток. - Улучшено масштабирование/немасштабирование текста материала для нелинейного масштабирования шрифта Android 14.
- Улучшена поддержка направления компоновки RTL для всех дуговых элементов.
Дополнительные изменения
- Более полный набор изменений, представленных в версии 1.1.0, см. в примечаниях к выпуску beta01 .
Версия 1.2.0-rc01
24 июля 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.2.0-rc01
. Версия 1.2.0-rc01 содержит эти коммиты .
Исправления ошибок
- Мы исправили стандартный чип материала, поэтому его можно использовать в качестве значка только в том случае, если не передана ни одна из основных или вторичных меток. ( Iceef9 ).
- Документация по макетам материалов была обновлена и теперь включает визуальные эффекты с соответствующей страницы для облегчения понимания макетов. ( I0256a )
Версия 1.2.0-бета01
10 июля 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.2.0-beta01
. Версия 1.2.0-beta01 содержит эти коммиты .
Новые возможности
В выпуске Wear ProtoLayout 1.2.0-beta01 указано, что этот выпуск библиотеки является полнофункциональным, а API заблокирован (кроме тех случаев, когда он помечен как экспериментальный). Wear ProtoLayout 1.2 включает следующие новые функции и API:
-
FontStyle
был обновлен и теперь имеет дополнительную поддержку следующих шрифтов:- Установка различных настроек варианта шрифта, таких как
FontSetting.weight
иFontSetting.width
- Установка одинаковой ширины для всех цифровых символов — табличных цифр (настройка функции шрифта
FontSetting.tnum
) - Улучшены API выбора шрифтов для поддержки будущих гибких шрифтов путем указания предпочтительных названий семейств шрифтов.
- Установка различных настроек варианта шрифта, таких как
- Модификатор Extended
Corner
для поддержки указания каждогоCornerRadius
с отдельными значениями по горизонтали и вертикали, что позволяет строить элементы с асимметричными углами. - Добавлен новый модификатор
Transformation
, обеспечивающий перемещение, вращение и масштабированиеLayoutElement
. Эти преобразования можно анимировать с помощью динамических значений. - Для всех элементов дуги (
Arc
,ArcLine
иArcText
) добавлены параметрыsetArcDirection
с параметрамиClockwise
,CounterClockwise
иNormal
для лучшей поддержки различных направлений макета (таких как LTR и RTL). - Улучшена доступность всех сенсорных объектов за счет расширения области касания любого элемента, использующего модификатор
Clickable
, до размера не менее48dp
на48dp
. - Улучшены
PrimaryLayout
иEdgeContentLayout
путем добавленияsetResponsiveContentInsetEnabled
для лучшей поддержки адаптивного поведения этих макетов на экранах разных размеров и улучшения согласованности плиток. Добавлено предупреждение линтера, предлагающее использовать эти API с быстрым исправлением. - Улучшено масштабирование/немасштабирование
Text
материала для нелинейного масштабирования шрифта Android 14.
Изменения API
- Имя семейства шрифтов по умолчанию (
DEFAULT_SYSTEM_FONT
) удалено, поскольку оно подразумевается из-за отсутствия использования APIpreferredFontFamilies
. ( I39dab ) - Параметр, передаваемый в
FontSetting.width
, должен быть положительным. ( I1266f )
Версия 1.2.0-альфа05
26 июня 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.2.0-alpha05
. Версия 1.2.0-alpha05 содержит эти коммиты .
Новые возможности
- Добавьте метод
hasText
вMaterial.CompactChip
, чтобы проверить, установлено ли текстовое содержимое. ( I6e8fc )
Изменения API
- Константа
FontFamily
перемещена вFontStyle
вместо класса Builder. ( I06ced ) - Обновите API
FontSetting.weight
иFontSetting.width
, включив в него аннотации диапазона, и измените параметр веса на int. ( Ia726c )
Исправления ошибок
- Немасштабируемые тексты в библиотеке материалов теперь корректно работают с нелинейным масштабированием шрифтов Android 14. ( I6601e )
Версия 1.2.0-альфа04
29 мая 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.2.0-alpha04
. Версия 1.2.0-alpha04 содержит эти коммиты .
Изменения API
- Добавлен API асимметричных углов, позволяющий отдельно указывать радиус каждого угла с двумя значениями. ( Icbd69 )
- Расширен API
FontSetting
, включив в него: - В
FontStyle
добавлен API семейства шрифтов, позволяющий указать порядок использования семейств шрифтов. ( Iba9f5 ) - Переименованы константы для высоты пространства между содержимым и вторичной меткой в
LayoutDefaults
материала, которые изначально имели префикс «Edge content», чтобы они были более общими, поскольку их можно применять как кPrimaryLayout
, так иEdgeContentLayout
. ( I4dc32 )
Исправления ошибок
- Именование осей переменных шрифтов переименовано с
axisName
наaxisTag
. ( I02ba3 )
Версия 1.2.0-альфа03
14 мая 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.2.0-alpha03
. Версия 1.2.0-alpha03 содержит эти коммиты .
Новые возможности
- Добавлен API для установки пользовательских значений веса для
FontStyle
. ( I7390a )
Исправления ошибок
- Исправьте сбой в
getTouchDelegateInfo
из-за пустой целевой карты. ( I2accf )
Версия 1.2.0-альфа02
1 мая 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.2.0-alpha02
. Версия 1.2.0-alpha02 содержит эти коммиты .
Изменения API
- Мы добавили поддержку отключения пульсирующей обратной связи для отдельных кликабельных элементов. ( If1ede )
- API для преобразования был удален из
ArcModifiers
, поскольку они не поддерживают эту функцию ( Ic0827 ). -
ArcDirectionProp
Builder теперь ожидает значение в конструкторе. ( И76ада ) - Метод
PlatformDataValues.Builder.putAll
позволит объединить одноPlatformDataValue
с другим. ( I50ba3 ) -
Text#setIsScalable
переименован вText#setScalable
. ( Если920е ) - В Material Text можно указать, использовать ли масштабируемый размер (увеличивается при изменении размера пользовательского шрифта) или нет. ( Ibc849 )
- Мы добавили возможность установить описание контента в
TitleChip
. ( I5d21f ) - Исправлен
CompactChip
для правильной работы только со значками и обновлен API, чтобы разрешить эту опцию. ( I6589e )
Исправления ошибок
- Исправлена проблема с возможным дублированием данных платформы во время инициализации. ( Iba0fd )
- Введите новый метод получения в
DynamicDataNode
для получения стоимости узла. Стоимость используется при получении квоты динамического узла. В настоящее время узлы с фиксированными значениями будут иметь стоимость 0, все остальные узлы будут иметь стоимость 1. ( Ia33e1 ). - Удалите логику подсчета из
NO_OP_QUOTA_MANAGER
. ( Ib50b8 ) - Мы добавили правило проверки, которое сообщает о предупреждении, когда
PrimaryLayout
используется безsetResponsiveContentInsetEnabled
и обеспечивает быстрое исправление. ( I12025 ) - Существует ограничение на количество узлов динамического выражения. ( Иффае8 )
Версия 1.2.0-альфа01
6 марта 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.2.0-alpha01
. Версия 1.2.0-alpha01 содержит эти коммиты .
Новые возможности
- В элементах
ProtoLayout Arc
теперь есть возможность добавить к нимArcDirection
(Clockwise
,Counterclockwise
orNormal
). Добавление этого поведения вArc
,ArcLine
илиArcText
исправит их поведение в макетах с письмом справа налево. ( I90699 ) -
EdgeContentLayout
был обновлен новым установщикомsetResponsiveContentInsetEnabled
, чтобы обеспечить лучшее соответствие рекомендациям UX, согласованность в плитках за счет размещения основной метки в фиксированном месте сверху и адаптивной вставки для меток. ( I60175 ) - Мы добавили
PrimaryLayout.setResponsiveContentInsetEnabled
, который добавляет адаптивную вставку к основной метке, вторичной метке и нижнему чипу в этом макете, чтобы содержимое не выходило за пределы экрана. ( I0c457 ) - Добавляет метод для удаления внешних полей из
CircularProgressIndicator
, чтобы его можно было использовать как компонент меньшего размера. ( I55c06 )
Изменения API
- Средство рендеринга плиток теперь по умолчанию исключает заполнение шрифтов для всех текстовых элементов без возможности его включения. ( I3e300 )
Исправления ошибок
- Исправлена проблема с выравниванием текста, когда в тексте используются размер эллипса, межбуквенный интервал и выравнивание по центру. ( I716c7 )
- Добавьте обходной путь для проблемы с рисованием дуги лыжи. ( I08f09 )
- Исправлено направление рисования
ArcLine
для макетов RTL. ( I6c141 )
Версия 1.1
Версия 1.1.0
7 февраля 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.1.0
. Версия 1.1.0 содержит эти коммиты.
Важные изменения с версии 1.0.0
- Поддержка градиентов и лучшее представление длин, превышающих 360 градусов, в
ArcLine
. - Форматирование даты и времени поддерживает разные часовые пояса для динамических типов данных.
- Улучшены параметры автоматического изменения размера текста и эллипса для обработки усеченного текста.
- Проставка поддерживает увеличенные размеры с дополнительным весом.
- Аннотация требований к версии схемы для всех API
ProtoLayout
. - Расширена целевая область для любого
Clickable
элемента до 48 x 48 точек для удовлетворения требований доступности. - Заполнение шрифта по умолчанию отключено и является единственным поведением для всех элементов Text и компонентов Material, содержащих текст.
Дополнительные изменения
- Более полный набор изменений, представленных в версии 1.1.0, см. в примечаниях к выпуску beta01 .
Версия 1.1.0-rc01
24 января 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.1.0-rc01
. Версия 1.1.0-rc01 содержит эти коммиты.
Исправления ошибок
-
PlatformTimeUpdateNotifierImpl
устанавливается сразу после включения обновления. ( I77145 ) -
CircularProgressIndicator
исправлен для макетов с письмом справа налево. Отныне во всех случаях он будет идти по часовой стрелке. ( I95ee3 ) - Добавьте обходной путь для проблемы с рисованием дуги лыжи. ( I08f09 )
Версия 1.1.0-бета01
10 января 2024 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.1.0-beta01
. Версия 1.1.0-beta01 содержит эти коммиты.
Новые возможности
В выпуске Wear ProtoLayout 1.1.0-beta01 указано, что этот выпуск библиотеки является полнофункциональным, а API заблокирован (кроме тех случаев, когда он помечен как экспериментальный). Wear ProtoLayout 1.1 включает следующие новые функции и API:
-
ArcLine
теперь поддерживает градиент, добавивBrush
сSweepGradient
и добавив тень на конце, чтобы лучше представить длину, превышающую 360 градусов, добавивShadow
к существующемуStrokeCap
. -
DynamicInstant
поддерживает зональное форматирование даты и времени.DynamicInstant
иDynamicDuration
можно использовать как типы данных состояния или платформы. - Функция автоматического изменения размера текста, которая позволяет устанавливать несколько размеров для
FontStyle.setSizes
, где размер текста будет автоматически масштабироваться в зависимости от пространства, которое он имеет внутри родительского элемента. Кроме того, мы улучшили параметры эллипса для текста, который выходит за пределы, добавивTEXT_OVERFLOW_ELLIPSIZE
и упразднивTEXT_OVERFLOW_ELLIPSIZE_END
. -
Spacer
теперь поддерживает увеличенные размеры с возможностью выбора веса. Для построенияExpandedDimensionProp
мы добавили вспомогательный методDimensionBuilders.weight
. - Поддержка динамического скрытия и отображения элементов макета с помощью
Modifier.visible
. Это включает в себя наличие динамических значений вBoolProp
. - Все API
ProtoLayout
теперь имеют аннотацию требований к версии схемы, и версию можно проверить перед вызовом нового API. - Целевая область каждого элемента, имеющего
Clickable
теперь расширена в средстве рендеринга как минимум до 48x48, чтобы лучше соответствовать требованиям доступности. - Следуя другим компонентам Material и инициативам Compose, мы теперь отключили заполнение шрифтов по умолчанию для всех
Text
элементов. Кроме того,AndroidTextStyle
и связанные с ним параметры настройки были удалены из общедоступного API. со следующими исправлениями ошибок: - Добавлен установщик для позиционирования краевого содержимого в
EdgeContentLayout
, чтобы его можно было расположить перед другим содержимым. - Последовательное создание исключения при обнаружении нераспознанного значения перечисления.
- Сделайте недействительным результат выражения, если оно возвращает недопустимое числовое значение (NaN или бесконечное) или выдает
ArithmeticException
.
Изменения API
- Обновления API
SweepGradient
, позволяющие принимать в конструкторе либо цвета, либоColorStops
. ( I6676f )
Исправления ошибок
- Добавление ограниченного API и поддержки средства рендеринга для установки направления рисования элементов дуги. ( Idef5a )
-
RoundMode
по умолчанию имеет значениеFloor
вFloatToInt32Node
, если оно не указано. Узел все равно выдаст исключение, если предоставленныйRoundMode
не распознан. ( I1b2d8 )
Версия 1.1.0-альфа04
13 декабря 2023 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.1.0-alpha04
. Версия 1.1.0-alpha04 содержит эти коммиты.
Новые возможности
- Класс
VersionInfo
не реализует интерфейсComparable
. ( I8d13c ) - Renderer теперь поддерживает опцию
TEXT_OVERFLOW_ELLIPSIZE
. ( I7f085 )
Изменения API
- Параметр переполнения текста
TEXT_OVERFLOW_ELLIPSIZE_END
больше не поддерживается. Используйте новый APITEXT_OVERFLOW_ELLIPSIZE
с очень похожим поведением. ( I822d8 ) - Следуя другим компонентам Material и инициативам Compose, мы теперь отключили заполнение шрифтов по умолчанию для всех текстовых элементов. Кроме того,
AndroidTextStyle
и связанные с ним параметры настройки были удалены из общедоступного API. ( I79094 , Ib0b03 , I32959 , Iaf7d5 , Ifa298 , I0a4ae , Ida9d3 ) -
Modifier.hidden
заменяется наModifier.visible
( I56902 ). -
FontStyle#setSizes
теперь принимает аргументы int вместоSpProp
. ( I02b37 )
Исправления ошибок
- Вызывайте исключение при обнаружении значения перечисления Undefine или Unrecounced. ( I9d2cf )
- Рефакторинг
DynamicTypeBindingRequest
. ( I27b57 ) - Сделайте недействительным результат выражения, если оно возвращает недопустимое числовое значение (NaN или бесконечное) или выдает
ArithmeticException
. ( I681ae )
Версия 1.1.0-альфа03
29 ноября 2023 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.1.0-alpha03
. Версия 1.1.0-alpha03 содержит эти коммиты.
Новые возможности
- Добавить экспериментальную поддержку динамического скрытия/показания элементов макета ( I64a78 ).
- Добавьте поддержку динамических значений в
BoolProp
( I2fe96 ). - Добавление аннотации требований к версии схемы в API
ProtoLayout
( I0f03c ). - Расширение API с помощью новой опции в
TextOverflow
для эллипса текста в фиксированном родительском контейнере, даже если максимальное количество строк не достигнуто (но для текста недостаточно места). ( I110a9 ) - Добавлен вспомогательный метод
DimensionBuilders.weight
для построенияExpandedDimensionProp
с весом. ( I4f72b ) -
DynamicInstant
иDynamicDuration
можно использовать как типы данных состояния или платформы. ( I6819f )
Изменения API
- Обновите API, чтобы скрыть
DynamicZonedDateTime
и перенести все его операции вDyanamicInstant
( I34b94 ). - Разделитель теперь поддерживает расширенные размеры по ширине/высоте. ( Ie7c94 )
- Поддержка расширения целевой области щелчка в Renderer ( I39c79 )
Версия 1.1.0-альфа02
15 ноября 2023 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.1.0-alpha02
. Версия 1.1.0-alpha02 содержит эти коммиты.
Новые возможности
- В API добавлено поле
ArcLine
StrokeCap
Shadow
. ( I830ec ) - Расширение API, чтобы можно было указать ширину или высоту Spacer для расширения. ( I757ca )
- Мы добавили экспериментальный API для автоматического масштабирования размера текста в зависимости от пространства, которое он имеет внутри родительского элемента. ( Иббе63 )
- Поддержка минимального кликабельного размера ( I178e3 ).
- Добавлена поддержка рендеринга
StrokeCap
Shadow
. ( I48b17 ) - Добавьте поддержку средства визуализации для Sweep Gradient в
ArcLine
. ( I4d5bb )
Версия 1.1.0-альфа01
18 октября 2023 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.1.0-alpha01
. Версия 1.1.0-alpha01 содержит эти коммиты.
Новые возможности
- В
Arcline
добавлена опция кисти с поддержкойSweepGradient
. ( Ie7ce3 ) - Добавлена поддержка зонального форматирования даты и времени. ( Ибфае0 )
- Добавлены прототипы и Java-оболочки, необходимые для зонального форматирования даты и времени. ( I97126 )
- Добавлены геттеры для обратного чтения значения, хранящегося в
DynamicDataValue
. ( Ie6cea ) - Добавлен установщик для позиционирования краевого содержимого в
EdgeContentLayout
, чтобы его можно было расположить перед другим содержимым. ( Ie8e8a )
Исправления ошибок
- Исправлена проблема, из-за которой выражение с многократной регистрацией источника данных по времени не обновлялось немедленно. ( I8e1a8 )
- Исправлена ошибка центрирования корневого элемента во время обновления различий. ( Ie48f7 )
- Неустановленные (или пустые) значения ограничений макета больше не будут игнорироваться. ( Ibc785 )
- Уменьшена задержка между отображением макета и инициализацией узлов его конвейера. ( I38d4e )
Версия 1.0
Версия 1.0.0
9 августа 2023 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.0.0
. Версия 1.0.0 содержит эти коммиты.
Основные особенности версии 1.0.0
Библиотека ProtoLayout представляет API для создания макетов и выражений, которые можно использовать в различных средах Wear OS. Например, библиотека Tiles использует эти API для поддержки привязки данных платформы (для более быстрого обновления данных плиток) и анимации.
Версия 1.0.0-rc01
26 июля 2023 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-rc01
. Версия 1.0.0-rc01 содержит эти коммиты.
- Чтобы перейти с Tiles на
ProtoLayout
, следуйте инструкциям здесь .
Изменения API
- Мы удалили методы
setLayoutConstraintForDynamicAnchorAngle
иgetLayoutConstraintForDynamicAnchorAngle
из элемента Arc. Эти методы были добавлены по ошибке и не оказали никакого влияния на предоставленный макет. ( Если7d01 ) - Мы ограничили максимальную глубину макета
ProtoLayout
30 вложеннымиLayoutElements
. ( I8a74b )
Исправления ошибок
- Мы добавили проверку, которая выдается, если для
SpanText
установленDynamicColor
. ( I0e5bc ) - Уточняется, что единицей источника данных
DAILY_CALORIES
является ккал. ( Iaa785 )
Версия 1.0.0-бета01
21 июня 2023 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-beta01
. Версия 1.0.0-beta01 содержит эти коммиты.
Новые возможности
- Разрешить установку часов для тестов привязки времени. ( I05622 )
Изменения API
-
PlatformDataReceiver.onData()
иStateBuilders.Builder.addKeyToValueMapping
теперь принимают типобезопасное сопоставлениеDynamicDataKey
сDynamicDataValue
, а не небезопасные универсальные шаблоны. Это означает, чтоDynamicDataValue
теперь типизируется с помощьюDynamicType
. КонстантыHEART_RATE_ACCURACY_X
перемещены в кореньPlatformHealthSources
, чтобы соответствовать расположению других констант Android. КонстантыHEART_RATE_ACCURACY_X
int теперь используются непосредственно вDynamicHeartRateAccuracy.constant()
иDynamicHeartRateAccuracy.dynamicDataValueOf()
вместо константы-значения. ( I82ff5 ) - Класс
PlatformHealthSources.Constants
был создан по ошибке. Теперь это исправлено. ( Icb849 ) -
PlatformTimeUpdateNotifier#setReceiver
теперь получаетRunnable
вместо функцииSupplier
иExecutor
для уведомления. ( I9d938 ) - Мы изменили тип параметра в
PlatformTimeUpdateNotifier#setReceiver
сCallable
наSupplier
. ( I664bf ) -
CompactChip
иTitleChip
теперь поддерживают добавление значка. ( I5a01e )
Исправления ошибок
- Обновить сообщения Prop с помощью динамических полей, чтобы вместо них использовать oneof ( I81739 ).
- Реализация установщиков повторного использования для перегрузок, имеющих установщики ( Ied70c )
- Правильно записывать отпечатки пальцев в сеттерах, имеющих перегрузки ( I86ed2 ).
Версия 1.0.0-альфа11
7 июня 2023 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-alpha11
. Версия 1.0.0-alpha11 содержит эти коммиты.
Новые возможности
- Мы добавили
PlatformDataKey
для точности измерения сердечного ритма. ( I7f9b8 )
Изменения API
- Переименуйте
StateBuilders#getIdToValueMapping
вgetKeyToValueMapping
и измените тип возвращаемого значения наMap<<AppDataKey<?>,DynamicDataValue>
. ( Iaa7ae ) - Сделайте
StateStore
последним классом ( I408ca ). - Интерфейс
TimeGateway
был заменен наPlatformTimeUpdateNotifier
в библиотекеprotolayout-expression-pipeline
которая обеспечивает желаемую частоту обновления данных времени. ( I60869 ) - Переименуйте
register
/unregisterForData
вPlatformDataProvider
, чтобыset
/clearReceiver
( I14b02 ). - В тексте материала
getExcludeFontPadding
был переименован вhasExcludeFontPadding
. ( Iea01d ) - Ко всем компонентам чипа добавлен установщик для идеального совмещения этикеток. Ко всем фишкам теперь применена минимальная цель, которую можно коснуться. ( I8ae92 )
-
LayoutDefaults#BUTTON_MAX_NUMBER
переименован вMAX_BUTTONS
. ( I84788 ) -
DAILY_DISTANCE
переименован вDAILY_DISTANCE_M
. ( I4f758 )
Исправления ошибок
- Обновите документацию по типам реквизитов, чтобы уточнить, почему применяется статическое значение. Укажите значение по умолчанию, которое будет использоваться, если статическое значение не указано. ( I155aa )
- Пространства имен
PlatformDataKey
должны соответствовать именованию в стиле Java. ( I47bda )
Версия 1.0.0-альфа10
24 мая 2023 г.
Выпущен androidx.wear.protolayout:protolayout-*:1.0.0-alpha10
. Версия 1.0.0-alpha10 содержит эти коммиты.
Новые возможности
- Добавьте
AppDataKey
для доступа к состоянию отправки приложения; ДобавьтеPlatformDataKey
для доступа к данным платформы; Добавьте поддержку пространства имен вStateStore
. ( I7985e ) - Поддержка операций
Equal
иNotEqual
дляDynamicBool
. ( I6a0c1 )
Изменения API
- Класс
FontStyles
теперь финальный ( Iaa2ea ). -
LayoutElementBuilders#FontStyles
устарел. Используйтеandroidx.wear.protolayout.Typography
или создайте свой собственныйFontStyle
. ( Ic929b ) - Скрыть вложенный интерфейс
Action#Builder
из интерфейсаAction
. Реализации Builder уже предоставляются классамиLoadAction
иLaunchAction
. ( I1d70c ) - Разрешить использование
DynamicFloat
сFloatProp
. Обратите внимание, чтоFloatProp
не требует ограничений макета, поскольку он не используется в качестве свойства изменения макета. ( I286ac ) - Действия
LoalAction
иSetStateAction
удалены, поскольку они еще не поддерживались. ( I5d6a6 ) - Добавлена поддержка формата ARGB_8888 для встроенных ресурсов изображений. ( I8a07c )
- Переименуйте
StateEntryValue
вDynamicDataValue
и обновите APIS состояния, чтобы использоватьDynamicDataKey
( If1c01 ). - Мы ограничиваем количество записей, разрешенных в
StateStore
, чтобы гарантировать, что использование памяти и время обновления состояния хорошо сдерживаются и контролируются для каждого экземпляраStateStore
. В результате разработчику необходимо убедиться, что у него не болееMAX_STATE_ENTRY_COUNT
записей на карте, иначе он получит исключениеIllegalStateException
при создании или обновленииStateStore
. ( Ибадб3 ) - Скройте классы
OnLoadTrigger
иOnConditionMetTrigger
и переименуйтеsetTrigger
вsetCondition
дляOnConditionMetTrigger
. ( Ibf629 ) - По соображениям производительности и совместимости средства визуализации
ProtoLayout
не поддерживают полный набор функций ресурсовAnimatedVectorDrawable
. Мы помечаем эти API как экспериментальные, пока не определим поддерживаемый набор. ( Ic6daf ) - Добавлены динамические типы для ежедневного расстояния, ежедневных калорий и ежедневных минимальных значений. Ключи для источников работоспособности платформы теперь находятся в разделе
PlatformHealthSources.Keys
( Ib7637 ). - Метод
Easing.cubicBezier
заменяетCubicBezierEasing.Builder
. При этом классEasingFunction
удаляется, а константы смягчения из этого класса теперь доступны непосредственно из интерфейсаEasing
.INFINITE_REPEATABLE_WITH_REVERSE
INFINITE_REPEATABLE_WITH_RESTART
setInfiniteRepeatable
- Реализуйте
PlatformDataProvider
для обеспечения частоты сердечных сокращений и ежедневных шагов. ИнтерфейсSensorGateway
удаляется из общественного API. ( I55b84 ) - Добавьте
PlatformDataProvider
и обновитеStateStore
, чтобы зарегистрироваться вPlatformDataProvider
, когда поддерживаемый ключ поставщика требуется Node из Pipeline Expression. ( IB616A ) -
SensorGateway
больше не являетсяCloseable
, поскольку он больше не поддерживает какое -либо состояние. ( I6b4f7 ) - Разрешить использовать
FloatProp
сDynamicFloat
для прогресса вCircularProgressIndicator
. Это поддерживается для рендеристов, поддерживающих версию 1.2. Старые визуализаторы будут отступить вstaticValue
если предоставлены, в противном случае до 0 ( I0D91B ) - Константы
MultiButtonLayout
были переработаны в классLayoutDefaults.MultiButtonLayoutDefaults
, который теперь содержит их для размеров кнопок в зависимости от нескольких кнопок в макете. ( I13973 ) - Поддержка с использованием
StringProp
сDynamicString
в тексте материала. Это поддерживается для рендеристов, поддерживающих версию 1.2. Старые визуалисты будут вмешиваться на предоставленную статическую стоимость. ОбновитьText#getText
возвращать тип отString
вStringProp
. ( I7275b )
Версия 1.0.0-Alpha09
10 мая 2023 года
androidx.wear.protolayout:protolayout-*:1.0.0-alpha09
выпускается. Версия 1.0.0-Alpha09 содержит эти коммиты.
Новые возможности
- Мы добавили экспериментальный элемент макета расширения. Обратите внимание, что это нельзя использовать по умолчанию и требует расширения рендеринга, способного понять элемент макета. ( I6581d )
- Добавлена поддержка
StrokeCap
дляArcLine
. ( I94951 ) - Добавлена поддержка условной мгновенной операции. ( I489a7 )
- Добавлена поддержка для условной работы. ( IAB469 )
- Добавлена поддержка для создания продолжительности с секунд. ( IB5FA1 )
API меняется
-
enable/disablePlatformSource
методы Platformsource были удалены изDynamicTypeEvaluator
. Абонент должен нести ответственность за обновления. ( I78c6d ) - Разрешить ограничить размер связанных типов данных. ( IE2966 )
- Добавьте поддержку для динамического описания контента в
protolayout-material
. ( I62c8e ) - Используйте Long и
@IntRange
для продолжительности и задержки в анимации. ( I388b6 )
Версия 1.0.0-Alpha08
19 апреля 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha08
выпускается. Версия 1.0.0-Alpha08 содержит эти коммиты.
Новые возможности
-
AndroidTextStyle
был добавлен вLayoutElementBuilders
. ( I8d967 ) - Мы добавили поддержку для настройки за исключением прокладки шрифтов в текстовом материале
ProtoLayout
. ( I17f5d ) - ARGB_8888 теперь поддерживается для встроенных изображений. ( I18c1e )
-
DynamicColor
теперь поддерживает операциюonCondition
. ( I10927 )
API меняется
- Поддержка пользовательской продолжительности для обратной анимации ( i3251f )
- Мы добавили модификатор
SemanticDescription
. Кроме того,ContentDescription
не является привязанной. ( I3f1d ) - Метод
DynamicBool.isFalse()
теперь заменен наDynamicBool.negate()
, аDynamicBool.isTrue()
удаляется. Кроме того, NANDynamicFloat
значения и сужениеDynamicInt32
доDynamicFloat
, теперь излучает неверный динамический результат. ( I6ac1e ) - Форматиры Int и Float теперь используют шаблон застройщика. ( IEB213 )
Исправления ошибок
- Статическое значение Swarkback было удалено из анимируемых полей. ( IFCB01 )
-
DynamicTypeValueReceiver#onPreUpdate
был удален. ( I2dc35 ) - Длина струн в динамических выражениях теперь ограничена. ( I4c93 )
- Зависимости Gradle теперь правильно устанавливаются для
api
вместоimplementation
, когда это необходимо. ( I40503 )
Версия 1.0.0-Alpha07
5 апреля 2023 года
androidx.wear.protolayout:protolayout-*:1.0.0-alpha07
выпускается. Версия 1.0.0-Alpha07 содержит эти коммиты.
Новые возможности
- Добавить поддержку динамического значения в
StringProp
( I04342 ) - Марк привязываемый элементы макета ( IA110B )
API меняется
-
sensorGateway#registerSensorGatewayConsumer
принимает тип данных в качестве параметра вместо метода в потребителе. ( ICF314 ) -
ObservableStateStore
был переименован вStateStore
. ( IEB0E2 ) - Добавлен
DynamicTypeEvaluator.Builder
вместо аргументов конструктора, чтобы разрешить более необязательные аргументы, включаяObservableStateStore
, который теперь по умолчанию в пустой магазин. ( I6f832 ) - Рефакторированный порядок параметров в
DynamicTypeEvaluator
. ( IC1BA4 )
Исправления ошибок
- Правильно распространять сигналы из источников датчиков платформы в нижестоящие узлы ( i5a922 )
Версия 1.0.0-Alpha06
22 марта 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha06
выпускается. Версия 1.0.0-Alpha06 содержит эти коммиты.
Новые возможности
- Мы добавили экспериментальный API для использования частоты сердечных сокращений и ежедневных шагов в динамических выражениях ( IFD711 )
- Мы добавили поддержку для обратной и вперед задержки для анимации. ( IC25F7 )
- Мы добавили
DynamicColor
поддержку по границе и фону - Мы добавили поддержку динамического значения типам в
DimensionBuilder
- Макет и компоненты из
tiles-material
перемещаются вprotolayout-material
API меняется
-
LoadActionListener
был добавлен вProtoLayoutViewInstance
. ( IF7806 )
Исправления ошибок
- Добавлено
FloatNodesTest
( ID7281 ) - Исправьте сбою рендеринга, если не может загрузить структурированный растровый карту.
Версия 1.0.0-Alpha05
8 марта 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha05
выпускается. Версия 1.0.0-Alpha05 содержит эти коммиты.
Новые возможности
- Мы добавили экспериментальную анимацию «Обновление контента» в объект
Modifiers
. Эта анимация будет запускать всякий раз, когда элемент (с этим модификатором) или один из его детей изменяется во время обновления макета. ( BD03E5D )
API меняется
- Мы добавили
forwardRepeatDelayMillis
иreverseRepeatDelayMillis
дляRepeatable
. Мы также переименовалиdelayMillis
вAnimationSpec
чтобыstartDelayMillis
( IFB266 ) -
DynamicTypeEvaluator.bind
Методы теперь принимают исполнителя. ( I346ab ) - Мы добавили метод
startEvaluation
вBoundDynamicType
, чтобы запустить оценку после того, как динамический тип связан. ( I19908 )
Исправления ошибок
- Объект аниматора будет использоваться для последующих анимаций одного элемента. ( Ia3be9 )
Версия 1.0.0-Alpha04
22 февраля 2023 года
androidx.wear.protolayout:protolayout-*:1.0.0-alpha04
выпускается. Версия 1.0.0-Alpha04 содержит эти коммиты.
Новые возможности
-
ObservableStateStore
теперь сообщает слушателям, когда ключ тоже удаляется. - Мы добавили версию схемы рендеринга и шкалу шрифтов в
DeviceParameters
(которые можно использовать для условного создания макетов в ответ на различные версии и настройки шрифта). - Мы добавили поддержку для анимации значений
DynamicInt32
( I05485 ) - Мы добавили триггеры
OnLoad
иOnConditionalMet
. Они могут быть использованы для запуска анимации, которые поддерживают триггер. - Мы добавили веса макета для расширенных размеров и размера мин для оберщенных размеров.
- Мы добавили продолжительность и мгновенные динамические типы. Они могут быть использованы для представления временного мгновения или продолжительности в динамическом выражении.
- Мы добавили поддержку
AnimatedVectorDrawable
иSeekableAnimatedVectorDrawable
как ресурсы макета.
API меняется
- Данные датчика требуют API 29+. ( I8099e )
- Мы добавили два вспомогательных метода
launchAction
(для запуски).
Исправления ошибок
- Переименовать
set/getSpec
дляset/getAnimationSpec
в анимации Tiles ( i3d74b )
Версия 1.0.0-Alpha03
8 февраля 2023 года
androidx.wear.protolayout:protolayout-*:1.0.0-alpha03
. Версия 1.0.0-Alpha03 содержит эти коммиты.
Новые возможности
- Мы добавили
toByteArray()
иfromByteArray()
к динамическим типам в библиотеке ProtoLayout-Express. - Мы добавили
toString()
к динамическим типам в библиотеке ProtoLayout-Expression. - Мы добавили поддержку оценки для динамических типов. Класс
DynamicTypeEvaluator
из библиотеки ProtoLayout-Expression-Pipeline может использоваться для оценки (и получения обновленных значений) для ранее создания динамического типа (DynamicString
,DynamicFloat
,…) - Когда анимации нельзя воспроизводить (потому что они отключены оценщиком, или количество запущенных анимаций достигло установленного предела), статические значения, установленные на анимируемом узле, будут использоваться для замены анимации.
Версия 1.0.0-Alpha02
25 января 2023 года
androidx.wear.protolayout:protolayout:1.0.0-alpha02
, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02
и androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02
. Версия 1.0.0-Alpha02 содержит эти коммиты.
Новые возможности
- Строители макета от
androidx.wear.tiles:tiles
переходят наandroidx.wear.protolayout:protolayout
. Те, кто вandroidx.wear.tiles:tiles
будут устареть в одном из следующих альфа -выпусков.
Версия 1.0.0-Alpha01
11 января 2023 года
androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01
и androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01
. Версия 1.0.0-Alpha01 содержит эти коммиты.
Новые возможности
- Этот релиз представляет новую библиотеку «выражение протоалаута» для создания выражений из динамических переменных.
Носить протоалаут
Последнее обновление | Стабильный релиз | Кандидат на выпуск | Бета -версия | Альфа -релиз |
---|---|---|---|---|
26 февраля 2025 г. | 1.2.1 | - | - | 1.3.0-Альфа09 |
Объявление зависимостей
Чтобы добавить зависимость от износа, вы должны добавить в свой проект репозиторий Google Maven. Прочитайте репозиторий Google Maven для получения дополнительной информации.
Добавьте зависимости для артефактов, которые вам нужны в файле build.gradle
для вашего приложения или модуля:
классный
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" }
Котлин
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") }
Для получения дополнительной информации о зависимостях см. Добавить зависимости от сборки .
Обратная связь
Ваш отзыв помогает сделать JetPack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи для улучшения этой библиотеки. Пожалуйста, посмотрите на существующие проблемы в этой библиотеке, прежде чем создать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку Star.
Смотрите документацию по трекеру проблемы для получения дополнительной информации.
Версия 1.3
Версия 1.3.0-Alpha09
26 февраля 2025 г.
androidx.wear.protolayout:protolayout-*:1.3.0-alpha09
выпускается. Версия 1.3.0-Alpha09 содержит эти коммиты .
Новые возможности
- Добавлены экспериментальные модификаторы для
enterTransition
иexitTransition
( i4a4d6 ) - Мы добавили дополнительную платформу для получения состояния видимости полного макета, когда она меняется. ( I250c3 )
- Разрешить инъекционное тестирование приложений и данные платформы в
LayoutElementAssertionsProvider
для оценки динамических значений. ( Ib5fcb ) - Добавить угловые фильтры в библиотеку тестирования ProtoLayout ( IE2361 )
-
ButtonColors
,CardColors
иProgressIndicatorColors
теперь поддерживают метод копирования с дополнительным переопределением некоторых параметров. ( IE2054 )
API меняется
- Добавить поддержку привязки динамической привязки к библиотеке тестирования ( IB98DE )
- Исправьте
imageButton
при использовании с функциейbackgroundImage
путем удаления наложения. Кроме того, позволяйте функцииbackgroundImage
, чтобы позволить указать NULL для цвета наложения, что означает, что наложение не будет применено. ( Ibec3c )
Исправления ошибок
- Изменен метод по умолчанию
hasValueOfType
для выбросаUnsupportedOperationException
вместоIllegalArgumentException
. ( IA36C3 ) - Значения токенов по умолчанию обновляются, чтобы отразить последнюю спецификацию. ( I75d44 )
- Исправление для псевдонизации выпуска, видимая на дуговых линиях в Androidx Tiles Renderer. ( I88190 )
Версия 1.3.0-Alpha08
12 февраля 2025 г.
androidx.wear.protolayout:protolayout-*:1.3.0-alpha08
выпускается. Версия 1.3.0-Alpha08 содержит эти коммиты .
Новые возможности
- Добавить параметр списка
FontSetting
для материала3 текста. ( IC102D ) - Добавлен класс
DynamicDataMap
, который теперь поддерживаетStateBuilder
для лучшего типа безопасного API Kotlin для APP ( I012BA ) - Добавлены заводские методы, такие как
intAppDataKey
для более легкого создания объектовAppDataKey
( ICEA2A ) -
DynamicDataValue
теперь имеет методhasValueOfType(Class<?>)
В дополнение к методамhasInt/hasColor/
.... ( i4f7a6 ) - Мы добавили
errorDim
в Material3 ProtolayoutColorScheme
, для ошибок с высоким приоритетом или экстренных действий, таких как оповещения о безопасности. ( IA17BB ) - Мы добавили охрану от сбоя при доступе к глобальной настройке восстановления, которая была запускается на некоторых платформах, где эта настройка не была предоставлена. ( I01e2c )
API меняется
-
addKeyToValueMapping
переименовано вaddToStateMap
, а методыDynamicDataMap.put
удаляются, поскольку они были избыточными. ( Ibe9dd ) - Материал3 Типография теперь поддерживает ось переменной округлости для системных шрифтов, которые поддерживают эту ось. ProtoLayout
FontSetting
поддерживает ось округлости для шрифтов, которые поддерживают эту ось. ( I33eb5 ) - Переименовано в
multilineAlignment
до выравнивания в методе текста Material3. ( I2b66b ) - Обновите индикатор круговых прогресса, чтобы быть типом поле, также укажите
mainContent
вconstructGraphic
, чтобы быть типом блока ( i5a3dc ) - Лучшая поддержка для использования индикатора круговых прогрессов на графике ( I039DB )
Исправления ошибок
- Разрешить динамические значения в
ColorStop
, а также для угла запуска/конца вSweepGradient
. ( I0146d ) - Документы исправляют. ( I4a63a )
- Обновленный материал 3 компоненты (
graphicCard
иavatarButton
) для обеспечения запасного обстановки, когда размер расширенияweight
не поддерживается (например, ниже API 33). Обновленный текстовый компонент, чтобы задержатьTEXT_OVERFLOW_ELLIPSIZE_END
, когдаTEXT_OVERFLOW_ELLIPSIZE
не поддерживается рендерером. ( I19e2c ) - Обновление DOCS для
PrimaryLayoutMargins
. ( IBAF7B )
Версия 1.3.0-Alpha07
29 января 2025 г.
androidx.wear.protolayout:protolayout-*:1.3.0-alpha07
выпускается. Версия 1.3.0-Alpha07 содержит эти коммиты .
Новые возможности
- Добавлена опция API, чтобы установить различные триггеры для Lottie Animations. Кроме того, добавлен API для триггеров, выпущенных при видении макета ( i8272d )
- Добавлены
border
,visibility
и модификаторыopacity
. ( I6d3dd ) - Добавлена кнопка Avatar к компоненту ProtoLayout Material3. ( Idb5ae )
- Сейчас мы позволяем настраивать маржу (сторона и в некоторых случаях внизу) настраивать в Material3
primaryLayout
. ( IB22F6 ) - Добавьте сегментированный вариант индикатора кругового прогресса. ( I6a648 )
- Добавлен компонент компактной кнопки в ProtoLayout Material3. ( IA3C5C )
- Добавлена кнопка формы таблеток и компоненты кнопки изображения в ProtoLayout Material3. ( IFB88A )
API меняется
-
LayoutModfier.foldIn
теперь называетсяfoldRight
чтобы лучше отражать его ожидаемое поведение ( IDF242 ) -
VisibleOnce
Trigger теперь экспериментальный. ( IB2D26 ) -
withOpacity
от общедоступного API, так как есть альтернатива графической библиотеки. ( I030C2 ) - Переименованные в методах верхнего уровня в
LayoutString.kt
иLayoutColor.kt
чтобы иметь дружеские имена Java. ( I7aff0 ) - Удалены непротоотативные типографы в материале3. ( Idd9ae )
- Добавьте цвет суффикса в поля в классах
*Colors
в Material3. ( I2d114 )
Исправления ошибок
- Добавить
EdgeButton
Swarkback реализацию для более старого рендеринга без асимметричных углах поддержки. ( I63364 ) - Добавьте резервную реализацию индикатора кругового прогресса со старым рендерером. ( I0f134 )
Версия 1.3.0-Alpha06
15 января 2025 г.
androidx.wear.protolayout:protolayout-*:1.3.0-alpha06
выпускается. Версия 1.3.0-Alpha06 содержит эти коммиты .
Новые возможности
-
LayoutColor
для поддержки как статических, так и динамических типов цвета ( i4c89b ) - Добавлено
ProtoLayout Material3
Textbutton Component. ( Id680d ) - Добавить
iconButton
ProtoLayout Material3 Компонент. ( ICA3F0 ) - Добавлено ProtoLayout Material3 Container Component. ( I17A38 )
- Добавлена поддержка цепных семантических модификаторов для ProtoLayout-Material3 ( i4AF62 )
- Добавлено ProtoLayout Material3 Одно сегмент
CircularProgressIndicator
( I2C8A2 ) - Добавленные
padding
, модификаторыmetadata
( i8720a ) - Добавлено
background
модификаторы,clip
иclickable
( i35478 ) - Добавьте
LinearGradient
, чтобы почистить и позволить его использовать в фоновом модификаторе. ( IC4DEA ) - Добавьте небольшой размер для AppCard и
titleCard
. ( I91f98 ) - Добавлено ProtoLayout Material3 Компонент
graphicDataCard
. ( I92be7 ) - Добавлено ProtoLayout Material3
iconDataCard
и компонентыtextDataCard
. ( I4e1e4 ) - Добавлено ProtoLayout Material3 Компонент
appCard
. ( ID4C57 ) - Аннотация
EdgeButtonColors
кButtonColors
. ( 183624 ) - Добавлено ProtoLayout Material3 Компонент
titleCard
. ( I2dc72 )
API меняется
- ProtoLayout Material3 API теперь принимает
LayoutString
для поддержки как статических, так и динамических текстов. ( I9c24a )
Исправления ошибок
- Добавьте внедрение рендеринга для надувания
DashedArcLine
( I0C700 ) - Изменение рендеринга для разрешения
ArcSpacer
принять длину DP. ( I1437b )
Версия 1.3.0-Alpha05
11 декабря 2024 г.
androidx.wear.protolayout:protolayout-*:1.3.0-alpha05
выпускается. Версия 1.3.0-Alpha05 содержит эти коммиты .
Новые возможности
- Добавлены
LayoutString
для поддержки строковых полей для привязки. ( IDA650 ) - Добавлено
ProtoLayout Material3
CARD Container Component. ( IC985A )
Исправления ошибок
- В этой библиотеке теперь используются аннотации jspecify Nullness , которые являются типовым использованием. Разработчики Kotlin должны использовать следующие аргументы компилятора для обеспечения правильного использования:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
( id1f9b , b/326456246 )
Версия 1.3.0-Alpha04
13 ноября 2024 г.
androidx.wear.protolayout:protolayout-*:1.3.0-alpha04
выпускается. Версия 1.3.0-Alpha04 содержит эти коммиты .
Новые возможности
- Обновленная форма Material3 - это класс с полями, которые содержит фактическое угловое значение, так же, как и в износ. ( IED8CD )
- Обновленные материалы3 цвета, включающие концепцию
ColorScheme
, так же, как в Wear Compose. ( If645e ) - Добавьте несколько обычно используемых сочетания в библиотеку тестирования. ( IE5CEC )
Версия 1.3.0-Alpha03
30 октября 2024 г.
androidx.wear.protolayout:protolayout-*:1.3.0-alpha03
. Версия 1.3.0-Alpha03 содержит эти коммиты .
Новые возможности
- Добавить
LayoutElementAssertionsProvider
,LayoutElementAssertion
иLayoutElementMatcher
в библиотеку тестирования ( ID1110 )
Версия 1.3.0-Alpha02
16 октября 2024 года
androidx.wear.protolayout:protolayout-*:1.3.0-alpha02
выпускается. Версия 1.3.0-Alpha02 содержит эти коммиты .
Новые возможности
- Первоначальная версия материала 3 библиотеки. Включает
text
,edgeButton
,buttonGroup
иprimaryLayout
Components.
Исправления безопасности
- На момент изменения Androidx компилируется против Protobuf 4.28.2, чтобы решить CVE-2024-7254 . Обновите свою зависимость от версии 1.3.0-Alpha01
androidx.wear.protolayout:protolayout-proto
иandroidx.wear.protolayout:protolayout-external-protobuf
до 1.3.0-ALPHA02, чтобы учесть риск уязвимости.
Внешний вклад
Версия 1.3.0-Alpha01
2 октября 2024 г.
androidx.wear.protolayout:protolayout-*:1.3.0-alpha01
выпускается. Версия 1.3.0-Alpha01 содержит эти коммиты .
Исправления ошибок
- Уточнил, что доступность семейных имен Font Roboto и Roboto Flex зависит от устройств. ( I193be )
- Включено семейство roboto flex font в рендерере Androidx Tile. ( I08E94 )
Версия 1.2
Версия 1.2.1
16 октября 2024 года
androidx.wear.protolayout:protolayout-*:1.2.1
выпускается. Версия 1.2.1 содержит эти коммиты .
Исправления безопасности
- На момент изменения Androidx компилируется против Protobuf 4.28.2, чтобы решить CVE-2024-7254 . Обновите свою зависимость от версии 1.2.0 of
androidx.wear.protolayout:protolayout-proto
иandroidx.wear.protolayout:protolayout-external-protobuf
до 1.2.1, чтобы устранить риск уязвимости.
Версия 1.2.0
7 августа 2024 года
androidx.wear.protolayout:protolayout-*:1.2.0
выпускается. Версия 1.2.0 содержит. эти коммиты .
Важные изменения с 1.1.0
-
FontStyle
был обновлен, чтобы иметь дополнительную поддержку шрифтов для переменных оси и лучшего API выбора шрифтов для поддержки предстоящих гибких шрифтов. - Поддержка дополнительных модификаторов:
- Модификатор преобразования предлагает перевод, вращение и масштабирование с помощью или без анимации.
- Указание различных значений (горизонтальные и вертикальные) для каждого углового радиуса.
- Улучшенная доступность всех сенсорных целей, расширяя область нагрузки любого элемента, который использует кликабельный модификатор, который составляет не менее
48dp
на48dp
. - Улучшение
PrimaryLayout
иEdgeContentLayout
, добавивsetResponsiveContentInsetEnabled
, чтобы лучше поддерживать отзывчивое поведение этих макетов в разных размерах экрана и улучшить согласованность плиток. - Улучшение масштабирования/некачественного текста материала для нелинейного масштабирования шрифтов Android 14.
- Улучшенная поддержка направления макета RTL на всех элементах дуги.
Дополнительные изменения
- Более полный набор изменений, представленных в версии 1.1.0, см. Примечания к выпуску Beta01 .
Версия 1.2.0-RC01
24 июля 2024 года
androidx.wear.protolayout:protolayout-*:1.2.0-rc01
выпускается. Версия 1.2.0-RC01 содержит эти коммиты .
Исправления ошибок
- Мы исправили стандартный чип материала, чтобы его можно было использовать в качестве значка, только если не пройден ни один из первичных или вторичных метки. ( ICEEF9 )
- Документация для макетов материала была обновлена, чтобы включить визуальные эффекты со соответствующей страницы для облегчения понимания макетов. ( I0256A )
Версия 1.2.0-бета01
10 июля 2024 года
androidx.wear.protolayout:protolayout-*:1.2.0-beta01
. Версия 1.2.0-бета01 содержит эти коммиты .
Новые возможности
Выпуск 1.2.0-бета-бита01 износа показывает, что этот выпуск библиотеки завершен, а API заблокирован (за исключением случаев, когда отмечается как экспериментальный). Wear ProtoLayout 1.2 включает в себя следующие новые функции и API:
-
FontStyle
был обновлен, чтобы получить дополнительную поддержку шрифтов следующим образом:- Установка различных настройки вариации шрифта, таких как
FontSetting.weight
иFontSetting.width
- Установка одинаковой ширины для всех числовых символов - табличные цифры (настройка функции шрифта
FontSetting.tnum
) - Улучшенные API -интерфейсы выбора шрифтов для поддержки предстоящих гибких шрифтов, указав использование предпочтительных фамилий для шрифтов.
- Установка различных настройки вариации шрифта, таких как
- Расширенный
Corner
модификатор, чтобы поддержать определение каждогоCornerRadius
с отдельными горизонтальными и вертикальными значениями, чтобы позволить строительные элементы с асимметричными углами. - Добавлен новый модификатор
Transformation
, предлагающий перевод, вращение и масштабированиеLayoutElement
. Эти преобразования могут быть анимированы с помощью динамических значений. - Добавлены
setArcDirection
сClockwise
,CounterClockwise
иNormal
параметрами для всех элементов дуги (Arc
,ArcLine
иArcText
) для лучшей поддержки в разных направлениях макета (например, LTR и RTL). - Улучшенная доступность всех сенсорных целей, расширяя область нагрузки любого элемента, который использует
Clickable
модификатор, который составляет не менее48dp
на48dp
. - Улучшение
PrimaryLayout
иEdgeContentLayout
, добавивsetResponsiveContentInsetEnabled
, чтобы лучше поддерживать отзывчивое поведение этих макетов в разных размерах экрана и улучшить согласованность плиток. Добавлено предупреждение Linter, чтобы предложить использование этих API с быстрым решением. - Улучшение масштабирования/некачественного
Text
материала для нелинейного масштабирования шрифтов Android 14.
API меняется
- Семейство по умолчанию по умолчанию (
DEFAULT_SYSTEM_FONT
) удаляется, так как это подразумевается, не используя APIpreferredFontFamilies
. ( I39dab ) - Параметр, переданный в
FontSetting.width
должен быть положительной. ( I1266f )
Версия 1.2.0-Alpha05
26 июня 2024 г.
androidx.wear.protolayout:protolayout-*:1.2.0-alpha05
выпускается. Версия 1.2.0-Alpha05 содержит эти коммиты .
Новые возможности
- Добавьте метод
hasText
вMaterial.CompactChip
, чтобы проверить, был ли установлен текстовый содержимое. ( I6e8fc )
API меняется
- Const
FontFamily
перемещается, чтобы быть вFontStyle
, а не в классе. ( I06ced ) - Обновление
FontSetting.weight
иFontSetting.width
API для включения аннотаций диапазона и параметра изменения веса, чтобы быть int. ( Ia726c )
Исправления ошибок
- Немасштабируемые тексты в библиотеке материалов теперь работают правильно с нелинейным масштабированием шрифтов Android 14. ( I6601e )
Версия 1.2.0-Alpha04
29 мая 2024 г.
androidx.wear.protolayout:protolayout-*:1.2.0-alpha04
выпускается. Версия 1.2.0-Alpha04 содержит эти коммиты .
API меняется
- Добавлены API асимметричных углов, чтобы иметь возможность отдельно указывать радиус каждого углу с 2 значениями. ( ICBD69 )
- Расширил API
FontSetting
, чтобы включить: - Добавлены API Font Family API в
FontStyle
, чтобы позволить указать список заказов, из которого следует использовать семейства шрифтов. ( IBA9F5 ) - Переименованные константы для высоты пространства между контентом и вторичной меткой в Mabority
LayoutDefaults
, которые первоначально были предварительно профиксированы с помощью «контента края», чтобы быть более общими, поскольку их можно применить как кPrimaryLayout
, так иEdgeContentLayout
. ( I4dc32 )
Исправления ошибок
- Переименовано в именование для переменных осей шрифтов от
axisName
доaxisTag
. ( I02ba3 )
Версия 1.2.0-Alpha03
14 мая 2024 года
androidx.wear.protolayout:protolayout-*:1.2.0-alpha03
выпускается. Версия 1.2.0-Alpha03 содержит эти коммиты .
Новые возможности
- Добавлен API для установки пользовательских значений веса для
FontStyle
. ( I7390a )
Исправления ошибок
- Исправьте сбой в
getTouchDelegateInfo
из -за пустой карты цели. ( I2accf )
Версия 1.2.0-Alpha02
1 мая 2024 года
androidx.wear.protolayout:protolayout-*:1.2.0-alpha02
выпускается. Версия 1.2.0-Alpha02 содержит эти коммиты .
API меняется
- Мы добавили поддержку для отключения обратной связи с пульсацией по отдельным кликабельным элементам. ( If1ede )
- API для трансформации был удален из
ArcModifiers
, поскольку они не поддерживают эту функцию ( IC0827 ) -
ArcDirectionProp
Builder теперь ожидает значения в конструкторе. ( I76ada ) - Метод
PlatformDataValues.Builder.putAll
позволит объединить однуPlatformDataValue
в другую. ( I50ba3 ) -
Text#setIsScalable
переименован вText#setScalable
. ( If920e ) - Текст материала может установить, использовать ли масштабируемый размер (растет при изменении размера шрифта пользователя) или нет. ( IBC849 )
- Мы добавили опцию, чтобы установить описание контента в
TitleChip
. ( I5d21f ) - Исправлено
CompactChip
для правильной работы только с значком и обновите API, чтобы разрешить эту опцию. ( I6589e )
Исправления ошибок
- Исправлена проблема потенциальных дубликатов данных платформы во время инициализации. ( Iba0fd )
- Представьте новый Getter в
DynamicDataNode
, чтобы получить стоимость узла. Стоимость используется при получении квоты динамического узла. В настоящее время узлы с фиксированными значениями будут иметь стоимость 0, все остальные узлы будут иметь стоимость 1 ( IA33E1 ) - Удалите логику подсчета из
NO_OP_QUOTA_MANAGER
. ( IB50B8 ) - Мы добавили правило Lint, чтобы сообщить о предупреждении, когда
PrimaryLayout
используется безsetResponsiveContentInsetEnabled
и обеспечения быстрого решения. ( I12025 ) - Существует предел ряда узлов динамического выражения. ( Iffae8 )
Версия 1.2.0-Alpha01
6 марта 2024 года
androidx.wear.protolayout:protolayout-*:1.2.0-alpha01
выпускается. Версия 1.2.0-Alpha01 содержит эти коммиты .
Новые возможности
- Элементы
ProtoLayout Arc
теперь имеют возможность добавить к немуArcDirection
(Clockwise
,Counterclockwise
Normal
). Добавление такого поведения вArc
,ArcLine
илиArcText
исправят свое поведение на макетах RTL. ( I90699 ) -
EdgeContentLayout
был обновлен с помощью нового сеттераsetResponsiveContentInsetEnabled
для достижения лучшего выравнивания с руководящими принципами UX, последовательности в плитках путем наличия первичной метки на фиксированном месте на вершине и отзывчивой вставки для меток. ( I60175 ) - Мы добавили
PrimaryLayout.setResponsiveContentInsetEnabled
, который добавляет отзывчивый вставка к первичной метке, вторичной метке и нижней чипе в этом макете, чтобы избежать того, что контент выходит с края экрана. ( I0c457 ) - Добавляет метод для удаления внешних краев из
CircularProgressIndicator
, чтобы его можно было использовать в качестве меньшего компонента. ( I55c06 )
API меняется
- Плотный рендеринг теперь исключает заполнение шрифтов по всем текстовым элементам по умолчанию, без возможности включить его. ( I3e300 )
Исправления ошибок
- Исправленная проблема выравнивания текста, когда в тексте используются все, когда EllipSize, расстояние между буквами и центр выравнивания. ( I716c7 )
- Добавьте обходной путь для проблемы рисования дуги Skia. ( I08F09 )
- Исправьте направление чертежа
ArcLine
для макетов RTL. ( I6c141 )
Версия 1.1
Версия 1.1.0
7 февраля 2024 года
androidx.wear.protolayout:protolayout-*:1.1.0
выпускается. Версия 1.1.0 содержит эти коммиты.
Важные изменения с 1.0.0
- Поддержка градиента и лучшее представление длины, превышающих 360 градусов в
ArcLine
. - Форматирование даты времени поддерживает разные часовые пояса для динамических типов данных.
- Лучший текст автоматического и эллипсизируют параметры для обработки усеченного текста.
- Пространство поддерживает расширенные размеры с дополнительным весом.
- Схема версии аннотации для всех API -интерфейсов
ProtoLayout
. - Расширенная целевая область на любой
Clickable
элемент до 48 DP x 48 DP, чтобы удовлетворить требования к доступности. - Подготовка шрифта отключается по умолчанию и является единственным поведением для всех текстовых элементов и компонентов материала, которые содержат текст.
Дополнительные изменения
- Более полный набор изменений, представленных в версии 1.1.0, см. Примечания к выпуску Beta01 .
Версия 1.1.0-RC01
24 января 2024 года
androidx.wear.protolayout:protolayout-*:1.1.0-rc01
выпускается. Версия 1.1.0-RC01 содержит эти коммиты.
Исправления ошибок
-
PlatformTimeUpdateNotifierImpl
GTACES сразу после включения обновления. ( I77145 ) -
CircularProgressIndicator
был зафиксирован для макетов RTL. С этого момента он пойдет по часовой стрелке во всех случаях. ( I95ee3 ) - Добавьте обходной путь для проблемы рисования дуги Skia. ( I08F09 )
Версия 1.1.0-бета01
10 января 2024 года
androidx.wear.protolayout:protolayout-*:1.1.0-beta01
выпускается. Версия 1.1.0-beta01 содержит эти коммиты.
Новые возможности
Выпуск 1,1.0-бета-бита01 износого протоалаута указывает, что этот выпуск библиотеки завершен, а API заблокирован (за исключением случаев, когда отмечается как экспериментальный). Wear ProtoLayout 1.1 включает в себя следующие новые функции и API:
-
ArcLine
теперь поддерживает градиент, добавляяBrush
сSweepGradient
и имея тень на крышке, чтобы лучше представлять длину, превышающую 360 градусов, добавивShadow
на существующуюStrokeCap
. -
DynamicInstant
обладает поддержкой форматирования зонированного даты.DynamicInstant
иDynamicDuration
может использоваться в качестве типов данных или платформы. - Автозиция функции для размера текста, которая позволяет устанавливать несколько размеров в
FontStyle.setSizes
, где размер текста будет автоматически масштабироваться на основе пространства, которое он имеет внутри родителя. Кроме того, мы улучшили параметры эллипса для текста, который переполняется, добавивTEXT_OVERFLOW_ELLIPSIZE
и выпустивTEXT_OVERFLOW_ELLIPSIZE_END
. -
Spacer
теперь поддерживает расширение размеров с дополнительным весом. Для BuildingExpandedDimensionProp
мы добавили вспомогательный методDimensionBuilders.weight
. - Поддержка динамического укрытия и непрерывных элементов макета с
Modifier.visible
. Это включает в себя наличие динамических значений вBoolProp
. - Все API -интерфейсы
ProtoLayout
теперь имеют аннотация требований к схеме и версии, прежде чем вызовать новый API. - Каждый элемент, который теперь имеет
Clickable
имеет свою целевую область, продленную не менее 48x48 в рендерере, чтобы лучше поддерживать требования к доступности. - Следуя другим компонентам материала и составлению инициатив, мы теперь отключили подготовку Font по умолчанию по всем
Text
элементам. Кроме того,AndroidTextStyle
и связанные срезы были удалены из публичного API. С следующими исправлениями ошибки: - Добавлен сеттер для позиционирования содержимого края в
EdgeContentLayout
, чтобы он мог быть расположен перед другим контентом. - Последовательно бросая исключение при столкновении с непризнанным значением перечисления.
- Несмотря на то, что он приводит к неверному численному значению (NAN или Infinite) или бросает
ArithmeticException
.
API меняется
- Обновления для API
SweepGradient
, чтобы разрешить принимать либо цвета, либоColorStops
в конструкторе. ( I6676f )
Исправления ошибок
- Добавление ограниченной поддержки API и рендеринга для установки направления, в котором нарисованы элементы дуги. ( IDEF5A )
-
RoundMode
по умолчанию поFloor
вFloatToInt32Node
, когда не указано. Узел по -прежнему вызовет исключение, если предоставленнаяRoundMode
не будет признан. ( I1b2d8 )
Версия 1.1.0-Alpha04
13 декабря 2023 года
androidx.wear.protolayout:protolayout-*:1.1.0-alpha04
выпускается. Версия 1.1.0-Alpha04 содержит эти коммиты.
Новые возможности
-
VersionInfo
Class не реализуетComparable
интерфейс. ( I8d13c ) - Renderer теперь поддерживает опцию
TEXT_OVERFLOW_ELLIPSIZE
. ( I7f085 )
API меняется
- Параметр переполнения текста
TEXT_OVERFLOW_ELLIPSIZE_END
теперь устарел. Пожалуйста, используйте новый APITEXT_OVERFLOW_ELLIPSIZE
с очень похожим поведением. ( I822d8 ) - Следуя другим компонентам материала и составлению инициатив, мы теперь отключили подготовку Font по умолчанию по всем текстовым элементам. Кроме того,
AndroidTextStyle
и связанные срезы были удалены из публичного API. ( I79094 , IB0B03 , I32959 , IAF7D5 , IFA298 , I0A4AE , IDA9D3 ) -
Modifier.hidden
заменяетсяModifier.visible
. -
FontStyle#setSizes
теперь принимает int вместо аргументовSpProp
. ( I02B37 )
Исправления ошибок
- Выберите исключение при столкновении с неопределенным или непризнанным значением перечисления. ( I9d2cf )
- Рефактор
DynamicTypeBindingRequest
. ( I27b57 ) - Invalidate the result of an expression when it yields an invalid numeric value (NaN or infinite) or throws an
ArithmeticException
. ( I681ae )
Version 1.1.0-alpha03
November 29, 2023
androidx.wear.protolayout:protolayout-*:1.1.0-alpha03
is released. Version 1.1.0-alpha03 contains these commits.
Новые возможности
- Add experimental support for dynamically hiding/unhiding layout elements ( I64a78 )
- Add dynamic value support to
BoolProp
( I2fe96 ) - Add schema version requirement annotation to
ProtoLayout
APIs ( I0f03c ) - Extending the API with the new option in
TextOverflow
for ellipsizing the Text in a fixed parent container even when max lines is not reached (but there's not enough space for Text). ( I110a9 ) - Added helper method
DimensionBuilders.weight
for buildingExpandedDimensionProp
with weight. ( I4f72b ) -
DynamicInstant
andDynamicDuration
can be used as state or platform data types. ( I6819f )
API Changes
- Update The API to hide
DynamicZonedDateTime
and move all its operations toDyanamicInstant
( I34b94 ) - Spacer now supports Expanded dimension for width/height. ( Ie7c94 )
- Support click target area extension in Renderer ( I39c79 )
Version 1.1.0-alpha02
November 15, 2023
androidx.wear.protolayout:protolayout-*:1.1.0-alpha02
is released. Version 1.1.0-alpha02 contains these commits.
Новые возможности
- Added an
ArcLine
StrokeCap
Shadow
field to the API. ( I830ec ) - Extending the API to be able to specify Spacer's width or height to expand. ( I757ca )
- We have added an experimental API to automatically scale the text size based on the space it has inside of the parent. ( Ibbe63 )
- Support minimum clickable size ( I178e3 )
- Added renderer support for
StrokeCap
Shadow
. ( I48b17 ) - Add renderer support for Sweep Gradient in
ArcLine
. ( I4d5bb )
Version 1.1.0-alpha01
18 октября 2023 г.
androidx.wear.protolayout:protolayout-*:1.1.0-alpha01
is released. Version 1.1.0-alpha01 contains these commits.
Новые возможности
- Added a brush option to
Arcline
, with support forSweepGradient
. ( Ie7ce3 ) - Added support for zoned date-time formatting. ( Ibfae0 )
- Added protos and java Wrappers required for zoned date-time formatting. ( I97126 )
- Added getters for reading back the value stored in a
DynamicDataValue
. ( Ie6cea ) - Added a setter for positioning the edge content in
EdgeContentLayout
so it can be positioned before other content. ( Ie8e8a )
Bug Fixes
- Fixed an issue when an expression with multiple time data source registrations was not being updated immediately. ( I8e1a8 )
- Fixed a bug to center root element during diff updates. ( Ie48f7 )
- Unset (or empty) layout constraint values will not be ignored anymore. ( Ibc785 )
- Reduced delay between a layout becoming visible and its pipeline nodes being initialized. ( I38d4e )
Версия 1.0
Версия 1.0.0
9 августа 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0
is released. Version 1.0.0 contains these commits.
Major features of 1.0.0
ProtoLayout library introduces APIs for creating layouts and expressions that can be used across different Wear OS surfaces. For example Tiles library uses these APIs to support platform data binding (for faster tile data updates) and animations.
Version 1.0.0-rc01
July 26, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-rc01
is released. Version 1.0.0-rc01 contains these commits.
- To migrate from Tiles to
ProtoLayout
, please follow the instructions here .
API Changes
- We have removed
setLayoutConstraintForDynamicAnchorAngle
andgetLayoutConstraintForDynamicAnchorAngle
methods from Arc element. These methods have been added by mistake and they didn't have any effect on the provided layout. ( If7d01 ) - We have limited the maximum depth that a
ProtoLayout
's layout can have to 30 nestedLayoutElements
. ( I8a74b )
Bug Fixes
- We have added a check to throw if
DynamicColor
has been set for aSpanText
. ( I0e5bc ) - It is clarified that
DAILY_CALORIES
data source unit is kcal. ( Iaa785 )
Version 1.0.0-beta01
June 21, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-beta01
is released. Version 1.0.0-beta01 contains these commits.
Новые возможности
- Allow setting clock for time binding tests. ( I05622 )
API Changes
-
PlatformDataReceiver.onData()
andStateBuilders.Builder.addKeyToValueMapping
now accept type-safe mapping ofDynamicDataKey
toDynamicDataValue
rather than unsafe generics. That means thatDynamicDataValue
is now typed with itsDynamicType
.HEART_RATE_ACCURACY_X
constants moved to the root ofPlatformHealthSources
, to match other Android constants positioning.HEART_RATE_ACCURACY_X
int constants are now used directly inDynamicHeartRateAccuracy.constant()
andDynamicHeartRateAccuracy.dynamicDataValueOf()
instead of value constant. ( I82ff5 ) - The
PlatformHealthSources.Constants
class was instantiable by mistake. This has been fixed now. ( Icb849 ) -
PlatformTimeUpdateNotifier#setReceiver
now receivesRunnable
instead ofSupplier
function andExecutor
to notify on. ( I9d938 ) - We have changed the parameter type in the
PlatformTimeUpdateNotifier#setReceiver
fromCallable
toSupplier
. ( I664bf ) -
CompactChip
andTitleChip
now support adding an icon to it. ( I5a01e )
Bug Fixes
- Update Prop messages with dynamic fields to use oneof instead ( I81739 )
- Reuse setters implementation for overloads that have setters ( Ied70c )
- Properly record fingerprints in setters that have overloads ( I86ed2 )
Version 1.0.0-alpha11
June 7, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha11
is released. Version 1.0.0-alpha11 contains these commits.
Новые возможности
- We've added a
PlatformDataKey
for heart rate accuracy. ( I7f9b8 )
API Changes
- Rename
StateBuilders#getIdToValueMapping
togetKeyToValueMapping
and change the return type toMap<<AppDataKey<?>,DynamicDataValue>
. ( Iaa7ae ) - Make
StateStore
a final class ( I408ca ) -
TimeGateway
interface has been replaced byPlatformTimeUpdateNotifier
inprotolayout-expression-pipeline
library which provides desired frequency for updating time data. ( I60869 ) - Rename
register
/unregisterForData
inPlatformDataProvider
toset
/clearReceiver
( I14b02 ) - In Material Text,
getExcludeFontPadding
has been renamed tohasExcludeFontPadding
. ( Iea01d ) - Setter for perfectly aligning label was added to all chip components. All chips now have min tappable target applied. ( I8ae92 )
-
LayoutDefaults#BUTTON_MAX_NUMBER
has been renamed toMAX_BUTTONS
. ( I84788 ) -
DAILY_DISTANCE
is renamed toDAILY_DISTANCE_M
. ( I4f758 )
Bug Fixes
- Update Prop types docs to clarify why static value is enforced. Specify the default value used if static value wasn't provided. ( I155aa )
-
PlatformDataKey
namespaces should follow Java style naming. ( I47bda )
Version 1.0.0-alpha10
May 24, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha10
is released. Version 1.0.0-alpha10 contains these commits.
Новые возможности
- Add
AppDataKey
for accessing app pushed state; AddPlatformDataKey
for accessing platform data; Add namespace support inStateStore
. ( I7985e ) - Support
Equal
andNotEqual
operations forDynamicBool
. ( I6a0c1 )
API Changes
-
FontStyles
class is now final ( Iaa2ea ) -
LayoutElementBuilders#FontStyles
has been deprecated. Please useandroidx.wear.protolayout.Typography
or create your ownFontStyle
. ( Ic929b ) - Hide
Action#Builder
nested interface fromAction
interface. Implementations of Builder are already provided byLoadAction
andLaunchAction
classes. ( I1d70c ) - Allow using
DynamicFloat
withFloatProp
. Note thatFloatProp
do no require layout constraints as it's not used as a layout changing prop. ( I286ac ) - The
LoalAction
andSetStateAction
actions are removed as they were not really supported yet. ( I5d6a6 ) - Added support for ARGB_8888 format for inline image resources. ( I8a07c )
- Rename
StateEntryValue
toDynamicDataValue
, and update the state APIS to use theDynamicDataKey
( If1c01 ) - We are limiting the number of entries that are allowed in the
StateStore
in order to ensure that memory usage and state update time are well contained and controlled for each instance of theStateStore
. As a result, the developer needs to ensure that they do not have more thanMAX_STATE_ENTRY_COUNT
entries in the map otherwise they will get anIllegalStateException
when creating or updating theStateStore
. ( Ibadb3 ) - Hide
OnLoadTrigger
andOnConditionMetTrigger
classes, and renamesetTrigger
tosetCondition
forOnConditionMetTrigger
. ( Ibf629 ) - For performance and compatibility reasons, the
ProtoLayout
renderers won't support the full set of features inAnimatedVectorDrawable
resources. We're marking those APIs as experimental until we can define the supported set. ( Ic6daf ) - Added dynamic types for daily distance, daily calories and daily floors. Keys for platform health sources are now under
PlatformHealthSources.Keys
( Ib7637 ) - The
Easing.cubicBezier
method replaces theCubicBezierEasing.Builder
. With that theEasingFunction
class is removed and the easing constants from that class are now directly accessible from theEasing
interface. In additionsetInfiniteRepeatable
is replaced byINFINITE_REPEATABLE_WITH_RESTART
andINFINITE_REPEATABLE_WITH_REVERSE
( Ib41e7 ) - Implement
PlatformDataProvider
to provide heart rate and daily steps.SensorGateway
interface is removed from public API. ( I55b84 ) - Add
PlatformDataProvider
, and updateStateStore
to register toPlatformDataProvider
when the provider's supported key is required by node from expression pipeline. ( Ib616a ) -
SensorGateway
is no longerCloseable
as it no longer maintains any state. ( I6b4f7 ) - Allow using
FloatProp
withDynamicFloat
for progress inCircularProgressIndicator
. This is supported for renderers supporting version 1.2. Old renderers will fallback to thestaticValue
if provided, otherwise to 0 ( I0d91b ) -
MultiButtonLayout
constants have been refactored intoLayoutDefaults.MultiButtonLayoutDefaults
class which now contains those for button sizes depending on a number of buttons in the layout. ( I13973 ) - Support using
StringProp
withDynamicString
in Material Text. This is supported for renderers supporting version 1.2. Old renderers will fallback to the provided static value. UpdateText#getText
return type fromString
toStringProp
. ( I7275b )
Version 1.0.0-alpha09
May 10, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha09
is released. Version 1.0.0-alpha09 contains these commits.
Новые возможности
- We've added an experimental extension layout element. Note that this can't be used by default and requires a renderer extension capable of understanding the layout element. ( I6581d )
- Added
StrokeCap
support forArcLine
. ( I94951 ) - Added support for Conditional Instant operation. ( I489a7 )
- Added support for Conditional Duration operation. ( Iab469 )
- Added support for creating duration from seconds. ( Ib5fa1 )
API Changes
-
enable/disablePlatformSource
methods have been removed fromDynamicTypeEvaluator
. The caller should be responsible for updates. ( I78c6d ) - Allow capping the size of bound data types. ( Ie2966 )
- Add support for dynamic content description in
protolayout-material
. ( I62c8e ) - Use long and
@IntRange
for duration and delay in AnimationParameters. ( I388b6 )
Version 1.0.0-alpha08
19 апреля 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha08
is released. Version 1.0.0-alpha08 contains these commits.
Новые возможности
-
AndroidTextStyle
has been added toLayoutElementBuilders
. ( I8d967 ) - We have added support for setting excluding font padding in
ProtoLayout
Material Text. ( I17f5d ) - ARGB_8888 is now supported for inline images. ( I18c1e )
-
DynamicColor
now supportsonCondition
operation. ( I10927 )
API Changes
- Support custom duration for reverse animation ( I3251f )
- We've added the
SemanticDescription
modifier. In addition,ContentDescription
is not bindable. ( I3f1d ) - The
DynamicBool.isFalse()
method is now replaced withDynamicBool.negate()
and theDynamicBool.isTrue()
is removed. In addition NaNDynamicFloat
values and narrowing aDynamicInt32
to aDynamicFloat
now emit an invalid dynamic result. ( I6ac1e ) - Int and float formatters now use the Builder pattern. ( Ieb213 )
Bug Fixes
- Fallback static value has been removed from animatable fields. ( Ifcb01 )
-
DynamicTypeValueReceiver#onPreUpdate
has been removed. ( I2dc35 ) - Length of Strings in dynamic expressions are now capped. ( I4c93 )
- The gradle dependencies are now correctly set to
api
instead ofimplementation
when required. ( I40503 )
Version 1.0.0-alpha07
April 5, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha07
is released. Version 1.0.0-alpha07 contains these commits.
Новые возможности
API Changes
-
sensorGateway#registerSensorGatewayConsumer
takes data type as a parameter instead of method in Consumer. ( Icf314 ) -
ObservableStateStore
has been renamed toStateStore
. ( Ieb0e2 ) - Added
DynamicTypeEvaluator.Builder
instead of constructor arguments to allow more optional arguments, includingObservableStateStore
which now defaults to an empty store. ( I6f832 ) - Refactored order of parameters in
DynamicTypeEvaluator
. ( Ic1ba4 )
Bug Fixes
- Correctly propagate signals from platform sensor sources to downstream nodes ( I5a922 )
Version 1.0.0-alpha06
22 марта 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha06
is released. Version 1.0.0-alpha06 contains these commits.
Новые возможности
- We've added an experimental API for using heart rate and daily steps in dynamic expressions ( Ifd711 )
- We have added support for reverse and forward delay for animations. ( Ic25f7 )
- We've added
DynamicColor
support to Border and Background - We've added dynamic value support to types in
DimensionBuilder
- Layout and components from
tiles-material
are moving toprotolayout-material
API Changes
-
LoadActionListener
has been added toProtoLayoutViewInstance
. ( If7806 )
Bug Fixes
- Added
FloatNodesTest
( Id7281 ) - Fix renderer crash when unable to load structured bitmap.
Version 1.0.0-alpha05
8 марта 2023 г.
androidx.wear.protolayout:protolayout-*:1.0.0-alpha05
is released. Version 1.0.0-alpha05 contains these commits.
Новые возможности
- We've added an experimental "content update" animation to the
Modifiers
object. This animation will trigger whenever the element (with this modifier) or one of its children changes during a layout update. ( bd03e5d )
API Changes
- We've added
forwardRepeatDelayMillis
andreverseRepeatDelayMillis
toRepeatable
. We've also renameddelayMillis
inAnimationSpec
tostartDelayMillis
( Ifb266 ) -
DynamicTypeEvaluator.bind
methods now accept an Executor. ( I346ab ) - We've added the
startEvaluation
method to theBoundDynamicType
to trigger the evaluation after the dynamic type is bound. ( I19908 )
Bug Fixes
- The Animator object will be reused for subsequent animations of a single element. ( Ia3be9 )
Version 1.0.0-alpha04
February 22, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha04
is released. Version 1.0.0-alpha04 contains these commits.
Новые возможности
-
ObservableStateStore
now informs the listeners when a key is removed too. - We've added renderer schema version and font scale to
DeviceParameters
(which can be used to conditionally create layouts in response to different versions and font settings). - We've added support for animating
DynamicInt32
values ( I05485 ) - We've added
OnLoad
andOnConditionalMet
triggers. These can be used to start animations that support a trigger. - We've added layout weight for expanded dimensions and min size for wrapped dimensions.
- We've added duration and instant dynamic types. These can be used to represent a time instant or duration in a dynamic expression.
- We've added support for
AnimatedVectorDrawable
andSeekableAnimatedVectorDrawable
as layout resources.
API Changes
- Sensor data requires API 29+. ( I8099e )
- We've added two
launchAction
helper methods (for launching Activities).
Bug Fixes
- Rename
set/getSpec
toset/getAnimationSpec
in Tiles animation ( I3d74b )
Version 1.0.0-alpha03
February 8, 2023
androidx.wear.protolayout:protolayout-*:1.0.0-alpha03
is released. Version 1.0.0-alpha03 contains these commits.
Новые возможности
- We have added
toByteArray()
andfromByteArray()
to Dynamic types in protolayout-express library. - We have added
toString()
to Dynamic types in protolayout-expression library. - We have added evaluation support for Dynamic types. The
DynamicTypeEvaluator
class from the protolayout-expression-pipeline library can be used to evaluate (and receive updated values) for a previously create Dynamic type (DynamicString
,DynamicFloat
, …) - When animations can't be played (either because they are disabled by the evaluator, or the number of running animations has reached the set limit), the static values set on the animatable node will be used to replace the animation.
Version 1.0.0-alpha02
January 25, 2023
androidx.wear.protolayout:protolayout:1.0.0-alpha02
, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02
, and androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02
are released. Version 1.0.0-alpha02 contains these commits.
Новые возможности
- Layout builders from
androidx.wear.tiles:tiles
are moving toandroidx.wear.protolayout:protolayout
. The ones inandroidx.wear.tiles:tiles
will be deprecated in one of the next alpha releases.
Version 1.0.0-alpha01
January 11, 2023
androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01
and androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01
are released. Version 1.0.0-alpha01 contains these commits.
Новые возможности
- This release introduces a new library "ProtoLayout Expression" for creating expressions from dynamic variables.