wear protolayout
最近更新时间 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 5 月 1 日 | 1.1.0 | - | - | 1.2.0-alpha02 |
声明依赖项
如需添加 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-alpha02" // Use to implement support for Wear ProtoLayout implementation "androidx.wear.protolayout:protolayout:1.2.0-alpha02" // Use to utilize components and layouts with Material design in your ProtoLayout implementation "androidx.wear.protolayout:protolayout-material:1.2.0-alpha02" }
Kotlin
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation("androidx.wear.protolayout:protolayout-expression:1.2.0-alpha02") // Use to implement support for Wear ProtoLayout implementation("androidx.wear.protolayout:protolayout:1.2.0-alpha02") // Use to utilize components and layouts with Material design in your ProtoLayout implementation("androidx.wear.protolayout:protolayout-material:1.2.0-alpha02") }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
版本 1.2
版本 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)
bug 修复
- 修复了初始化期间可能重复的平台数据的问题。(Iba0fd)
- 向
DynamicDataNode
引入新的 getter 以检索节点费用。此费用将在获取动态节点配额时使用。目前,具有固定值的节点的费用将为 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
setter,以更好地与用户体验指南保持一致,通过将主标签置于顶部的固定位置,并为标签添加响应式边衬区,从而实现功能块的一致性。(I60175)- 我们添加了
PrimaryLayout.setResponsiveContentInsetEnabled
,用于向此布局中的主标签、次级标签和底部条状标签添加自适应边衬区,以避免相应内容超出屏幕边缘。(I0c457) - 添加了从
CircularProgressIndicator
中移除外边距的方法,以便将其用作较小的组件。(I55c06)
API 变更
- 现在,默认情况下,图块渲染器会排除所有文本元素上的字体内边距,而不提供包含内边距的选项。(I3e300)
bug 修复
- 修复了在文本上使用椭圆、字母间距和居中对齐时的文本对齐问题。(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 度的长度。 - 日期时间格式设置支持为动态数据类型使用不同的时区。
- 改进了文本自动调整大小和省略号选项,用于处理截断的文本。
- 垫片支持较大尺寸,可选择重量。
- 所有
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 中包含这些提交内容。
bug 修复
- 启用更新后,
PlatformTimeUpdateNotifierImpl
会立即触发。(I77145) - 修复了 RTL 布局的
CircularProgressIndicator
。从现在开始,在所有情况下,它都将按顺时针方向运行。(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
现在支持渐变,方法是向现有的StrokeCap
添加Shadow
,方法是添加带有SweepGradient
的Brush
,并在帽盖上添加阴影,以更好地表示大于 360 度的长度。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
元素默认关闭字体内边距。此外,从公共 API 中移除了AndroidTextStyle
及相关的 setter,并修复了以下 bug: - 添加了一个 setter,用于在
EdgeContentLayout
中定位边缘内容,使其可以放置在其他内容之前。 - 在遇到无法识别的枚举值时始终抛出异常。
- 当表达式生成无效数值(NaN 或无限值)或抛出
ArithmeticException
时,使表达式失效。
API 变更
- 更新了
SweepGradient
API,以允许在构造函数中接受颜色或ColorStops
。(I6676f)
bug 修复
- 添加了受限 API 和渲染程序支持,用于设置弧形元素的绘制方向。(Idef5a)
- 如果未指定,
RoundMode
在FloatToInt32Node
中默认为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 计划之后,我们现在已经为所有文本元素默认关闭字体内边距。此外,已从公共 API 中移除
AndroidTextStyle
及相关的 setter。(I79094、Ib0b03、I32959、Iaf7d5、Ifa298、I0a4ae、Ida9d3) Modifier.hidden
已替换为Modifier.visible
(I56902)FontStyle#setSizes
现在接受 int ,而不是SpProp
参数。(I02b37)
bug 修复
- 遇到未定义或无法识别的枚举值时抛出异常。(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) - 分隔符现在支持针对宽度/高度的展开尺寸。(Ie7c94)
- 在渲染程序中支持点击目标区域扩展 (I39c79)
版本 1.1.0-alpha02
2023 年 11 月 15 日
发布了 androidx.wear.protolayout:protolayout-*:1.1.0-alpha02
。版本 1.1.0-alpha02 中包含这些提交内容。
新功能
- 向 API 添加了
ArcLine
StrokeCap
Shadow
字段。(I830ec) - 扩展 API,以便能够指定要展开的分隔符的宽度或高度。(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)
- 添加了区域日期时间格式所需的 proto 和 Java 封装容器。(I97126)
- 添加了用于读回存储在
DynamicDataValue
中的值的 getter。(Ie6cea) - 添加了一个 setter,用于在
EdgeContentLayout
中定位边缘内容,使其可以放置在其他内容之前。(Ie8e8a)
bug 修复
- 修复了具有多个时间数据源注册的表达式未立即更新的问题。(I8e1a8)
- 修复了在差异更新期间将根元素居中的 bug。(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 库引入了用于创建可在不同 Wear OS surface 中使用的布局和表达式的 API。例如,Tiles 库使用这些 API 来支持平台数据绑定(用于更快地更新功能块数据)和动画。
版本 1.0.0-rc01
2023 年 7 月 26 日
发布了 androidx.wear.protolayout:protolayout-*:1.0.0-rc01
。版本 1.0.0-rc01 中包含这些提交内容。
- 如需从功能块迁移到
ProtoLayout
,请按照此处的说明进行操作。
API 变更
- 我们从 Arc 元素中移除了
setLayoutConstraintForDynamicAnchorAngle
和getLayoutConstraintForDynamicAnchorAngle
方法。这些方法是错误添加的,它们对提供的布局没有任何影响。(If7d01) - 我们已将
ProtoLayout
布局的最大深度限制为嵌套LayoutElements
30 个。(I8a74b)
bug 修复
版本 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)
bug 修复
- 更新了包含动态字段的 Prop 消息,以改用 oneof (I81739)
- 对具有 setter 的重载重复使用 setter 实现 (Ied70c)
- 在包含重载的 setter 中正确记录指纹 (I86ed2)
版本 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) TimeGateway
接口已替换为protolayout-expression-pipeline
库中的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)
bug 修复
版本 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
来提供心率和每日步数。从公共 API 中移除了SensorGateway
接口。(I55b84) - 添加
PlatformDataProvider
,并更新StateStore
,以便在表达式流水线中的节点需要提供程序支持的密钥时,注册到PlatformDataProvider
。(Ib616a) SensorGateway
不再处于Closeable
状态,因为它不再保留任何状态。(I6b4f7)- 允许将“
FloatProp
”与“DynamicFloat
”搭配使用,以便在“CircularProgressIndicator
”中取得进展。支持版本 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 变更
- 从
DynamicTypeEvaluator
中移除了enable/disablePlatformSource
方法。调用方应负责更新。(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)
bug 修复
- 后备静态值已从可添加动画效果的字段中移除。(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)
bug 修复
- 正确地将信号从平台传感器来源传播到下游节点 (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)
bug 修复
- 添加了
FloatNodesTest
(Id7281) - 修复了无法加载结构化位图时渲染程序崩溃的问题。
版本 1.0.0-alpha05
2023 年 3 月 8 日
发布了 androidx.wear.protolayout:protolayout-*:1.0.0-alpha05
。版本 1.0.0-alpha05 中包含这些提交内容。
新功能
- 我们为
Modifiers
对象添加了实验性“内容更新”动画。在布局更新期间,每当元素(使用此修饰符)或其某个子项发生更改时,就会触发此动画。(bd03e5d)
API 变更
- 我们已将
forwardRepeatDelayMillis
和reverseRepeatDelayMillis
添加到Repeatable
。我们还将AnimationSpec
中的delayMillis
重命名为了startDelayMillis
(Ifb266) DynamicTypeEvaluator.bind
方法现在接受执行器。(I346ab)- 我们将
startEvaluation
方法添加到了BoundDynamicType
,以便在绑定动态类型后触发评估。(I19908)
bug 修复
- 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
辅助方法(用于启动 activity)。
bug 修复
- 功能块动画中的
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
。在下一 Alpha 版中,androidx.wear.tiles:tiles
中的布局构建器将被废弃。
版本 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 Expression”的新库。