Wear Protolayout
最新更新 | 稳定版 | 候选发布版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 8 月 7 日 | 1.2.0 | - | - | - |
声明依赖项
要添加对 wear-protolayout 的依赖项,您必须将 Google Maven 存储库添加到您的项目中。阅读Google 的 Maven 存储库以获取更多信息。
在应用或模块的build.gradle
文件中添加所需构件的依赖项
Groovy
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") }
有关依赖项的更多信息,请参阅添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新的问题或有改进此库的想法,请告诉我们。在创建新问题之前,请查看此库中现有的问题。您可以通过点击星形按钮为现有问题添加您的投票。
有关更多信息,请参阅问题跟踪器文档。
版本 1.2
版本 1.2.0
2024 年 8 月 7 日
androidx.wear.protolayout:protolayout-*:1.2.0
已发布。版本 1.2.0 包含。这些提交。
自 1.1.0 以来重要更改
FontStyle
已更新,以支持变量轴的更多字体,并提供更好的字体选择 API 以支持即将推出的 Flex 字体。- 其他修饰符支持
- 转换修饰符提供带或不带动画的平移、旋转和缩放。
- 为每个圆角指定不同的值(水平和垂直)。
- 通过将使用 Clickable 修饰符的任何元素的可点击区域扩展到至少
48dp
乘48dp
,提高所有触摸目标的可访问性。 - 通过添加
setResponsiveContentInsetEnabled
改进PrimaryLayout
和EdgeContentLayout
,以更好地支持这些布局在不同屏幕尺寸下的响应行为,并提高 Tiles 的一致性。 - 改进 Android 14 的非线性字体缩放的 Material Text 的缩放/非缩放。
- 改进所有弧形元素上 RTL 布局方向的支持。
其他更改
- 有关版本 1.1.0 中引入的更改的更完整集合,请参阅beta01 发行说明。
版本 1.2.0-rc01
2024 年 7 月 24 日
androidx.wear.protolayout:protolayout-*:1.2.0-rc01
已发布。版本 1.2.0-rc01 包含这些提交。
错误修复
- 我们修复了标准的 Material Chip,使其在未传入主标签或副标签时可以仅用作图标。(Iceef9)
- Material 布局的文档已更新,包含了相关页面中的视觉效果,以便更容易理解布局。(I0256a)
版本 1.2.0-beta01
2024 年 7 月 10 日
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,通过指定要使用的首选字体族名称来支持即将推出的弹性字体。
- 设置不同的字体变化设置,例如
- 扩展了
Corner
修饰符,以支持分别为每个CornerRadius
指定单独的水平和垂直值,从而允许构建具有不对称角的元素。 - 添加了一个新的
Transformation
修饰符,提供LayoutElement
的平移、旋转和缩放。这些转换可以通过使用动态值进行动画处理。 - 向所有弧形元素 (
Arc
、ArcLine
和ArcText
) 添加了setArcDirection
,并提供了Clockwise
、CounterClockwise
和Normal
选项,以便更好地支持不同的布局方向(例如 LTR 和 RTL)。 - 通过扩展使用
Clickable
修饰符的任何元素的可点击区域,使其至少为48dp
x48dp
,从而提高了所有触摸目标的可访问性。 - 通过添加
setResponsiveContentInsetEnabled
改进了PrimaryLayout
和EdgeContentLayout
,以便更好地支持这些布局在不同屏幕尺寸上的响应行为,并提高 Tiles 的一致性。添加了 linter 警告,建议使用这些 API 并提供快速修复。 - 改进了 Android 14 非线性字体缩放中 Material
Text
的缩放/非缩放。
API 更改
- 默认字体族名称 (
DEFAULT_SYSTEM_FONT
) 已删除,因为它在不使用preferredFontFamilies
API 时是隐含的。(I39dab) - 传递给
FontSetting.width
的参数应为正数。(I1266f)
版本 1.2.0-alpha05
2024 年 6 月 26 日
androidx.wear.protolayout:protolayout-*:1.2.0-alpha05
已发布。版本 1.2.0-alpha05 包含这些提交。
新功能
- 向
Material.CompactChip
添加了hasText
方法,以检查是否已设置文本内容。(I6e8fc)
API 更改
FontFamily
常量已移至FontStyle
而不是其 Builder 类中。(I06ced)- 更新了
FontSetting.weight
和FontSetting.width
API,以包含范围注释并将 weight 的参数更改为 int。(Ia726c)
错误修复
- Material 库中的不可缩放文本现在可以与 Android 14 的非线性字体缩放正确配合使用。(I6601e)
版本 1.2.0-alpha04
2024 年 5 月 29 日
androidx.wear.protolayout:protolayout-*:1.2.0-alpha04
已发布。版本 1.2.0-alpha04 包含这些提交。
API 更改
- 添加了不对称角 API,以便能够分别为每个角的半径指定 2 个值。(Icbd69)
- 扩展了
FontSetting
API,以包含 - 向
FontStyle
添加了字体族 API,以允许指定字体族的使用顺序列表。(Iba9f5) - 重命名了 Material
LayoutDefaults
中内容和副标签之间间距高度的常量,这些常量最初以“Edge content”为前缀,改为更通用的名称,因为它们可以应用于PrimaryLayout
和EdgeContentLayout
。(I4dc32)
错误修复
- 重命名了可变字体轴的名称,从
axisName
更改为axisTag
。(I02ba3)
版本 1.2.0-alpha03
2024 年 5 月 14 日
androidx.wear.protolayout:protolayout-*:1.2.0-alpha03
已发布。版本 1.2.0-alpha03 包含这些提交。
新功能
- 添加了用于设置
FontStyle
的自定义粗细值的 API。(I7390a)
错误修复
- 修复了由于目标映射为空导致
getTouchDelegateInfo
失败的问题。(I2accf)
版本 1.2.0-alpha02
2024 年 5 月 1 日
androidx.wear.protolayout:protolayout-*:1.2.0-alpha02
已发布。版本 1.2.0-alpha02 包含这些提交。
API 更改
- 我们添加了对禁用单个可点击元素上的波纹反馈的支持。(If1ede)
- 转换的 API 已从
ArcModifiers
中删除,因为它们不支持该功能(Ic0827) ArcDirectionProp
Builder 现在在构造函数中需要一个值。(I76ada)PlatformDataValues.Builder.putAll
方法允许将一个PlatformDataValue
合并到另一个PlatformDataValue
中。(I50ba3)Text#setIsScalable
已重命名为Text#setScalable
。(If920e)- Material Text 可以设置是否使用可缩放大小(当用户字体大小更改时会增长)或不使用。(Ibc849)
- 我们添加了为
TitleChip
设置内容说明的选项。(I5d21f) - 修复了
CompactChip
以使其能够正确使用仅图标并更新 API 以允许此选项。(I6589e)
错误修复
- 修复了初始化期间可能出现重复平台数据的问题。(Iba0fd)
- 引入了一个新的 getter 到
DynamicDataNode
以检索节点成本。成本用于获取动态节点配额。目前,具有固定值的节点成本为 0,所有其他节点的成本为 1。(Ia33e1) - 从
NO_OP_QUOTA_MANAGER
中删除计数逻辑。(Ib50b8) - 我们添加了一个 lint 规则,用于在不使用
setResponsiveContentInsetEnabled
的情况下使用PrimaryLayout
时报告警告,并提供快速修复。(I12025) - 动态表达式节点的数量有限制。(Iffae8)
版本 1.2.0-alpha01
2024 年 3 月 6 日
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 指南保持一致,通过将主标签固定在顶部并为标签设置响应式内边距来提高 Tiles 的一致性。(I60175)- 我们添加了
PrimaryLayout.setResponsiveContentInsetEnabled
,它会为此布局中的主标签、副标签和底部芯片添加响应式内边距,以避免内容超出屏幕边缘。(I0c457) - 添加了从
CircularProgressIndicator
中移除外部边距的方法,以便将其用作较小的组件。(I55c06)
API 更改
- Tiles 渲染器现在默认情况下会排除所有文本元素上的字体填充,并且没有包含它的选项。(I3e300)
错误修复
- 修复了当在文本上同时使用省略、字母间距和居中对齐时出现的文本对齐问题。(I716c7)
- 添加了针对 skia 弧线绘制问题的解决方法。(I08f09)
- 修复了 RTL 布局中
ArcLine
的绘制方向。(I6c141)
版本 1.1
版本 1.1.0
2024 年 2 月 7 日
androidx.wear.protolayout:protolayout-*:1.1.0
已发布。版本 1.1.0 包含这些提交。
自 1.0.0 以来重要的更改
ArcLine
中的渐变支持和对大于 360 度长度的更好表示。- 日期时间格式支持动态数据类型的不同时区。
- 更好的文本自动调整大小和省略选项,以处理截断文本。
- Spacer 支持扩展尺寸,并可选地使用权重。
- 所有
ProtoLayout
API 都添加了架构版本需求注释。 - 将目标区域扩展到任何
Clickable
元素,尺寸为 48 dp x 48 dp,以满足可访问性要求。 - 默认情况下关闭字体填充,并且这是所有文本元素和包含文本的 Material 组件的唯一行为。
其他更改
- 有关 1.1.0 版本中引入的更改的完整列表,请参阅beta01 发行说明。
1.1.0-rc01 版本
2024 年 1 月 24 日
androidx.wear.protolayout:protolayout-*:1.1.0-rc01
已发布。1.1.0-rc01 版本包含这些提交。
错误修复
PlatformTimeUpdateNotifierImpl
在启用更新后立即触发。(I77145)CircularProgressIndicator
已针对 RTL 布局修复。从现在开始,它将始终顺时针旋转。(I95ee3)- 添加了针对 skia 弧线绘制问题的解决方法。(I08f09)
1.1.0-beta01 版本
2024 年 1 月 10 日
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
现在通过添加带有SweepGradient
的Brush
支持渐变,并在端盖上添加阴影以更好地表示大于 360 度的长度,方法是在现有的StrokeCap
上添加Shadow
。DynamicInstant
支持时区日期时间格式化。DynamicInstant
和DynamicDuration
可用作状态或平台数据类型。- 文本大小的自动调整功能,允许将多个大小设置为
FontStyle.setSizes
,其中文本大小将根据其在父元素内部的空间自动缩放。此外,我们改进了溢出文本的省略号选项,方法是添加TEXT_OVERFLOW_ELLIPSIZE
并弃用TEXT_OVERFLOW_ELLIPSIZE_END
。 Spacer
现在支持具有可选权重的扩展尺寸。为了构建ExpandedDimensionProp
,我们添加了一个辅助方法DimensionBuilders.weight
。- 支持使用
Modifier.visible
动态隐藏和显示布局元素。这包括在BoolProp
中使用动态值。 - 所有
ProtoLayout
API 现在都具有架构版本需求注释,并且可以在调用较新的 API 之前检查版本。 - 现在,每个具有
Clickable
的元素在渲染器中的目标区域都扩展到至少 48x48,以更好地支持可访问性要求。 - 遵循其他 Material 组件和 Compose 计划,我们现在已在所有
Text
元素上默认关闭字体填充。此外,AndroidTextStyle
和相关的设置器已从公共 API 中删除,并包含以下错误修复 - 添加了一个设置器,用于在
EdgeContentLayout
中定位边缘内容,以便可以在其他内容之前定位它。 - 在遇到无法识别的枚举值时始终抛出异常。
- 当表达式产生无效数值(NaN 或无限)或抛出
ArithmeticException
时,使结果无效。
API 更改
- 更新
SweepGradient
API 以允许在构造函数中接受颜色或ColorStops
。(I6676f)
错误修复
- 添加了受限 API 和渲染器支持,用于设置绘制弧线元素的方向。(Idef5a)
- 当未指定
RoundMode
时,FloatToInt32Node
中的RoundMode
默认为Floor
。如果提供的RoundMode
无法识别,则节点仍将抛出异常。(I1b2d8)
1.1.0-alpha04 版本
2023 年 12 月 13 日
androidx.wear.protolayout:protolayout-*:1.1.0-alpha04
已发布。1.1.0-alpha04 版本包含这些提交。
新功能
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)
错误修复
- 在遇到未定义或无法识别的枚举值时抛出异常。(I9d2cf)
- 重构
DynamicTypeBindingRequest
。(I27b57) - 当表达式产生无效数值(NaN 或无限)或抛出
ArithmeticException
时,使结果无效。(I681ae)
1.1.0-alpha03 版本
2023 年 11 月 29 日
androidx.wear.protolayout:protolayout-*:1.1.0-alpha03
已发布。1.1.0-alpha03 版本包含这些提交。
新功能
- 添加了对动态隐藏/显示布局元素的实验性支持(I64a78)
- 向
BoolProp
添加了动态值支持(I2fe96) - 向
ProtoLayout
API 添加了架构版本需求注释(I0f03c) - 通过在
TextOverflow
中添加新选项来扩展 API,即使未达到最大行数(但文本空间不足),也能在固定的父容器中省略文本。(I110a9) - 添加了辅助方法
DimensionBuilders.weight
,用于使用权重构建ExpandedDimensionProp
。(I4f72b) DynamicInstant
和DynamicDuration
可用作状态或平台数据类型。(I6819f)
API 更改
- 更新 API 以隐藏
DynamicZonedDateTime
并将其所有操作移至DyanamicInstant
(I34b94) Spacer
现在支持宽度/高度的扩展尺寸。(Ie7c94)- 支持渲染器中的点击目标区域扩展(I39c79)
1.1.0-alpha02 版本
2023 年 11 月 15 日
androidx.wear.protolayout:protolayout-*:1.1.0-alpha02
已发布。1.1.0-alpha02 版本包含这些提交。
新功能
- 向
ArcLine
StrokeCap
添加了Shadow
字段。(I830ec) - 扩展 API 以能够指定
Spacer
的宽度或高度进行扩展。(I757ca) - 我们添加了一个实验性 API,可以根据文本在父元素内部的空间自动缩放文本大小。(Ibbe63)
- 支持最小可点击大小(I178e3)
- 添加了对
StrokeCap
Shadow
的渲染器支持。(I48b17) - 添加了对
ArcLine
中的渐变的渲染器支持。(I4d5bb)
1.1.0-alpha01 版本
2023 年 10 月 18 日
androidx.wear.protolayout:protolayout-*:1.1.0-alpha01
已发布。1.1.0-alpha01 版本包含这些提交。
新功能
- 向
Arcline
添加了画刷选项,并支持SweepGradient
。(Ie7ce3) - 添加了对时区日期时间格式化的支持。(Ibfae0)
- 添加了时区日期时间格式化所需的 protos 和 java 包装器。(I97126)
- 添加了用于读取存储在
DynamicDataValue
中的值的 getter。(Ie6cea) - 添加了一个设置器,用于在
EdgeContentLayout
中定位边缘内容,以便可以在其他内容之前定位它。(Ie8e8a)
错误修复
- 修复了具有多个时间数据源注册的表达式未立即更新的问题。(I8e1a8)
- 修复了一个错误,该错误会导致在差异更新期间将根元素居中。(Ie48f7)
- 不再忽略未设置(或为空)的布局约束值。(Ibc785)
- 减少了布局变为可见与其管道节点初始化之间的延迟。(I38d4e)
1.0 版本
1.0.0 版本
2023 年 8 月 9 日
androidx.wear.protolayout:protolayout-*:1.0.0
已发布。1.0.0 版本包含这些提交。
1.0.0 的主要功能
ProtoLayout 库引入了用于创建布局和表达式的 API,这些 API 可用于不同的 Wear OS 表面。例如,Tiles 库使用这些 API 来支持平台数据绑定(以加快磁贴数据更新速度)和动画。
1.0.0-rc01 版本
2023 年 7 月 26 日
androidx.wear.protolayout:protolayout-*:1.0.0-rc01
已发布。1.0.0-rc01 版本包含这些提交。
- 要从 Tiles 迁移到
ProtoLayout
,请按照此处的说明进行操作。
API 更改
- 我们已从 Arc 元素中删除了
setLayoutConstraintForDynamicAnchorAngle
和getLayoutConstraintForDynamicAnchorAngle
方法。这些方法是错误添加的,并且对提供的布局没有任何影响。(If7d01) - 我们已将
ProtoLayout
布局的最大深度限制为 30 个嵌套的LayoutElements
。(I8a74b)
错误修复
版本 1.0.0-beta01
2023年6月21日
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
整数常量现在直接用于DynamicHeartRateAccuracy.constant()
和DynamicHeartRateAccuracy.dynamicDataValueOf()
,而不是值常量。(I82ff5)PlatformHealthSources.Constants
类错误地可实例化。此问题现已修复。(Icb849)PlatformTimeUpdateNotifier#setReceiver
现在接收Runnable
而不是Supplier
函数和Executor
以进行通知。(I9d938)- 我们已将
PlatformTimeUpdateNotifier#setReceiver
中的参数类型从Callable
更改为Supplier
。(I664bf) CompactChip
和TitleChip
现在支持添加图标。(I5a01e)
错误修复
版本 1.0.0-alpha11
2023年6月7日
androidx.wear.protolayout:protolayout-*:1.0.0-alpha11
已发布。版本 1.0.0-alpha11 包含这些提交。
新功能
- 我们添加了一个用于心率准确度的
PlatformDataKey
。(I7f9b8)
API 更改
- 将
StateBuilders#getIdToValueMapping
重命名为getKeyToValueMapping
,并将返回类型更改为Map<<AppDataKey<?>,DynamicDataValue>
。(Iaa7ae) - 将
StateStore
设为最终类(I408ca) protolayout-expression-pipeline
库中的TimeGateway
接口已被PlatformTimeUpdateNotifier
替换,后者提供了更新时间数据的所需频率。(I60869)- 将
PlatformDataProvider
中的register
/unregisterForData
重命名为set
/clearReceiver
(I14b02) - 在 Material Text 中,
getExcludeFontPadding
已重命名为hasExcludeFontPadding
。(Iea01d) - 为完美对齐标签添加了 setter 到所有芯片组件。所有芯片现在都应用了最小可点击目标。(I8ae92)
LayoutDefaults#BUTTON_MAX_NUMBER
已重命名为MAX_BUTTONS
。(I84788)DAILY_DISTANCE
已重命名为DAILY_DISTANCE_M
。(I4f758)
错误修复
版本 1.0.0-alpha10
2023年5月24日
androidx.wear.protolayout:protolayout-*:1.0.0-alpha10
已发布。版本 1.0.0-alpha10 包含这些提交。
新功能
- 添加用于访问应用推送状态的
AppDataKey
;添加用于访问平台数据的PlatformDataKey
;在StateStore
中添加命名空间支持。(I7985e) - 支持
DynamicBool
的Equal
和NotEqual
操作。(I6a0c1)
API 更改
FontStyles
类现在是最终类(Iaa2ea)LayoutElementBuilders#FontStyles
已弃用。请使用androidx.wear.protolayout.Typography
或创建自己的FontStyle
。(Ic929b)- 隐藏
Action
接口中的Action#Builder
嵌套接口。Builder 的实现已由LoadAction
和LaunchAction
类提供。(I1d70c) - 允许将
DynamicFloat
与FloatProp
一起使用。请注意,FloatProp
不需要布局约束,因为它不用作更改布局的属性。(I286ac) LoalAction
和SetStateAction
操作已删除,因为它们尚未真正得到支持。(I5d6a6)- 添加了对内联图像资源的 ARGB_8888 格式的支持。(I8a07c)
- 将
StateEntryValue
重命名为DynamicDataValue
,并更新状态 API 以使用DynamicDataKey
(If1c01) - 我们限制了
StateStore
中允许的条目数量,以确保每个StateStore
实例的内存使用量和状态更新时间得到良好控制。因此,开发人员需要确保映射中不超过MAX_STATE_ENTRY_COUNT
个条目,否则在创建或更新StateStore
时会收到IllegalStateException
。(Ibadb3) - 隐藏
OnLoadTrigger
和OnConditionMetTrigger
类,并将OnConditionMetTrigger
的setTrigger
重命名为setCondition
。(Ibf629) - 出于性能和兼容性原因,
ProtoLayout
渲染器不支持AnimatedVectorDrawable
资源中的所有功能。在我们可以定义受支持的功能集之前,我们将这些 API 标记为实验性。(Ic6daf) - 添加了每日距离、每日卡路里和每日楼层的动态类型。平台健康源的键现在位于
PlatformHealthSources.Keys
下(Ib7637) Easing.cubicBezier
方法替换了CubicBezierEasing.Builder
。随之EasingFunction
类被删除,该类中的缓动常量现在可以直接从Easing
接口访问。此外,setInfiniteRepeatable
被INFINITE_REPEATABLE_WITH_RESTART
和INFINITE_REPEATABLE_WITH_REVERSE
替换(Ib41e7)- 实现
PlatformDataProvider
以提供心率和每日步数。SensorGateway
接口已从公共 API 中删除。(I55b84) - 添加
PlatformDataProvider
,并更新StateStore
以在提供程序的支持的键被表达式管道中的节点需要时注册到PlatformDataProvider
。(Ib616a) SensorGateway
不再是Closeable
,因为它不再维护任何状态。(I6b4f7)- 允许在
CircularProgressIndicator
中将FloatProp
与DynamicFloat
一起用于进度。这受支持渲染器版本 1.2 的支持。旧的渲染器将回退到提供的staticValue
(如果提供),否则回退到 0(I0d91b) MultiButtonLayout
常量已重构到LayoutDefaults.MultiButtonLayoutDefaults
类中,该类现在包含根据布局中按钮数量的不同按钮大小的常量。(I13973)- 支持在 Material Text 中将
StringProp
与DynamicString
一起使用。这受支持渲染器版本 1.2 的支持。旧的渲染器将回退到提供的静态值。将Text#getText
返回类型从String
更新为StringProp
。(I7275b)
版本 1.0.0-alpha09
2023年5月10日
发布了androidx.wear.protolayout:protolayout-*:1.0.0-alpha09
。 版本 1.0.0-alpha09 包含以下提交。
新功能
- 我们添加了一个实验性的扩展布局元素。请注意,默认情况下无法使用此元素,需要能够理解布局元素的渲染器扩展。 (I6581d)
- 为
ArcLine
添加了StrokeCap
支持。 (I94951) - 添加了对条件瞬时操作的支持。 (I489a7)
- 添加了对条件持续时间操作的支持。 (Iab469)
- 添加了根据秒创建持续时间的功能。 (Ib5fa1)
API 更改
enable/disablePlatformSource
方法已从DynamicTypeEvaluator
中移除。调用方应负责更新。 (I78c6d)- 允许限制绑定数据类型的尺寸。 (Ie2966)
- 在
protolayout-material
中添加了对动态内容描述的支持。 (I62c8e) - 在AnimationParameters中使用long和
@IntRange
表示持续时间和延迟。 (I388b6)
版本 1.0.0-alpha08
2023年4月19日
发布了androidx.wear.protolayout:protolayout-*:1.0.0-alpha08
。 版本 1.0.0-alpha08 包含以下提交。
新功能
- 已将
AndroidTextStyle
添加到LayoutElementBuilders
中。 (I8d967) - 我们添加了在
ProtoLayout
Material Text中设置排除字体填充的支持。 (I17f5d) - 现在内联图像支持ARGB_8888。 (I18c1e)
DynamicColor
现在支持onCondition
操作。 (I10927)
API 更改
- 支持反向动画的自定义持续时间 (I3251f)
- 我们添加了
SemanticDescription
修饰符。此外,ContentDescription
不可绑定。 (I3f1d) DynamicBool.isFalse()
方法现已替换为DynamicBool.negate()
,并且DynamicBool.isTrue()
已移除。此外,NaNDynamicFloat
值以及将DynamicInt32
缩小为DynamicFloat
现在会发出无效的动态结果。 (I6ac1e)- 整数和浮点数格式化程序现在使用构建器模式。 (Ieb213)
错误修复
- 已从可动画字段中移除回退静态值。 (Ifcb01)
DynamicTypeValueReceiver#onPreUpdate
已被移除。 (I2dc35)- 动态表达式中字符串的长度现在已限制。 (I4c93)
- 当需要时,Gradle依赖项现在已正确设置为
api
而不是implementation
。 (I40503)
版本 1.0.0-alpha07
2023年4月5日
发布了androidx.wear.protolayout:protolayout-*:1.0.0-alpha07
。 版本 1.0.0-alpha07 包含以下提交。
新功能
API 更改
sensorGateway#registerSensorGatewayConsumer
采用数据类型作为参数,而不是Consumer中的方法。 (Icf314)ObservableStateStore
已重命名为StateStore
。 (Ieb0e2)- 添加了
DynamicTypeEvaluator.Builder
而不是构造函数参数,以允许更多可选参数,包括ObservableStateStore
,它现在默认为空存储。 (I6f832) - 重构了
DynamicTypeEvaluator
中参数的顺序。 (Ic1ba4)
错误修复
- 正确地将来自平台传感器源的信号传播到下游节点 (I5a922)
版本 1.0.0-alpha06
2023年3月22日
发布了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
2023年3月8日
发布了androidx.wear.protolayout:protolayout-*:1.0.0-alpha05
。 版本 1.0.0-alpha05 包含以下提交。
新功能
- 我们向
Modifiers
对象添加了一个实验性的“内容更新”动画。此动画将在元素(具有此修饰符)或其子元素在布局更新期间发生更改时触发。 (bd03e5d)
API 更改
- 我们向
Repeatable
添加了forwardRepeatDelayMillis
和reverseRepeatDelayMillis
。我们还将AnimationSpec
中的delayMillis
重命名为startDelayMillis
(Ifb266) DynamicTypeEvaluator.bind
方法现在接受一个Executor。 (I346ab)- 我们向
BoundDynamicType
添加了startEvaluation
方法,以便在绑定动态类型后触发评估。 (I19908)
错误修复
- Animator对象将被重用于单个元素的后续动画。 (Ia3be9)
版本 1.0.0-alpha04
2023年2月22日
发布了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
辅助方法(用于启动活动)。
错误修复
- 将Tile动画中的
set/getSpec
重命名为set/getAnimationSpec
(I3d74b)
版本 1.0.0-alpha03
2023年2月8日
发布了androidx.wear.protolayout:protolayout-*:1.0.0-alpha03
。 版本 1.0.0-alpha03 包含以下提交。
新功能
- 我们在protolayout-express库中为动态类型添加了
toByteArray()
和fromByteArray()
。 - 我们在protolayout-expression库中为动态类型添加了
toString()
。 - 我们添加了对动态类型的评估支持。protolayout-expression-pipeline库中的
DynamicTypeEvaluator
类可用于评估(并接收更新的值)以前创建的动态类型(DynamicString
、DynamicFloat
等)。 - 当动画无法播放(无论是由于评估器禁用它们,还是正在运行的动画数量已达到设置的限制),将使用可动画节点上设置的静态值来替换动画。
版本 1.0.0-alpha02
2023年1月25日
发布了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
中的构建器将在下个 Alpha 版本中弃用。
版本 1.0.0-alpha01
2023年1月11日
发布了androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01
和androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01
。 版本 1.0.0-alpha01 包含以下提交。
新功能
- 此版本引入了新的库“ProtoLayout 表达式”,用于根据动态变量创建表达式。