wear protolayout

  
此库允许定义一组将在远程 Surface 上呈现/评估的界面布局和非界面表达式。
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2024 年 3 月 6 日 1.1.0 - - 1.2.0-alpha01

声明依赖项

如需添加 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-alpha01"

    // Use to implement support for Wear ProtoLayout
    implementation "androidx.wear.protolayout:protolayout:1.2.0-alpha01"

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation "androidx.wear.protolayout:protolayout-material:1.2.0-alpha01"
}

Kotlin

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation("androidx.wear.protolayout:protolayout-expression:1.2.0-alpha01")

    // Use to implement support for Wear ProtoLayout
    implementation("androidx.wear.protolayout:protolayout:1.2.0-alpha01")

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation("androidx.wear.protolayout:protolayout-material:1.2.0-alpha01")
}

如需详细了解依赖项,请参阅添加 build 依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

版本 1.2

版本 1.2.0-alpha01

2024 年 3 月 6 日

发布了 androidx.wear.protolayout:protolayout-*:1.2.0-alpha01。版本 1.2.0-alpha01 中包含这些提交内容

新功能

  • ProtoLayout Arc 元素现在可以选择向其添加 ArcDirectionClockwiseCounterclockwiseNormal)。将此行为添加到 ArcArcLineArcText 将修复它们在 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,方法是添加带有 SweepGradientBrush,并在帽盖上添加阴影,以更好地表示大于 360 度的长度。
  • DynamicInstant 支持分区日期时间格式。DynamicInstantDynamicDuration 可用作状态或平台数据类型。
  • 文字大小自动调整功能,允许将多种大小设置为 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
  • 如果未指定,RoundModeFloatToInt32Node 中默认为 Floor。如果提供的 RoundMode 无法识别,节点仍会抛出异常。(I1b2d8

版本 1.1.0-alpha04

2023 年 12 月 13 日

发布了 androidx.wear.protolayout:protolayout-*:1.1.0-alpha04版本 1.1.0-alpha04 中包含这些提交内容

新功能

  • VersionInfo 类不实现 Comparable 接口。(I8d13c
  • 渲染程序现在支持 TEXT_OVERFLOW_ELLIPSIZE 选项。(I7f085

API 变更

  • 文本溢出选项 TEXT_OVERFLOW_ELLIPSIZE_END 现已废弃。请使用行为非常相似的新 API TEXT_OVERFLOW_ELLIPSIZE。(I822d8
  • 继其他 Material 组件和 Compose 计划之后,我们现在已经为所有文本元素默认关闭字体内边距。此外,已从公共 API 中移除 AndroidTextStyle 及相关的 setter。(I79094Ib0b03I32959Iaf7d5Ifa298I0a4aeIda9d3
  • 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
  • DynamicInstantDynamicDuration 可用作状态或平台数据类型。(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 元素中移除了 setLayoutConstraintForDynamicAnchorAnglegetLayoutConstraintForDynamicAnchorAngle 方法。这些方法是错误添加的,它们对提供的布局没有任何影响。(If7d01
  • 我们已将 ProtoLayout 布局的最大深度限制为嵌套 LayoutElements 30 个。(I8a74b

bug 修复

  • 我们添加了一项检查,会在已为 SpanText 设置 DynamicColor 时抛出。(I0e5bc
  • 可以澄清 DAILY_CALORIES 数据源的单位是千卡。(Iaa785

版本 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 现在接受 DynamicDataKeyDynamicDataValue 的类型安全映射,而不是不安全的泛型。这意味着 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
  • CompactChipTitleChip 现在支持向其添加图标。(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 修复

  • 更新了道具类型文档,以阐明为什么强制执行静态值。指定在未提供静态值时使用的默认值。(I155aa
  • PlatformDataKey 命名空间应遵循 Java 样式命名。(I47bda

版本 1.0.0-alpha10

2023 年 5 月 24 日

发布了 androidx.wear.protolayout:protolayout-*:1.0.0-alpha10版本 1.0.0-alpha10 中包含这些提交内容

新功能

  • 添加了 AppDataKey,用于访问应用推送的状态;添加了 PlatformDataKey 以访问平台数据;在 StateStore 中添加了命名空间支持。(I7985e
  • 支持对 DynamicBool 执行 EqualNotEqual 操作。(I6a0c1

API 变更

  • FontStyles 类现已最终确定 (Iaa2ea)
  • LayoutElementBuilders#FontStyles 已废弃。请使用 androidx.wear.protolayout.Typography 或创建您自己的 FontStyle。(Ic929b
  • Action 接口中隐藏了 Action#Builder 嵌套接口。Builder 的实现已由 LoadActionLaunchAction 类提供。(I1d70c
  • 允许将 DynamicFloatFloatProp 搭配使用。请注意,FloatProp 不需要布局约束条件,因为它不用作布局更改属性。(I286ac)
  • 移除了 LoalActionSetStateAction 操作,因为这些操作还不受支持。(I5d6a6
  • 添加了对内嵌图片资源的 ARGB_8888 格式的支持。(I8a07c
  • StateEntryValue 重命名为 DynamicDataValue,并将状态 API 更新为使用 DynamicDataKey (If1c01)
  • 我们将限制 StateStore 中允许的条目数,以确保针对 StateStore 的每个实例妥善控制和控制内存使用情况和状态更新时间。因此,开发者需要确保映射中的条目不超过 MAX_STATE_ENTRY_COUNT 个,否则在创建或更新 StateStore 时,他们会收到 IllegalStateException。(Ibadb3)
  • 隐藏 OnLoadTriggerOnConditionMetTrigger 类,并将 OnConditionMetTriggersetTrigger 重命名为 setCondition。(Ibf629)
  • 出于性能和兼容性方面的原因,ProtoLayout 渲染程序不支持 AnimatedVectorDrawable 资源中的全部功能。我们将这些 API 标记为实验性,直到我们能够定义出受支持的组合。(Ic6daf)
  • 添加了针对每日距离、每日卡路里和每日楼层的动态类型。平台运行状况来源的键现在位于 PlatformHealthSources.Keys 下 (Ib7637)
  • Easing.cubicBezier 方法取代了 CubicBezierEasing.Builder。因此,移除了 EasingFunction 类,现在可以直接从 Easing 接口访问该类中的加/减速常量。此外,setInfiniteRepeatable 已替换为 INFINITE_REPEATABLE_WITH_RESTARTINFINITE_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 中将 StringPropDynamicString 搭配使用。支持版本 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
  • 添加了对 ArcLineStrokeCap 支持。(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()。此外,NaN DynamicFloat 值以及将 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 中包含这些提交内容

新功能

  • StringProp 添加了动态价值支持 (I04342)
  • 标记了可绑定的布局元素 (Ia110b)

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 变更

  • 我们已将 forwardRepeatDelayMillisreverseRepeatDelayMillis 添加到 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)
  • 我们添加了 OnLoadOnConditionalMet 触发器。它们可用于启动支持触发器的动画。
  • 我们为展开后尺寸添加了布局权重,并为封装尺寸添加了最小尺寸。
  • 我们添加了时长和即时动态类型。它们可用于在动态表达式中表示瞬时或时长。
  • 我们添加了对 AnimatedVectorDrawableSeekableAnimatedVectorDrawable 的支持,将其作为布局资源。

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 类可用于评估之前创建的动态类型(DynamicStringDynamicFloat…)并接收相关的更新值
  • 当动画无法播放时(可能是由于评估器已停用动画,或由于正在运行的动画数量已达到设定的上限),系统会使用基于可呈现动画效果的节点设置的静态值来替换动画。

版本 1.0.0-alpha02

2023 年 1 月 25 日

发布了 androidx.wear.protolayout:protolayout:1.0.0-alpha02androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02androidx.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-alpha01androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01版本 1.0.0-alpha01 中包含这些提交内容

新功能

  • 此版本引入了用于从动态变量创建表达式的一个名为“ProtoLayout Expression”的新库。