Wear Compose

  
编写适用于穿戴式设备的 Jetpack Compose 应用,提供相关功能来支持穿戴式设备以及该类设备专属的尺寸、形状和导航手势。
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2024 年 10 月 30 日 1.4.0 - - 1.5.0-alpha05

声明依赖项

如需添加 Wear 的依赖项,您必须将 Google Maven 制品库添加到项目中。如需了解详情,请参阅 Google 的 Maven 制品库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

Groovy

dependencies {
    implementation "androidx.wear.compose:compose-foundation:1.4.0"

    // For Wear Material Design UX guidelines and specifications
    implementation "androidx.wear.compose:compose-material:1.4.0"

    // For integration between Wear Compose and Androidx Navigation libraries
    implementation "androidx.wear.compose:compose-navigation:1.4.0"

    // For Wear preview annotations
    implementation("androidx.wear.compose:compose-ui-tooling:1.4.0")
    
    // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material.
    // androidx.wear.compose:compose-material is designed as a replacement
    // not an addition to androidx.compose.material:material.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material please raise a bug to let us know.
}

Kotlin

dependencies {
    implementation("androidx.wear.compose:compose-foundation:1.4.0")

    // For Wear Material Design UX guidelines and specifications
    implementation("androidx.wear.compose:compose-material:1.4.0")

    // For integration between Wear Compose and Androidx Navigation libraries
    implementation("androidx.wear.compose:compose-navigation:1.4.0")
    
    // For Wear preview annotations
    implementation("androidx.wear.compose:compose-ui-tooling:1.4.0")

    // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material.
    // androidx.wear.compose:compose-material is designed as a replacement
    // not an addition to androidx.compose.material:material.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material please raise a bug to let us know.
}

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

反馈

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

创建新问题

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

Wear Compose Material 3 版本 1.0

版本 1.0.0-alpha28

2024 年 10 月 30 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha28。版本 1.0.0-alpha28 包含这些提交内容

API 变更

  • 我们在不确定圆形进度指示器 (I2efc1) 中添加了弧形变体
  • 我们已公开构成 AlertDialog API 的 AlertDialogContentDialog 可组合项,以便您根据需要添加自定义内容(例如在保留推荐内容布局的同时自定义 AlertDialog 动画)。此外,我们还向 AlertDialogDefaultsEdgeButtonConfirmButtonDismissButton 成员添加了 ModifierColor 参数。(I4eb71)
  • 我们对 Placeholder API 进行了以下更新:将 PlaceholderState.startPlaceholderAnimation 重命名为 PlaceholderState.animatePlaceholder、将 PlaceholderState.isShowContent 重命名为 PlaceholderState.isHidden,并将 PlaceholderDefaults.shape 重命名为 PlaceholderDefaults.Shape;将 painterWithPlaceholderOverlayBackgroundBrush 中的 painter 参数重命名为 originalPainter;将 PlaceholderState.placeholderProgression 的公开范围更改为内部范围,并将其重命名为 placeholderShimmerProgression;向 PlaceholderDefaults 添加了占位符动画时长常量。(Ie5a59)
  • 我们已更新 EdgeButton API,具体如下:将 ScreenScaffold 上的参数从 bottomButton 重命名为 edgeButton;将 EdgeButtonSize 设为值类。(Ieef15
  • 我们已将 wear material3 Colors 类中的 copy() 的公开范围更改为公开 (I0287f)

bug 修复

  • IconToggleButtonTextToggleButton 添加了点击时的最短动画时长 (Ieb333)
  • IconButtonTextButton 形状动画添加了时长下限 (Iebcee)
  • 更正了 DatePicker 的重复选项状态。(I3587c
  • 为“提醒”和“确认”对话框添加了动态效果。(I173b1)

版本 1.0.0-alpha27

2024 年 10 月 16 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha27。版本 1.0.0-alpha27 包含这些提交内容

API 变更

  • 在 Wear Compose Foundation LazyColumn 更名为 TransformingLazyColumn 后,我们更新了 ScreenScaffoldScrollIndicator。(I0608b)
  • EdgeButtonpreferredHeight 参数已重命名为 buttonSize,其值只能从新引入的 EdgeButtonSize 值类中的 4 个常量中选择。(Icdd70)
  • 我们已将 ListSubheader 的命名更改为 ListSubHeader,并为 ListHeaderListSubHeader 添加了可公开访问的默认值。(I96730
  • 我们为 Wear 添加了新的 HorizontalPagerScaffoldVerticalPagerScaffold 组件,它们可提供新的动画,并协调时间文本和页面指示器组件。(Iff7d0)
  • 我们为 HorizontalPagerScaffoldVerticalPagerScaffold 添加了旋转支持,让用户能够使用旋转输入设备浏览页面浏览器。(I9770d
  • 我们对 MotionScheme API 进行了更改,以简化使用并提高一致性。移除了内嵌的 remember 函数,并将内置的 Motion 方案移到了专用的 MotionScheme 伴生对象。将 standardMotionSchemeexpressiveMotionScheme 重命名为“标准”和“富有表现力”。(I5fd45)
  • 我们添加了对基于系统颜色的动态配色方案的支持。(I073e9)
  • 我们已将步进控件更新为最新的用户体验规范。(I622bb)

bug 修复

  • 我们更新了卡片组件的排版和内边距。(I3ae48)
  • 我们根据用户体验规范,将 AlertDialog 中“确认/关闭”按钮与其余内容之间的内边距从 8dp 更改为 12dp (Ie55f0)
  • 我们更新了滑块组件的颜色不透明度。(Idb383

版本 1.0.0-alpha26

2024 年 10 月 2 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha26。版本 1.0.0-alpha26 包含这些提交内容

API 变更

  • 我们更新了 HorizontalPageIndicator 的 API 和外观,并添加了 VerticalPageIndicator 以便与 VerticalPager 搭配使用 (Ic9309)
  • 对于不需要 EdgeButton 的自定义布局,AlertDialog 现在支持从按钮堆叠变体中省略默认底部按钮。(I34fa9)
  • 我们为 Wear Material 3 添加了 SwipeToReveal 组件 (Ic38b2)
  • 针对当前屏幕不支持滑动关闭的极少数情况,我们在 SwipeToReveal 中添加了对双向滑动的支持。默认情况下,仍仅在从右向左滑动时执行滑动展开操作,强烈建议遵循默认行为,以免与滑动关闭操作发生冲突。(Ifac04)
  • 我们已将 EdgeButtonbuttonHeight 参数重命名为 preferredHeight。(I4fab3
  • Kotlin 版本已更新为 1.9 (I1a14c)
  • 我们已将 OpenOnPhoneDialogDefaults.Icon 重命名为 OpenOnPhoneDialogDefaults.OpenOnPhoneIcon,以避免与 Icon 冲突(I0f391)
  • 我们在 LazyColumn 中添加了对 ScrollIndicator 的支持。(Ia546a)
  • 我们更新了 TextToggleButtonIconToggleButton 的默认值。(I7aaa9
  • 我们简化了 PickerPickerGroup API。(Id0653)
  • 我们添加了 CardDefaults.ShapeCardDefaults.Height,这两个令牌原本对使用该库的开发者而言是私有的。(I1594ab/347649765
  • 我们已将二进制分段圆形进度指示器的进度参数重命名为 segmentValue。(Ib72d9)
  • 我们更新了滑块的颜色和布局。(Ic3eec)

bug 修复

  • 我们更新了 openOnPhone 图标动画 (I66f85)
  • 目前,我们在 SliderTimePickerDatePicker 中使用 Google 符号图标。(I46c7c)
  • 我们更新了 ConfirmationOpenOnPhoneDialog 中的内边距。(Iaa82e)

版本 1.0.0-alpha25

2024 年 9 月 18 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha25。版本 1.0.0-alpha25 中包含这些提交内容

API 变更

  • 我们添加了不确定性圆形进度指示器。(I427a7)
  • 我们为 CircularProgressIndicatorSegmentedCircularProgressIndicator 添加了对进度溢出(进度大于 100%)的支持。当进度超过 1.0 时,系统会使用新的 overflowTrack 颜色来指示这一点。(Iaaa3d
  • 圆形 IconToggleButtonTextToggleButton 现在支持新的形状动画变体,其中不同的形状表示选中、未选中和按下状态。系统仍支持之前针对刚按下状态的动画形状变化。(I29f03)
  • 由于需要在 ScreenScaffold 中明确指定 EdgeButton 高度,因此我们已移除对将 EdgeButtonColumn 搭配使用的支持。(Ie353d)
  • 我们添加了对 Wear Compose LazyColumnScreenScaffold 支持(并为 LazyColumnState 添加了 ScrollInfoProvider 实现)。(Ib8d29)
  • 我们已将 LocalTextMaxLinesLocalTextAlignLocalTextOverflow 合并为单个 LocalTextConfiguration Local 组合,以便今后提供更可扩缩的解决方案。(I5edbc)
  • 我们添加了 arc-large 作为额外的类型尺寸,专用于屏幕顶部或底部的简短标题文本字符串,例如确认叠加层中。(I60e3e
  • 我们在 Button 中添加了默认值,以便推荐较大和超大图标大小以及内容内边距。(I84675

bug 修复

  • 我们更新了 IconButtonTextButton 的颜色。(I48324)
  • 我们已将基本按钮重载更改为垂直居中对齐,以便与其他重载保持一致。如需恢复之前的行为,请使用 RowScope 中的 Modifier.align。(I66e57)

版本 1.0.0-alpha24

2024 年 9 月 4 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha24。版本 1.0.0-alpha24 中包含这些提交内容

API 变更

  • 我们在 Material3 主题中添加了动效方案。库中的各个组件将使用此属性来应用动画规范,例如弹簧来实现富有表现力的动作。(I54ff3)
  • 我们已向 Material3 库添加了 AppScaffoldScreenScaffold 组件,其中包括用于协调 TimeTextScrollIndicator 的层次结构和转场功能。AppScaffold 提供位于所有屏幕之上的顶级 Scaffold 组件。因此,向 AppScaffold 添加 TimeText 可让其在屏幕之间滑动时保持原位。屏幕本身可以替换或隐藏时间文本。ScreenScaffoldScrollIndicator 提供了一个槽位,并在滚动时自动为滚动指示器添加动画效果,包括超时,以便在处于非活动状态后隐藏滚动指示器。(I047d6)
  • 我们添加了具有新 Material3 设计的 ScrollIndicator。滑块的大小基于初始列表内容而固定,以避免在延迟加载内容到列表时出现大小变化。(Ic228d)
  • 我们更改了 ScrollAway API,使 ScreenStage 成为值类而非枚举类,以便日后根据需要添加其他阶段。(I48c93)
  • 我们添加了 EdgeButton,这是一个独特的 Wear 专用按钮,其形状遵循屏幕底部曲度 (I16369)
  • 我们在 ScreenScaffold 中添加了一个用于底部按钮(例如 EdgeButton)的新槽,该槽会根据滚动内容显示和调整大小 (I032eb)
  • 我们添加了 Modifier.scrollTransformModifier.targetMorphingHeight,以向 LazyColumn 中的项添加 Material3 运动效果。(Ie229a)
  • 我们在 CircularProgressIndicator 中添加了 SegmentedCircularProgressIndicator 作为变体。细分变体会显示所有细分中的单个进度值,或显示每个细分处于启用/停用状态。I6e059
  • 我们添加了 LinearProgressIndicator 作为现有 CircularProgressIndicator 的替代方案。(I89182)
  • 我们添加了 AlertDialog,用于提供向用户显示重要提示的布局。此类变体适用于一对确认/关闭按钮,或堆叠选项下方的单个底部按钮(通常为 EdgeButton)。这两种变体都有用于显示图标、标题和其他文本的槽位,以提供更多详细信息。(Ieb873)
  • 我们添加了 OpenOnPhoneDialog,该属性应用于指示将在用户手机上继续执行的操作。OpenOnPhoneDialog 会在指定超时后关闭。(I978fd)
  • 我们添加了 Confirmation,这是一个对话框组件,包含用于显示图标以及曲线或线性文本的槽位。为成功/失败消息提供了特定的变体。超时后,系统会自动关闭确认消息。(Ib43e8
  • 我们为 TimeText 添加了背景,以缓解底层内容与 TimeText 重叠并遮挡时间的问题。(Ia11fd)
  • 我们添加了 LevelIndicator,用于显示音量等设置的值,并可与现有 Stepper 组件一起使用,以构建音量屏幕。LevelIndicatorScrollIndicator 类似,但显示在屏幕的另一侧,并且默认具有更宽的描边宽度和不同的指示器颜色。(I8a4ac
  • 我们添加了 TimePicker,其中包含 24 小时制(带或不带秒数)或 12 小时制(可选择上午/下午)的时间布局。(Ia5124)
  • 我们添加了 DatePicker,其中包含列排序(即 日-月-年、月-日-年或年-月-日)和可选的最小/最大日期的配置。(Ibf13b)
  • 我们向 TimeTexttext 函数添加了一个权重参数。如果 TimeText 由多个文本元素组成,则可以通过此属性控制空格的分配方式。(I36700)
  • 我们添加了 RadioButtonSplitRadioButton,这些组件通过组合 (Split)SelectableButton 和子单选按钮 (If7ae8) 简化了之前的 API
  • 我们添加了 CheckboxButtonSplitCheckboxButton,这些组件通过组合 (Split)ToggleButton 和子复选框控件 (Ia8f70) 简化了之前的 API
  • 我们添加了 SwitchButtonSplitSwitchButton,这些组件通过组合 (Split)ToggleButton 和子 Switch 控件来简化之前的 API (I0d349)
  • 我们更新了 AnimatedText 文档,以说明超出行为。(Iff30a)
  • 我们添加了 ButtonGroup 来组合 2 个或 3 个按钮,以便按下按钮时产生协调的动画。(Ie27db)
  • 我们为 IconButtonTextButton 添加了可选的按压形状动画。(Iffca5)
  • 我们为 ButtonIconButtonTextButtonCompactButtonEdgeButton 添加了额外的颜色变体 FilledVariant (I65fc3)
  • 我们向 ImageWithScrimPainter 添加了 forcedSize 参数,以便按钮图片背景现在默认保持其组件大小。设置 forcedSize = null 时,系统会改用 Painter.instrinsicSize。(Ic57af)
  • 我们在 Button 中添加了长按 (Ib613d)
  • IconButtonTextButton 中也添加了长按支持。(I38891)
  • 为卡片添加了长按支持。(I305d5)
  • 我们添加了 LocalTextMaxLinesLocalTextAlignLocalTextOverflow 作为 CompositionLocals,并将它们用作 Text 的参数默认值。现在,CheckboxButtonSwitchButtonRadioButton 等组件可以使用组合本地变量来实现用户体验指南,但开发者可以根据需要替换这些参数。(Iab841
  • 我们添加了 Placeholder,用于在加载数据之前帮助遮盖按钮和卡片等组件的内容。(I1a532)
  • 我们添加了 IconToggleButtonColorsTextToggleButtonColors,以替换现已移除的 ToggleButtonColors。(Ie0bf1)

bug 修复

  • 我们更新了 ButtonFilledTonalButtonOutlinedButtonChildButtonCompactButton,以使用新的 CompositionLocals LocalTextMaxLinesLocalTextAlignLocalTextOverflow 来实现用户体验指南。如有必要,开发者可以直接在 Text 上替换这些参数 (Ie51f7)
  • 我们已将 LevelIndicator 的默认描边宽度更改为 6dp,以将其与描边宽度为 4dpScrollIndicator 区分开来。(If6f63)
  • 我们修复了 TimeText 中的一个问题,以支持更大的扫描角度。(Ie489f)
  • 修复了 EdgeButton 重组期间出现的问题。(I4cdca
  • 更正了提供自定义内容内边距时的分屏切换按钮布局。(Ia33d3
  • 将小进度值向上舍入,至少为进度指示器的线条宽度。(I3bd84

版本 1.0.0-alpha23

2024 年 5 月 14 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha23。版本 1.0.0-alpha23 中包含这些提交内容

API 变更

  • 我们更新了 ToggleButtonRadioButton API,以便配置已停用的颜色。(If13a7)
  • 我们为 Material3 添加了新的 CircularProgressIndicator。(Ib3bd7)

bug 修复

  • 我们修复了以下 bug:可选择的按钮在已选中时会读出“点按两次即可切换”。(I7ed88)

版本 1.0.0-alpha22

2024 年 5 月 1 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha22。版本 1.0.0-alpha22 包含这些提交内容

API 变更

  • 我们更新了 Material3 ColorScheme。(I7b2b8)
  • 我们更新了 Material3 开关,并进行了一些颜色更改,现在对勾标记与用于复选框的对勾标记一致。(Icac7b)

bug 修复

  • 更新所有集成演示以使用新的 rotaryScrollable 修饰符。(I25090)

版本 1.0.0-alpha21

2024 年 4 月 17 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha21。版本 1.0.0-alpha21 中包含这些提交内容

  • 触发此版本的原因是前一个版本中存在导致源 JAR 缺失的技术问题。此版本没有任何新提交。

版本 1.0.0-alpha20

2024 年 4 月 3 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha20。版本 1.0.0-alpha20 中包含这些提交内容

bug 修复

  • 我们调整了按压状态和聚焦状态的涟漪 Alpha 值以提高对比度。(I59f0a
  • 我们在 ButtonToggleButtonRadioButton 中为主标签和辅标签添加了间距,以适应对排版样式和行高所做的最新更改。(I2c0ba)

版本 1.0.0-alpha19

2024 年 3 月 6 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha19。版本 1.0.0-alpha19 中包含这些提交内容

API 变更

  • 我们在 Wear Compose Material3 库中添加了 TimeText。此组件在屏幕顶部显示当前时间(以及其他状态)。全新的简洁 Material3 API 可避免线性内容和曲线内容出现重复。(I4d7c3
  • 我们已将 RadioButton 的参数名称从 onSelected 更新为 onSelect。(I1a971
  • RadioButtonSplitRadioButton 进行令牌化,并重构现有方法,通过添加缓存的颜色实例并将 RadioButtonColorsSplitRadioButtonColors 的方法设为内部方法,从而减少 CompositionLocal 查找次数。(I02b33

版本 1.0.0-alpha18

2024 年 2 月 21 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha18版本 1.0.0-alpha18 中包含这些提交内容

API 变更

  • 我们通过在内部创建缓存实例并减少 CompositionLocal 的使用,重构了 CardColorsToggleButtonColorsSplitToggleButtonColors 的默认模式。(If3fec)

版本 1.0.0-alpha17

2024 年 2 月 7 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha17版本 1.0.0-alpha17 中包含这些提交内容

API 变更

  • 我们已将 Button API 更新为默认使用 buttonColors,并移除了重复的 filledButtonColors。(I4fe3b)
  • 我们通过在内部创建缓存实例并减少 CompositionLocal 的使用,重构了 ButtonColorsIconButtonColorsTextButtonColors 的默认模式。(I5f51c)
  • 我们移除了组件专用颜色类中的 rememberUpdatedState 开销,并将颜色类中的访问器方法标记为内部方法。(If6571)

bug 修复

  • 我们已将 Modifier.minimumInteractiveComponentSize 更新为使用 Modifier.node。(Iba6b7

版本 1.0.0-alpha16

2024 年 1 月 24 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha16版本 1.0.0-alpha16 中包含这些提交内容

新功能

  • 我们添加了 CompactButton,它可以使用与 Button 相同的填充、填充色调和轮廓颜色。I05df0

API 变更

  • 我们添加了 RadioButton/SplitRadioButton 作为选择控件(例如单选按钮控件)的容器。这与现有的 ToggleButton 不同,因为 RadioButton 可选择(并在选择组中运行),而 ToggleButton 可切换(且独立)。(I61275)
  • 为了与 Compose Material3 库保持一致,我们将从 Wear Compose Material3 库中移除 LocalContentAlpha。(I49a0a)
  • 在其 API 中公开 MutableInteractionSource 的 Wear Material 和 Wear Material3 组件已更新,现在公开的可为 null 的 MutableInteractionSource,默认为 null。这里没有语义更改:传递 null 表示您不希望提升 MutableInteractionSource,系统将根据需要在组件内创建它。如果更改为 null,则某些组件永远不会分配 MutableInteractionSource,而允许其他组件仅在需要时延迟创建实例,从而提高这些组件的性能。如果您不使用传递给这些组件的 MutableInteractionSource,建议您改为传递 null。此外,建议您在自己的组件中进行类似的更改。(Ib90fcb/298048146
  • wear:compose-materialwear:compose-material3 库中添加了新的涟漪 API,该 API 取代了已废弃的 rememberRipple。此外,还添加了临时 CompositionLocal LocalUseFallbackRippleImplementation,用于将 Material 组件还原为使用已废弃的 rememberRipple/RippleTheme API。此方法将在下一个稳定版本中移除,仅在您提供自定义 RippleTheme 的情况下作为临时迁移辅助工具。如需了解迁移信息以及此次变更的更多背景信息,请访问 developer.android.com。 (af92b21
  • 我们对 HorizontalPageIndicator API 及其文档进行了细微改进。(I60efc)
  • 我们已将 ColorScheme 更新为不可变,这降低了个别颜色更新的效率,但提高了更常见的颜色使用效率。此更改背后的原因是,大多数应用都不会将更新各个颜色作为主要用例。这仍然可行,但会比以前进行更多重组,进而显著减少通过所有 Material 代码进行的状态订阅量,并会影响更多标准用例的初始化和运行时开销。(Ibc2d6
  • 更新了 ToggleButtonSplitToggleButton API,以允许自定义停用颜色。此外,Material Design 令牌现在用于颜色和排版值。(If087c)
  • 更新了按钮图片背景颜色,以使用 Material Design 令牌。(Iba215)
  • 我们移除了点击处理,将 CheckboxSwitchRadioButton 组件更改为仅显示。这些组件预计将在处理点击的 (Split)ToggleButton 中使用,因此现在更明确地将这些组件标记为仅用于显示(不适合在 Wear 上单独使用)。(I2322e)

bug 修复

  • 我们在 Wear Compose Material 3 中为时长和缓和的动作值添加了令牌。(I437cd)
  • 我们修复了 ToggleButtonSplitToggleButtonCheckboxSwitchRadioButton 中的 bug,以免重复播报无障碍功能播报(之前,语义角色会重复)。(Ica281)
  • 我们移除了 CompactButton 的 materialcore 层,以提高性能。(7902858)

版本 1.0.0-alpha15

2023 年 11 月 15 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha15版本 1.0.0-alpha15 中包含这些提交内容

API 变更

  • 我们已将“基础”级别 SwipeToDismissBox 重命名为 BasicSwipeToDismissBox。这样可以更清晰地区分 Foundation 级组件和 Material3 级 SwipeToDismissBox。后者会从 MaterialTheme 中提取颜色以用于遮罩,并将其余实现委托给 BasicSwipeToDismissBox。(Ibecfc

bug 修复

  • 我们移除了 Material3 按钮的 material-core 层,以提高性能。(I55555)

版本 1.0.0-alpha14

2023 年 10 月 18 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha14版本 1.0.0-alpha14 中包含这些提交内容

API 变更

  • 我们已从 Material3 HorizontalPageIndicator 中移除 indicatorStyle 参数,改为采用设备屏幕形状(线性或圆形)。(I83728
  • 我们添加了新的 SplitToggleButtonColors 类,将 SplitToggleButton 的颜色与 ToggleButton 的颜色分离开来。(I78bee)

版本 1.0.0-alpha13

2023 年 10 月 4 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha13版本 1.0.0-alpha13 中包含这些提交内容

API 变更

  • 我们为 TitleCard 添加了一个可选的副标题字段。(Ifc45a)
  • 我们为 TextButton 添加了 Material Design 颜色令牌。(I769dc)

版本 1.0.0-alpha12

2023 年 9 月 20 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha12版本 1.0.0-alpha12 中包含这些提交内容

API 变更

  • 我们更新了 IconButton,以使用 Material Design 令牌。(I3f137)
  • 我们更新了 IconToggleButton,以使用 Material Design 令牌。(I7d263)
  • 我们公开了 CheckboxColorsRadioButtonColorsSwitchColors 的构造函数。(I82b73

版本 1.0.0-alpha11

2023 年 9 月 6 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha11版本 1.0.0-alpha11 中包含这些提交内容

bug 修复

  • 我们已将 Material3 卡片的排版更新为 TitleMedium。(I597bd)
  • 我们更新了 Material3 ListHeaderListSubheader 的排版和对齐方式。(Ib5ceb)

版本 1.0.0-alpha10

2023 年 8 月 23 日

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

新功能

  • 在 Wear Material3 库中添加了 HorizontalPageIndicator。(Ifee99)

API 变更

  • 更新了按钮代码,以使用 Material3 设计令牌。(I92fe4)
  • 将 Wear Material 3 步进器和滑块 API 声明为实验性 API,因为界面细节仍在最终确定中。(I84d54)
  • 我们已从第 TextButton 轮和第 TextToggleButton 轮中移除 ExtraSmall 大小,因为该大小仅适用于 IconButton。(Ibc7d5)

bug 修复

  • 我们更新了 TextToggleButton 的排版指南,以便使用 LabelLarge 作为 LargeButtonSize 的值 (Ib10fa)
  • 我们更新了 TextButton 的排版指南,以便针对 LargeButtonSize 使用 LabelLarge (I8f3a7)
  • 为方便用户访问,我们已将卡片的最小触摸目标设置为 48dp。(Ieb9b1)
  • 添加了包含图片的 AppCard 演示,移除了包含背景的 AppCard 演示 (Id735f)
  • 修复了圆形按钮中修饰符未正确链接的 bug。(I5e162)

版本 1.0.0-alpha09

2023 年 8 月 9 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha09版本 1.0.0-alpha09 中包含这些提交内容

新功能

  • 我们为 material3 添加了 ToggleButton (I6bed6)

API 变更

  • 我们已启用 FloatRange 注解作为 API 约束条件,这一点之前在注释中有所说明。(Icb401
  • 我们更新了 Wear Material 3 的排版,以符合最新的 Material3 准则。(I1bad6)

bug 修复

  • 我们根据 Material3 设计更新了 ButtonIconButtonTextButton 的颜色。(Ib2495)
  • 我们修复了停用状态下的复选框对勾显示问题。(Ib25bf)

版本 1.0.0-alpha08

2023 年 7 月 26 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha08版本 1.0.0-alpha08 中包含这些提交内容

新功能

  • 我们为 Material3 添加了以下选择控件:SwitchCheckboxRadioButton。(Ib918c
  • 我们在 Material3 中添加了 IconToggleButtonTextToggleButton,这两个圆形切换按钮分别有一个用于放置图标和文本的槽位。如果 ToggleButton 具有不同的尺寸,建议您将 Modifier.touchTargetAwareSize 与各个切换按钮中提供的尺寸搭配使用。(I9f015)
  • 我们向 Material3 组件添加了 ListHeaderListSubheader。(Ibaefe)
  • 我们添加了 Material3 SwipeToDismissBox,它会调用新的 Foundation SwipeToDismissBox 并提供其主题中的默认颜色值。(I275fb)
  • 我们已将 Material3 InlineSlider 添加到 Wear Compose。它可让用户从一系列值中进行选择。选择范围会显示为最小值到最大值的横条,用户可以从该范围中选择单个值。InlineSlider非常适合调整音量或亮度等设置。(I7085f)

API 变更

  • 我们更新了 Wear Material 3 主题中的形状,以使用基于 RoundedCornerShape 的形状,而不是 Shape。(Idb133)
  • 我们已将 Button 的高度常量设为公开 (Idbfde)
  • 更新了 API 文件,以便为兼容性抑制添加注解。(I8e87ab/287516207
  • 我们更新了 Wear Compose Material 3 中的 InlineSliderColors,使其具有公开构造函数和公开属性。(I6b632)
  • 我们更新了 Wear Compose Material 3 中的所有颜色类,使其具有公共构造函数和公共属性。(I17702)
  • 我们已将 Button 的水平和垂直内边距常量设为公开。(Ieeaf7)

bug 修复

  • 现在,按钮会根据需要调整其高度,以容纳因无障碍功能而增大字体的文本内容 (Iaf302)
  • 我们更新了多个按钮演示,以解决无障碍问题。(I61ce9)
  • StepperInlineSlider 现在支持在长按时重复点击,这样您就可以通过按住 + 或 - 按钮快速增加/减小 StepperInlineSlider 的值 (I27359)

版本 1.0.0-alpha07

2023 年 6 月 21 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha07版本 1.0.0-alpha07 中包含这些提交内容

新功能

  • 我们已将 Stepper 组件添加到 Compose for Wear OS Material 3 库中。这与之前的 Material 版本类似,但根据开发者反馈,默认会省略范围语义。我们为需要范围语义的情况提供了 Modifier.rangeSemantics。(Ic39fd)
  • 我们已将 curvedText 添加到 Compose for Wear OS Material 3 库中。(Ia8ae3)

bug 修复

  • 我们已将 wear.compose.foundation 更新为 wear.compose.material3 的 API 依赖项 (I72004b/285404743)

版本 1.0.0-alpha06

2023 年 6 月 7 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha06版本 1.0.0-alpha06 中包含这些提交内容

bug 修复

  • 我们更新了 TextButton,以使用 toDisabledColor 扩展函数来获取正确的停用 Alpha 值。(I814c8)

版本 1.0.0-alpha05

2023 年 5 月 24 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha05版本 1.0.0-alpha05 中包含这些提交内容。

新功能

  • 我们向 Material3 添加了 TextButton,这是一个圆形按钮,有一个用于文本的槽位。对于不同大小的 TextButton,我们建议使用 TextButtonDefaults 中提供的 Modifier.touchTargetAwareSizeExtraSmallButtonSizeSmallButtonSizeDefaultButtonSizeLargeButtonSizeIcon。针对低强调度操作,默认 TextButton 没有边框和透明背景。对于需要高强调度的操作,请使用 filledTextButtonColors;对于中等强调度的轮廓 TextButton,请将边框设置为 ButtonDefaults.outlinedButtonBorder;对于介于轮廓和填充之间的中间效果,请使用 filledTonalTextButtonColors。(I667e4)
  • 我们已将 CardOutlinedCardAppCardTitleCard 添加到 Wear Compose Material3 库中。您还可以使用 CardDefaults.outlinedCardColorsCardDefaults.outlinedCardBorderAppCardTitleCard 设置轮廓外观(I80e72)

API 变更

  • 我们已将按钮标签参数移至末尾以支持尾随 lambda 语法,并移除了角色参数(因为此参数可以使用 Modifier.semantics 替换)。ButtonColors 构造函数现在是公共的。(Ie1b6d)

版本 1.0.0-alpha04

2023 年 5 月 10 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha04版本 1.0.0-alpha04 中包含这些提交内容

新功能

  • 我们在 Material3 中添加了 IconButton,这是一个圆形按钮,有一个用于图标/图片的槽位。有四种变体:IconButtonFilledIconButtonFilledTonalIconButtonOutlinedIconButton。对于不同大小的 IconButton,我们建议使用 IconButtonDefaults 中提供的 Modifier.touchTargetAwareSizeExtraSmallButtonSizeSmallButtonSizeDefaultButtonSizeLargeButtonSizeIcon。我们还提供 IconButtonDefaults.iconSizeFor,用于确定给定按钮大小的推荐图标大小。(I721d4)

版本 1.0.0-alpha03

2023 年 4 月 19 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha03版本 1.0.0-alpha03 中包含这些提交内容

API 变更

  • 我们添加了 Material 3 按钮组件,这是我们的体育馆形按钮,在 Wear Compose Material 库中以前称为条状标签(为了与 Compose Material 3 库保持一致,已重命名为按钮)。默认按钮具有填充的背景,并且有 FilledTonal(柔和的背景)、Outlined(透明且带有细边框)和 Child(透明背景且无边框,用于最不显眼的补充操作)等按钮变体。适用于简单图标和文本内容的圆形按钮将在未来的版本中推出。Ia6942

版本 1.0.0-alpha02

2023 年 4 月 5 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha02版本 1.0.0-alpha02 中包含这些提交内容

bug 修复

  • 我们向 Wear Compose Material 3 添加了 DefaultTextStyle,用于将 PlatformTextStyle.includeFontPadding 默认设置为 true(当前设置)。这样一来,我们日后便可与 Compose 库同步默认关闭字体内边距(请参阅修复 Compose 中的字体内边距问题)。(I7e461)

版本 1.0.0-alpha01

2023 年 3 月 22 日

发布了 androidx.wear.compose:compose-material3:1.0.0-alpha01版本 1.0.0-alpha01 中包含这些提交内容

新功能

  • Material 3 是新一代 Material Design,包括已更新的主题和重新设计的组件。Wear Compose 上的 Material 3 旨在与 Android 上的 Material 3 Compose 库相得益彰。第一个 Alpha 版本包含以下对象的早期功能性实现:

    • Material 主题 - 用于为库中的各个组件配置统一的配色方案、排版和形状。Material3 主题的颜色经过了修改,支持易于访问的对比度。(I84005)
    • 文本/图标 - Wear Compose 应用的构建块 (I8e06a)
  • 我们将继续同时开发 Wear Material (androidx.wear.compose:compose-material) 和 Wear Material 3 (androidx.wear.compose:compose-material3)。未来的 material3 版本将扩展 widget 集,以纳入 Compose for Wear OS 中的其他熟悉的组件,例如按钮、选择器和滑块。

  • Wear Material 库和 Wear Material 3 库是互斥的,不应在同一应用中混用,这主要是因为它们引用不同的主题,这会导致意外的不一致性。

Wear Compose 版本 1.5

版本 1.5.0-alpha05

2024 年 10 月 30 日

发布了 androidx.wear.compose:compose-*:1.5.0-alpha05。版本 1.5.0-alpha05 包含这些提交内容

API 变更

  • 我们在 TransformingLazyColumnState 上添加了对 animateScrollTo 的支持,以便滚动到某个项时可以显示动画效果。(I4097d
  • 我们在 TransformingLazyColumnState 上添加了 requestScrollTo,以将滚动延迟到下次衡量。(I20a5e)
  • 我们在 TransformingLazyColumn 中添加了对 contentPadding 的支持。(I3a69c)

bug 修复

  • 我们修复了在内容高度小于屏幕高度时渲染 TransformingLazyColumn 时出现的 bug。(I6c3e1
  • TransformingLazyColumnScrollInfoProvder 现在可以正确跟踪第一项。(I1e4a3)
  • TransformingLazyColumnState 现在会保存其状态 (anchorItemIndexanchorItemScrollOffset)。I3d265

版本 1.5.0-alpha04

2024 年 10 月 16 日

发布了 androidx.wear.compose:compose-*:1.5.0-alpha04。版本 1.5.0-alpha04 包含这些提交内容

API 变更

  • 我们已将 Wear Compose Foundation LazyColumn 重命名为 TransformingLazyColumn,以便更清楚地区分它与 Compose Foundation LazyColumn。(I0608b)
  • 为水平/垂直分页器添加了旋转支持,让用户可以使用旋转输入设备浏览分页器。(I9770d)
  • 我们更新了新的 PagerDefaults,以明确说明分页器默认会贴靠到页面。(Iff7d0)
  • TransformingLazyColumnItemScrollProgress 现在是一个值类,这应该会提高性能。(Ic399e)
  • TransformingLazyColumn 现在支持开箱即用的旋转。(I05206)
  • TransformingLazyColumnState 现在支持 scrollToItem。(I507b3)
  • SwipeToReveal API 中移除了 @ExperimentalWearFoundationApi (I34a66)

版本 1.5.0-alpha03

2024 年 10 月 2 日

发布了 androidx.wear.compose:compose-*:1.5.0-alpha03。版本 1.5.0-alpha03 包含这些提交内容

API 变更

  • 我们在 SwipeToReveal 中添加了对双向滑动的支持,以应对当前屏幕不支持滑动关闭的极少数情况。。默认设置仍然是仅在从右向左滑动时通过滑动显示,强烈建议您遵循此默认行为,以免与滑动关闭发生冲突。(Ifac04)
  • 我们更新了 LazyColumnState,以替换 canScrollForwardcanScrollBackward。现在,当第一项或最后一项正好位于屏幕中心时,这会停止滚动。(Ia77d7)
  • 我们添加了新的 HorizontalPagerVerticalPager 组件,以解决 Wear 上可能出现的常见问题,例如焦点处理和与系统滑动关闭功能互动。(I2902b)
  • 我们添加了对 LazyColumn 的支持,以便通过 layoutItems 公开客户端的 keycontentType。(I1bd9c)

bug 修复

  • 我们使用绘制标志更新了曲线文本动画,使其更加流畅。(I73a15)
  • 我们更新了 Material Dialog 文档,以反映在 show 标志设置为 false 后不会调用 onDismissRequest。(Ifd8d6)
  • 我们修复了 Material 对话框中的晕影动画 bug (I126bf)

版本 1.5.0-alpha02

2024 年 9 月 18 日

发布了 androidx.wear.compose:compose-*:1.5.0-alpha02。版本 1.5.0-alpha02 包含这些提交内容

API 变更

  • 我们在 ScreenScaffold 中添加了对 Wear Compose LazyColumn 的支持(并为 LazyColumnState 添加了 ScrollInfoProvider 实现)。(Ib8d29)
  • 我们已将 viewportSize 添加到 LazyColumnLayoutInfo。(I4187f)

bug 修复

  • 我们修复了一个 bug,现在当 userScrollEnabled 标志设置为 false 时,ScalingLazyColumn 中的旋转滚动会停用。(I490abb/360295825
  • 我们修复了一个 bug,以解决曲线文本上出现的意外垂直内边距问题。曲线文本的高度现在更接近文本使用的实际空间。请注意,这可能会破坏涉及弯曲文本的屏幕截图测试 (Iaa6ef)
  • 我们还还原了 Dialog 的 bug 修复,因为在某些情况下,这会导致 onDismissRequest 被多次调用。在 showDialog 设置为 false 时,系统会调用 onDismissRequest 回调。(I64656)

版本 1.5.0-alpha01

2024 年 9 月 4 日

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

API 变更

  • 我们在 Wear Compose Foundation 库中添加了一个新的 LazyColumn,并提供了关联的 LazyColumnStateLazyColumnScope API。这为使用 Wear Compose 构建可自定义的缩放和变形效果奠定了基础。(Ib3b22)
  • 我们在新的 LazyColumn API 中向 LazyColumnScope 添加了带索引的 itemsIndexed 版本。(Ib4a57)
  • 我们添加了 LazyColumn 修饰符,以支持缩放和变形行为。(Ie229a
  • HierarchicalFocusCoordinator 已提升为稳定版。(I31035)
  • 我们为曲线文本添加了对字母间距的支持。(I3c740)
  • CurvedLayout.curvedComposable 添加了 rotationLocked 参数,以停止旋转组件。(I66898)
  • 移除了 Wear Material 和 Wear Material 3 中的临时 LocalUseFallbackRippleImplementation API (I62282)
  • @WearPreviewDevices 多视图中移除了 WearDevices.SQUARE (I11c02)

bug 修复

  • SwipeToReveal 现在会将展开的项放置在屏幕的可见部分,这在列表中使用 SwipeToReveal 时非常有用,这样一来,项始终可供互动,并且不会超出屏幕范围。(I38929)
  • 现在,SwipeToReveal 会在 animatedTo 完成后将 lastActionType 重置为 None。(I59b03
  • 改进了 curvedComposable 中新 rotationLocked 参数的文档。(Ifbd57)
  • 修复了在将 NaN 传递到 ScalingLazyColumnSnapFlingBehaviorperformFling 时发生崩溃的问题。(Ic13da)
  • 修复了曲线布局大小修饰符的 bug (I0fedf)
  • 我们添加了对以“sp”指定的字母间距的支持。(I9f6e3
  • 我们修复了 Material2 对话框中的一个 bug,该 bug 会导致在对话框变为不可见时不调用 onDismissRequest 回调 (I64656)
  • LayoutCoordinates.introducesFrameOfReference 重命名为 LayoutCoordinates.introducesMotionFrameOfReference,以更好地反映其用途。重命名了相关函数,以根据该标志计算坐标。(I3a330)

版本 1.4

版本 1.4.0

2024 年 9 月 4 日

发布了 androidx.wear.compose:compose-*:1.4.0。版本 1.4.0 包含这些提交内容

自 1.3.0 以来的重要变更

  • ScalingLazyColumnPicker 现在默认支持旋转输入 - 建议移除显式旋转处理,并采用默认系统行为。如有必要,请使用 rotaryScrollableBehavior 参数配置滚动或贴靠行为。对于贴靠行为,建议使用 flingBehavior 参数提供贴靠行为和触摸滚动功能。
  • Modifier.rotaryScrollable 是一个新的修饰符,用于将旋转事件与可滚动容器相关联,让用户能够在 Wear OS 设备上使用表冠或旋转屏幕边框进行滚动。
  • SwipeDismissableNavHost 现在为应用内转换提供了进入动画。
  • 现在,系统会在首次显示屏幕时默认显示 PositionIndicator

其他更改

版本 1.4.0-rc01

2024 年 8 月 21 日

发布了 androidx.wear.compose:compose-*:1.4.0-rc01。版本 1.4.0-rc01 包含这些提交内容

  • 我们已将 Compose 依赖项更新为 1.7.0-rc01,并将 Wear Compose Navigation 固定到 androidx.lifecycle 2.8.3

版本 1.4.0-beta03

2024 年 6 月 12 日

发布了 androidx.wear.compose:compose-*:1.4.0-beta03。版本 1.4.0-beta03 包含这些提交内容

bug 修复

  • 我们更新了 Modifier.rotaryScrollable,将“focusable”替换为“focusTarget”,从而提升性能。(Id294b)
  • 我们已修复 ProgressIndicatorTalkBack 下重复其通告的问题。(I94563)
  • 我们更新了 Wear Compose 库基准配置文件。(I3cbc3

版本 1.4.0-beta02

2024 年 5 月 29 日

发布了 androidx.wear.compose:compose-*:1.4.0-beta02。版本 1.4.0-beta02 包含这些提交内容

bug 修复

  • 我们增加了从弯曲文本传递给屏幕阅读器的边界宽度,以解决截断问题 (Id865f)。
  • 我们限制了传递给屏幕阅读器的 HorizontalPageIndicator 的边界 - 之前,该指示器占据了整个屏幕 (Id8d7a)。

版本 1.4.0-beta01

2024 年 5 月 14 日

发布了 androidx.wear.compose:compose-*:1.4.0-beta01。版本 1.4.0-beta01 包含这些提交内容

Compose for Wear OS 的 1.4-beta01 版本表明,此版本是一个功能完备且 API 已锁定的库(标记为实验性的除外)。Wear Compose 1.4 包含以下新功能:

  • 我们添加了 Modifier.rotaryScrollable,这是一个新的修饰符,用于将旋转事件与可滚动容器相关联,让用户能够在 Wear OS 设备上通过表冠或旋转屏幕边框滚动。此外,ScalingLazyColumnPicker 现在默认支持旋转输入。使用 rotaryScrollableBehavior 参数可配置滚动或贴靠行为。对于贴靠行为,建议通过 flingBehavior 参数提供贴靠,同时支持触摸滚动。
  • SwipeDismissableNavHost 现在为应用内转换提供了进入动画。
  • 现在,首次显示屏幕时,系统会默认显示 PositionIndicator
  • 添加了 SelectableChipSplitSelectableChip 作为 ToggleChip 的变体 - 将其与 RadioButton 一起使用,以便提供可选择的语义,而不是可切换的语义,以实现无障碍功能
  • ListHeader 现在支持在内容需要额外高度来容纳大号字体时进行高度调整。

bug 修复

  • 我们修复了以下 bug:可选择的条状标签在已选中时会播报“点按两次即可切换”。(I7ed88)

版本 1.4.0-alpha08

2024 年 5 月 1 日

发布了 androidx.wear.compose:compose-*:1.4.0-alpha08。版本 1.4.0-alpha08 包含这些提交内容

API 变更

  • 我们对新的旋转 API 进行了以下更改:将 Modifier.rotary 重命名为 Modifier.rotaryScrollable;将 RotaryBehavior 接口重命名为 RotaryScrollableBehavior,并将其函数 handleScrollEvent 重命名为 performScroll;将 RotaryScrollableAdapter 重命名为 RotaryScrollableLayoutInfoProvider,并移除了 scrollableState 属性。(I0c8a6)
  • 我们对旋转 API 进行了其他更改:将 RotaryScrollableLayoutInfoProvider 重命名为 RotarySnapLayoutInfoProvider(因为此提供程序仅适用于带卡顿的旋转功能);将 RotaryScrollableDefaults.snapBehavior snapOffset 中的 snapOffset 参数的类型从 Int 更改为 Dp。(Iddebe
  • 我们已将 SplitSelectableChip 上的 clickInteractionSource 参数重命名为 containerInteractionSource。(Ia8f84
  • 我们已更新 SplitSelectableChip 的点击回调参数名称,将 onClick 更新为 onSelectionClick,将 onBodyClick 更新为 onContainerClick。(I32237)

bug 修复

  • 我们已将 PositionIndicator 的水平内边距更新为 2dp(之前为 5dp),以修复 PositionIndicator(滚动条)与可滚动内容重叠的 bug。请注意,由于内边距发生变化,此变更可能会破坏包含 PositionIndicator 的现有屏幕截图。(I57472)
  • 我们改进了新旋转 API 的文档,介绍了低分辨率和高分辨率旋转设备之间的区别。(I63abe
  • 我们解决了 SwipeDismissableNavHost 中可能在插值 alpha 值小于零时触发的超出范围异常问题。(Ib75a1b/335782510

版本 1.4.0-alpha07

2024 年 4 月 17 日

发布了 androidx.wear.compose:compose-*:1.4.0-alpha07。版本 1.4.0-alpha07 包含这些提交内容

API 变更

  • 我们添加了 Modifier.rotary,这是一个新的修饰符,用于将旋转事件与可滚动容器相关联,让用户能够在 Wear OS 设备上通过表冠或旋转屏幕边框滚动。此外,ScalingLazyColumn 和 Picker 现在默认支持旋转输入,并且新的过载包含 rotaryBehavior 参数,用于指定滚动或卡顿的配置。如果 rotaryBehavior 参数设置为“snap”,则建议您还通过 flingBehavior 参数提供“snap”,以便触摸滚动。(I2ef6f)
  • NestedScroll 来源 Drag 和 Fling 已替换为 UserInputSideEffect,以适应这些来源的扩展定义,这些来源现在包括动画(附带效应)以及鼠标滚轮和键盘 (UserInput)。(I40579
  • 我们添加了 SelectableChipSplitSelectableChip,以便更清晰地区分 Switch/Checkbox 等切换控件和 RadioButton 等可选择控件。这会将之前添加的 ToggleChip/SplitToggleChip 重载替换为 selectionControl 参数。(Ia0217)
  • ProgressIndicatorDefaults 中的 IndeterminateStrokeWidth 的可见性修饰符更新为 public。(I5b5a4

版本 1.4.0-alpha06

2024 年 4 月 3 日

发布了 androidx.wear.compose:compose-*:1.4.0-alpha06。版本 1.4.0-alpha06 包含这些提交内容

bug 修复

  • 我们添加了旋转支持的内部草稿,这是从 Horologist 将旋转行为迁移到 AndroidX 的更大工作计划的一部分。(I617d1
  • 我们添加了触感反馈支持的内部草稿,这是从 Horologist 将旋转行为迁移到 AndroidX 的更大工作计划的一部分。(I5568a)

版本 1.4.0-alpha05

2024 年 3 月 20 日

发布了 androidx.wear.compose:compose-*:1.4.0-alpha05。版本 1.4.0-alpha05 包含这些提交内容

API 变更

  • 我们已将 ScalingLazyListStateinitialCenterItemIndexinitialCenterItemScrollOffset 属性设为公开。(I0c616)
  • 我们已将 ProgressIndicatorDefaults 中的 FullScreenStrokeWidth 设为公开。(Ibea23)

bug 修复

  • 我们通过减少 ScalingLazyColumnlayoutInfo 的调用次数,提高了 PositionIndicator 的性能。(Idc83d)

版本 1.4.0-alpha04

2024 年 3 月 6 日

发布了 androidx.wear.compose:compose-*:1.4.0-alpha04。版本 1.4.0-alpha04 包含这些提交内容

API 变更

  • 我们为 ToggleChipSplitToggleChip 添加了新的过载,该过载采用 selectionControl 参数(而非 toggleControl 参数)。它应与 RadioButton 控件搭配使用,以便提供可选择的语义(而不是可切换的语义)以实现无障碍功能 (I1d6d9)
  • 我们已将 ToggleChipSplitToggleChip 的新 selectionControl 过载的参数名称从 onSelected 更新为 onSelect (I1a971)

版本 1.4.0-alpha03

2024 年 2 月 21 日

发布了 androidx.wear.compose:compose-*:1.4.0-alpha03版本 1.4.0-alpha03 中包含这些提交内容

API 变更

  • Modifier.inspectable 封装容器已废弃。此 API 会导致修饰符的失效次数过多,因此我们现在不建议使用它。如果开发者希望向工具公开修饰符属性,建议在 ModifierNodeElement 上实现 inspectableProperties() 方法。(Ib3236)

bug 修复

  • 我们修复了 WearPreview* 注解的文档 bug。(Id526d

版本 1.4.0-alpha02

2024 年 2 月 7 日

发布了 androidx.wear.compose:compose-*:1.4.0-alpha02版本 1.4.0-alpha02 中包含这些提交内容

bug 修复

  • 我们修复了滑动以显示内容功能中的 bug,该 bug 会导致用户通过开始滑动另一个项来与某个项上的已提交操作互动(并取消该操作)。(Ide059)
  • 我们更新了 ListHeader,以支持在内容需要额外高度来适应较大的字体大小时进行高度调整。(I7290cb/251166127

版本 1.4.0-alpha01

2024 年 1 月 24 日

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

新功能

  • 我们在 SwipeDismissableNavHost 中添加了应用内转换的进入动画。cfeb79a
  • 现在,系统会在首次显示屏幕时默认显示 PositionIndicator。我们之所以做出这项更改,是为了帮助您遵守 Wear 质量指南。遗憾的是,这意味着,包含 PositionIndicator 的屏幕上的屏幕截图测试需要更新,因为 PositionIndicator 之前不会显示。(419cef7)

API 变更

  • 我们在 wear:compose-materialwear:compose-material3 库中添加了一个新的涟漪 API,该 API 取代了已废弃的 rememberRipple。此外,还添加了一个临时的 CompositionLocal LocalUseFallbackRippleImplementation,以将 Material 组件还原为使用已废弃的 rememberRipple/RippleTheme API。此方法将在下一个稳定版本中移除,仅在您提供自定义 RippleTheme 的情况下作为临时迁移辅助工具。如需了解迁移信息以及此次变更的更多背景信息,请访问 developer.android.com。(af92b21)
  • 我们已将 ColorScheme 更新为不可变,这降低了单个颜色更新的效率,但提高了更常见的颜色使用效率。之所以做出这项更改,是因为大多数应用不会将更新单个颜色作为主要用例。这仍然可行,但会比以前进行更多重组,进而显著减少通过所有 Material 代码进行的状态订阅量,并会影响更多标准用例的初始化和运行时开销。(f5c48b7)
  • 在其 API 中公开 MutableInteractionSource 的 Wear Material 和 Wear Material3 组件已更新,现在公开的 MutableInteractionSource 可为 null,默认为 null。这里没有任何语义上的更改:传递 null 表示您不想提取 MutableInteractionSource,并且它将在需要时在组件内创建。将其更改为 null 后,某些组件将永远不会分配 MutableInteractionSource,而其他组件仅在需要时才会延迟创建实例,从而提高这些组件的性能。如果您不使用传递给这些组件的 MutableInteractionSource,建议您改为传递 null。我们还建议您在自己的组件中进行类似的更改。(f8fa920)
  • 我们更新了 rememberExpandableState,以保存展开状态。这样可确保在导航到其他屏幕时存储数据,并在返回原始屏幕时恢复数据。(5c80095)

bug 修复

  • 我们已更新 ReduceMotion 设置,以使用生命周期感知型监听器。(7c6b122
  • 我们更新了 TouchExplorationStateProvider 的监听器,使其具有生命周期感知能力 (be28b01)
  • 我们移除了 CompactButton 的 Materialcore 层,以提高性能 (25db8e9)
  • 我们增强了 BasicSwipeToDismissBox 对 NaN 偏移的容错性,以避免异常 (b983739)
  • 我们更新了 BasicSwipeToDismissBox,以确保 Alpha 值在 0,1 范围内
  • 我们修复了 ToggleButtonSplitToggleButtonCheckboxSwitchRadioButton 中的 bug,以免重复播放无障碍功能播报(之前,语义角色会重复)(d11eeb7)

版本 1.3

版本 1.3.1

2024 年 4 月 3 日

发布了 androidx.wear.compose:compose-*:1.3.1。版本 1.3.1 包含这些提交内容

bug 修复

  • 我们修复了滑动以显示内容功能中的一个 bug,该 bug 会导致用户通过开始滑动另一个项来与某个项上的已提交操作互动(并取消该操作)。(Ide059)

版本 1.3.0

2024 年 1 月 24 日

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

自 1.2.0 以来的重要变更

  • SwipeToDismissBoxState 类、SwipeToDismissValue 枚举和 Modifier.edgeSwipeToDismiss 扩展函数现在分别属于 androidx.wear.compose.foundation 软件包(而非 androidx.wear.compose.material 软件包)。借助更新后的架构,您可以独立于其他设计注意事项来实现手势处理。Material Design 工作流(例如应用配置的主题中的颜色)会单独处理。
  • SwipeToRevealCardSwipeToRevealChip 类可帮助您实现 recommended swipe-to-reveal guidanceSwipeToRevealSample 类演示了如何使用这些组件。
  • 1.3.0-alpha02 版本引入了一项更改,该更改会导致 ChipToggleChip 对象的高度增加,以更好地支持用户选择的字体放大。这可能会导致出现一些剪裁。为解决此问题,MaterialThemelarge 形状现在使用较大的圆角半径(26 dp,而不是 24 dp)。ChipToggleChip 对象使用此新的圆角半径,以避免剪裁条状标签和 ToggleChip 的角落内容。

    • 大多数 ChipsToggleChips 保持不变,因为它们的默认高度为 52 dp。不过,如果 ChipToggleChip 对象包含多行主标签或次级标签文本,或者高度已被替换,则可能会导致屏幕截图测试中断。

其他更改

如需详细了解版本 1.3.0 中引入的变更,请参阅 Beta 版 01 的版本说明

实施建议

  • 如果您的应用允许用户平移屏幕内容(例如基于地图的应用),请在 SwipeDismissableNavHost 可组合项中将 userSwipeEnabled 设置为 false 以关闭滑动处理,并添加一个允许用户前往上一屏幕的按钮。
  • 如需在滚动列表中的淡入和位置更改动画期间关闭位置指示器的动画,请使用 SnapSpec 对象。
  • 在等待媒体应用加载内容以进行播放时,显示空白的 Placeholder 可组合项。
  • 如需按需创建一组可展开项,请考虑使用实验性 ExpandableStateMapping 类。

版本 1.3.0-rc01

2024 年 1 月 10 日

发布了 androidx.wear.compose:compose-*:1.3.0-rc01版本 1.3.0-rc01 中包含这些提交内容

bug 修复

  • 我们更新了 MaterialTheme 大形状,使其使用 26dp 的圆角半径,现在 Chip 和 ToggleChip 将使用此半径。此更改是为了支持在内容需要额外高度来适应大号字体时进行高度调整,否则现有的体育馆形状会剪裁部分文本内容。

    文本在角落处被截断
    图 1:文本在角落处被剪裁。
    文本未被截断
    图 2:文本未截短。

    此更改可能会导致屏幕截图测试中断。 (I2e6ae)

版本 1.3.0-beta02

2023 年 12 月 13 日

发布了 androidx.wear.compose:compose-*:1.3.0-beta02版本 1.3.0-beta02 中包含这些提交内容

bug 修复

  • 我们已在 BasicSwipeToDismissBox 中恢复了预期的滑动手势。在之前的版本中有所更改,例如幻灯片的过渡部分发生在手指触摸屏幕时。(Id8e76)

版本 1.3.0-beta01

2023 年 11 月 15 日

发布了 androidx.wear.compose:compose-*:1.3.0-beta01版本 1.3.0-beta01 中包含这些提交内容

Compose for Wear OS 的 1.3-beta01 版本表明,此版本是一个功能完备且 API 已锁定的库(标记为实验性的除外)。Wear Compose 1.3 包含以下新功能:

  • SwipeToDismissBoxStateSwipeToDismissValueModifier.edgeSwipeToDismiss 已从 androidx.wear.compose.material 迁移到 androidx.wear.compose.foundationBasicSwipeToDismissBox 中的底层滑动关闭实现也已迁移。这样,您就可以独立于 Material Design 使用滑动关闭手势处理,例如通过 androidx.wear.compose.navigation 中的 SwipeDismissableNavHost。我们仍建议将 androidx.wear.compose.material 中的 SwipeToDismissBox 与 Material Design 搭配使用,因为它会从 MaterialTheme 中提取颜色,然后将其余实现委托给 BasicSwipeToDismissBox
  • SwipeDismissableNavHost 现在支持新的 userSwipeEnabled 参数,以便在不需要滑动处理的屏幕上关闭滑动处理。
  • BasicSwipeToDismissBox 改进了使用 HierarchicalFocusCoordinator 的焦点处理。
  • SwipeToReveal 在 Material 中提供了新的 SwipeToRevealCardSwipeToRevealChip 可组合项,这些可组合项遵循了针对 CardChip 的建议用户体验指南。它还支持针对次要操作执行撤消操作。
  • DefaultTextStyle 现在关闭字体内边距,以便在 Android 平台上保持一致。
  • ChipToggleChip 现在会调整其高度,以适应因无障碍功能而使用大号字体而增多的内容
  • PositionIndicator 现在针对淡入、淡出和位置更改动画提供了单独的动画规范。出于性能方面的原因,我们建议在与可滚动列表搭配使用时关闭淡入和位置更改效果。
  • ExpandableStateMapping 提供了一种新的方法,可在需要按需创建且不一定使用 @Composable 范围时生成 ExpandableStates
  • Placeholder 现在允许在内容不再处于就绪状态时进行重置。此外,“减少动作”设置现在也适用于 Placeholder 上的闪烁效果和擦除动作。

已知问题

  • 首次显示屏幕时,系统不会立即显示 PositionIndicator。我们打算在 1.4 的早期 Alpha 版中进行更改,以便该图标在初始显示时不带有任何动画。

API 变更

  • 我们已将基础级 SwipeToDismissBox 重命名为 BasicSwipeToDismissBox。这使得基础级别组件和 Material 级别 SwipeToDismissBox 之间的区别更加明确。后者会从 MaterialTheme 中提取颜色以用于遮罩,并将其余实现委托给 BasicSwipeToDismissBox。(Ibecfc)
  • 我们已将 rememberExpandableStateMapping 标记为实验性,并改进了 expandableItem 的性能。(I5f6bc)
  • 我们使用 SwipeToRevealPrimaryActionSwipeToRevealSecondaryActionSwipeToRevealUndoAction 可组合项将 Material SwipeToReveal 卡片和条状标签 API 中的 SwipeToRevealAction 类替换成了基于槽的 API。如需查看有关如何使用新 API 的示例,请参阅示例代码。(Ia8943)
  • 我们已将 PositionIndicator 动画标志替换为 AnimationSpec 参数。您可以通过将 snap 作为 AnimationSpec 传递来停用各个动画。(I6c523

bug 修复

  • 我们修复了在大小受限时由受限曲线文本触发的 bug (I50efe)
  • 我们解决了与 curvedComposable 相关的潜在 NaN 崩溃问题 (I970eb)
  • 我们已恢复 PositionIndicator 中移除的位置更改突出显示动画的操作。(Ieb424)
  • 我们移除了 Material Chip 的 material-core 层,以提高其性能。(If2dcb)

版本 1.3.0-alpha08

2023 年 10 月 18 日

发布了 androidx.wear.compose:compose-*:1.3.0-alpha08版本 1.3.0-alpha08 中包含这些提交内容

API 变更

  • 我们在 PositionIndicator 重载中添加了各个标志,以控制不同的动画:showFadeInAnimationshowFadeOutAnimationshowPositionAnimation。旧版 API 已废弃,并会将调用转发到新 API。出于性能和用户体验一致性方面的原因,当 PositionIndicator 与可滚动列表搭配使用时,我们建议您关闭 showFadeInAnimationshowPositionAnimation 标志。如果将 PositionIndicator 用作独立的指示器(例如用于指示音量变化),我们建议您开启所有 3 个动画。(I44294)
  • 在将“滑动关闭”功能迁移到 wear.compose.foundation 后,我们已废弃 Material SwipeToDismissBoxStateSwipeToDismissValueedgeSwipeToDismiss。请替换为 wear.compose.foundation 等效项。(Iee8c9)

bug 修复

  • 我们更新了 Wear Compose 基础、Material 和导航库的基准配置文件。(Idb060)
  • 我们还原了上一个 CL 中引入的 PositionIndicator 的行为变更,以便在首次显示屏幕时以动画形式呈现 PositionIndicator。我们打算在 1.4 Alpha 版的早期版本中进行类似的更改,以便 PositionIndicator 在初始显示时不带有任何动画。(I41843)
  • 我们已解决 PositionIndicator 中的部分性能问题。(I1c654b/302399827
  • 我们优化了触摸探索状态提供程序默认实现的性能,使其依赖于 State<Boolean>(而不是派生状态)。(Ieec4d)
  • 我们为 Android 13 及更高版本设置了 systemGestureExclusion 矩形。(Ib1f4b)

版本 1.3.0-alpha07

2023 年 10 月 4 日

发布了 androidx.wear.compose:compose-*:1.3.0-alpha07版本 1.3.0-alpha07 中包含这些提交内容。

API 变更

  • 我们向 PositionIndicator 添加了各个标志,以控制不同的动画:showFadeInAnimationshowFadeOutAnimationshowPositionAnimation。旧版 API 已弃用,并将调用转发到新 API。出于性能和用户体验一致性方面的原因,当 PositionIndicator 与可滚动列表搭配使用时,我们建议关闭 showFadeInAnimationshowPositionAnimation 标志。如果将 PositionIndicator 用作独立的指示器(例如用于指示音量变化),我们建议您开启所有 3 个动画。(Ia2d63)

bug 修复

  • 我们改进了显示动作的滑动操作,具体方法是为主要操作文本添加淡出动画,并在用户完全滑动展开时淡化次要操作/更改图标缩放比例。(Ib7223
  • 建议将“滑动显示”操作设为可访问,并且我们在“滑动显示”示例中添加了自定义无障碍操作。(I42224)
  • 我们改进了 SwipeToDismissBox 的性能,包括重构,以确保初始逻辑不会触发重组。现在,SwipeToDismissBox 会绘制为全屏大小。(Ie0aa2)
  • 修复了 PositionIndicator 错误消失的 bug。(I2091a)
  • 通过优化重组提高了 PositionIndicator 的性能。随后添加了用于控制动画的新标志 (fadeInfadeOutpositionChange)(请参阅 API 变更)(Ifac7d)
  • 我们添加了针对 PositionIndicator 的 Microbenchmark 测试 (Idf875)

版本 1.3.0-alpha06

2023 年 9 月 20 日

发布了 androidx.wear.compose:compose-*:1.3.0-alpha06版本 1.3.0-alpha06 中包含这些提交内容

bug 修复

  • 我们添加了对 SwipeToRevealModifier.edgeSwipeToDismiss 的支持。(I95774b/293444286
  • 我们为 Material SwipeToRevealChipSwipeToRevealCard 添加了示例。(Ieb974)
  • 我们更新了 Wear Compose Foundation 和 Material 库的基准配置文件。(I1dd1f)

版本 1.3.0-alpha05

2023 年 9 月 6 日

发布了 androidx.wear.compose:compose-*:1.3.0-alpha05版本 Version 1.3.0-alpha05 中包含这些提交内容

bug 修复

  • 我们在“滑动即可显示”中添加了处理功能,以便一次只能滑动一个项目。(I3cd7a)
  • 改进了 ScalingLazyColumnDefaults 的文档,以更好地反映其实际行为。(I886d3)

版本 1.3.0-alpha04

2023 年 8 月 23 日

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

新功能

  • 我们为 SwipeToReveal 的次要操作添加了撤消功能。(I7a22d)

API 变更

  • 在 Wear Material3 库中添加了 HorizontalPageIndicator。(Ifee99)
  • 更新了 Wear Compose 预览工具,以使用 androidx.wear.tooling.preview 库。(Ib036e

bug 修复

  • 修复了圆形按钮中修饰符未正确链接的 bug。(I5e162

版本 1.3.0-alpha03

2023 年 8 月 9 日

发布了 androidx.wear.compose:compose-*:1.3.0-alpha03版本 1.3.0-alpha03 中包含这些提交内容

API 变更

  • 我们在 Material 中添加了两个新的可组合项,用于通过卡片和条状标签实现 SwipeToReveal。这些可组合项遵循建议的用户体验指南,让开发者能够更轻松地使用 Wear Material 中的现有组件实现 SwipeToReveal。(I7ec65
  • 我们已启用 FloatRange 注解作为 API 限制条件,这一点之前在注释中有所说明。(Icb401)

bug 修复

  • 我们已将 ScalingLazyColumn 的初始滚动逻辑移到了 onGloballyPositioned() 中。(Ic90f1
  • 我们现在在 PositionIndicatorProgressIndicatorSelectionControls 中使用 drawWithCache 来优化笔触分配。(I5f225b/288234617
  • 我们修复了停用状态下复选框对勾的可见性问题。(Ib25bf)
  • 我们更新了 Placeholder,以允许在内容不再处于准备就绪状态时重置以显示占位符。(Ibd820
  • 我们对不可靠的 Placeholder 测试进行了一些修复 (Idb560)

版本 1.3.0-alpha02

2023 年 7 月 26 日

发布了 androidx.wear.compose:compose-*:1.3.0-alpha02版本 1.3.0-alpha02 中包含这些提交内容

API 变更

  • 我们提供了 ExpandableStateMapping,这是一种生成 ExpandableStates 的新方法,适用于需要按需创建 ExpandableStates 的情况,而创建时不一定是在 @Composable 作用域内(Iff9e0
  • SwipeToDismissBox 已从 androidx.wear.compose.material 迁移到 androidx.wear.compose.foundation 软件包。(I275fb)
  • 更新了 API 文件,以注释兼容性抑制。(I8e87ab/287516207
  • 我们已将 ChipCompactChipToggleChip 的高度常量设为公开 (Idbfde)
  • 我们已将 ChipCompactChip 的水平和垂直内边距设为公开。(Ieeaf7)
  • 添加了通过新的 userSwipeEnabled 参数在 SwipeDismissableNavHost 中关闭滑动处理的功能。(Id2a0bb/230865655
  • 我们更新了 Wear Compose Navigation 库,以使用 Wear Compose Foundation 中的新 SwipeToDismissBox。(I4ff8e

bug 修复

  • 修复了 z 顺序 bug:如果按钮包含按钮,则 expandedItem 在点击按钮的行为后不会显示正确的内容。(I1899db/289991514
  • 使用 HierarchicalFocusCoordinator 改进了 SwipeToDismissBox(以及 SwipeDismissableNavHost)的焦点处理(I45362b/277852486
  • 我们修复了 SwipeableV2 中的手势处理。(I89737)
  • 我们已为 1.2 版确定基准配置文件。(Id5740)
  • 在将 SwipeToDismissBox 迁移到 Foundation 之后,Material SwipeToDismissBox 实现现在会转发到 Foundation,并提供其主题中的默认颜色值。(If8451)
  • 我们已向 ListHeader 添加标题语义。(Ic5420)
  • 现在,ChipToggleChip 会根据需要调整其高度,以容纳因无障碍功能而采用大号字体而增大的内容。(Iaf302)
  • 修复了 SplitToggleChip 可点按区域的语义角色中的一个 bug,以提高无障碍功能。(Ieed3a)
  • “减少动作”设置现在会关闭占位符上的闪烁效果和擦除动作。(I91046)
  • StepperInlineSlider 现在支持长按多次点击,这样您就可以通过按住“+”或“-”按钮来快速增减 StepperInlineSlider 的值。(I27359)

版本 1.3.0-alpha01

2023 年 6 月 21 日

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

bug 修复

  • 正如 1.2.0-alpha071.2.0-alpha10 中所宣布的那样,我们现在将更改 DefaultTextStyle,以关闭字体内边距,使其在整个 Android 平台上保持一致。这将解决使用大字号时文本被剪裁的一些情况,并且可能还会影响屏幕布局,因此需要更新屏幕截图测试。例如,我们在这里看到了文本剪裁 (Ic6a86)
使用大号字体时文本被截断
图 1:文字被截断。
  • 关闭字体内边距后,它不再存在:
使用大号字体时,文本不会被截断
图 2:文本未截短。
  • 我们已将 wear.compose.foundation 更新为 wear.compose.material 的 API 依赖项(I72004b/285404743
  • 我们修复了 SwipeToDismissBox 中的一个 bug。背景和内容键现在会传递给 remember 块,以便在内容或背景发生变化时创建新的修饰符。(Ib876cb/280392104
  • 我们更新了 TimeText,以便在选择 12 小时制或 24 小时制时间格式时使用语言区域。(If4a3d
  • 我们修复了 SwipeToDismissBox contentScrimColor 默认参数中的不一致问题。(I2d70f)
  • 我们改进了 SwipeToReveal 中的动作处理。(I28fb7)

已知问题

  • 支持用户配置的字体大小是一项无障碍功能要求。我们知道,在字体较大的情况下,多行条状标签可能会导致文本被截断,因此我们将在早期的 1.3 Alpha 版本中更新条状标签,以便在此类情况下调整高度。

版本 1.2

版本 1.2.1

2023 年 10 月 18 日

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

bug 修复

  • 修复了 PositionIndicator 错误消失的 bug。(7a167f)

版本 1.2.0

2023 年 8 月 9 日

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

自 1.1.0 以来的重要变更

版本 1.2.0-rc01

2023 年 7 月 26 日

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

bug 修复

  • 我们已为 1.2 版确定基准配置文件 (Id5740)

版本 1.2.0-beta02

2023 年 6 月 7 日

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

新功能

  • 我们添加了新的实验性 LocalReduceMotion CompositionLocal 变量,用于在 ScalingLazyColumn 上停用缩放和淡出。(I58024)

bug 修复

  • 我们更新了 Wear Compose 基础库和 Material 库的基准配置文件(I4725d)
  • 我们修复了 SwipeToDismissBox contentScrimColor 参数的默认值不一致的问题 (I2d70f)
  • 我们修复了用于 IncludeFontPadding 设置的 DefaultTextStyle 默认值 (I737ed)

版本 1.2.0-beta01

2023 年 5 月 24 日

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

Compose for Wear OS 1.2 包含哪些内容

Compose for Wear OS 的 1.2-beta01 版本表明,此版本是一个功能完备且 API 已锁定的库(标记为实验性的除外)。Wear Compose 1.2 包含以下新功能:

  • expandableItemexpandableItems 是两个新的 Foundation 组件,支持展开 ScalingLazyColumn 中的项。对于单个可展开项(例如行数的文本),请使用 expandableItem。对一组可展开项使用 expandableItems,并使用 expandableButton 简化创建在内容展开后收起的按钮。
  • HierarchicalFocusCoordinator - 此实验性可组合项支持将组合的子树标记为启用焦点或停用焦点。
  • Picker - API 现在包含 userScrollEnabled,用于控制选择器是否对用户滚动有效。
  • PickerGroup - 一种用于同时处理多个选择器的新可组合项。它使用 HierarchicalFocusCoordinator API 在选择器之间处理焦点,并支持将选择器项自动居中。
  • Placeholder - 我们对闪烁和“擦除”动画进行了更新。现在,当内容准备就绪时,擦除效果会立即应用。
  • ScalingLazyColumn - 我们已将 ScalingLazyColumn 及相关类从 androidx.wear.compose.material.ScalingLazyColumn 迁移到 androidx.wear.compose.foundation.lazy.ScalingLazyColumn。请更新以使用 Foundation.Lazy 版本。
  • SwipeToReveal - 我们添加了对滑动显示(作为访问次要操作的方式)的实验性支持,是对现有的“长按”模式的补充。
  • Stepper - 现在有一个包含额外 enableRangeSemantics 参数的重载,以方便停用默认范围语义。
  • Previews - 我们添加了以下自定义注解,用于在 Wear 屏幕上预览可组合项:WearPreviewSmallRound 在小圆形设备上预览可组合项;WearPreviewLargeRound 在大型圆形设备上预览可组合项;WearPreviewSquare 在方形设备上预览可组合项。此外,以下多预览注解:WearPreviewFontScales 在 Wear 设备上预览使用多种字体大小的可组合项,而 WearPreviewDevices 则在不同的 Wear 设备上预览可组合项。
  • 我们向 Wear Compose 添加了一个 DefaultTextStyle,该 DefaultTextStyle 会将 PlatformTextStyle.includeFontPadding 属性默认设置为 true(这是当前设置)。这样,我们就可以在 1.3 Alpha 版的早期版本中同步默认关闭字体内边距,具体请参阅 1.2.0-alpha10

新功能

  • 我们添加了对以下实验性功能的支持:在开启 reduce_motion 设置时停用缩放和淡出动画。(I58024)

bug 修复

  • 完善了 CurvedSize.ktangularWidthDp 的文档 (Iab75c)
  • SwipeDismissableNavHost 现在会记录一条警告,说明返回堆栈为空的潜在原因。这样做是为了防止因返回堆栈为空而抛出 IllegalArgumentException 而导致意外崩溃。(I04a81b/277700155

版本 1.2.0-alpha10

2023 年 5 月 10 日

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

新功能

  • 我们添加了对滑动以显示的支持,以便访问次要操作。此模式是对“长按”模式的补充,用户可以通过这种现有方式来显示(不同的)次要操作。(I60862)

API 变更

  • 我们在 SwipeToReveal 中的操作可组合项中添加了 RevealScope,以便访问显示其他操作的偏移量。(I3fd56)

bug 修复

  • 修复了 ScalingLazyColumn 在 Wear API 33 上在快速滑动后卡住的问题 (Ic4599)
  • 我们对 PositionIndicator 进行了一些性能改进,以减少卡顿。(I35e92)
  • 修复了条状标签和 CompactChip 中的一个 bug,即不再将语义角色设置为 Role.Button。(I93f91b/277326264

已知问题

  • 我们在 Android Studio 中发现了一个 bug,该 bug 会导致使用 @WearPreviewDevices 和 @WearPreviewFontScales 进行注解时渲染预览失败。我们计划很快发布修复程序。请注意,其他 Wear 预览注解在 Android Studio Giraffe 2022.3.1 及更高版本中会按预期运行。

  • 1.2.0-alpha07 版本中,我们将 DefaultTextStyle 添加到了 Wear Compose,并将现有的 PlatformTextStyle.includeFontPadding 值保持为 true。如需了解背景信息,请参阅修复 Compose 中的字体内边距。我们将更改 DefaultTextStyle,以在 1.3 Alpha 版的早期版本中关闭字体内边距,以便在整个 Android 平台上保持一致。这将解决使用大字号时文本被剪裁的一些情况,并且可能还会影响屏幕布局,因此需要更新屏幕截图测试。例如,使用大号字体时,我们会看到文本被截断:

使用大号字体时文本被截断
图 1:文字被截断。
  • 关闭字体内边距后,此问题将不再存在:
文字未采用大号字体进行裁剪
图 2:文本未被剪裁。

现在,您可以通过替换主题中的排版来采用新设置 - 请参阅示例代码

版本 1.2.0-alpha09

2023 年 4 月 19 日

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

API 变更

  • CurvedModifier API 添加了 angularSizeDp,以便以 DP 设置角度宽度 (I89a52)

bug 修复

  • 我们修复了时间选择器演示中的无障碍功能问题(Id0eb7)

版本 1.2.0-alpha08

2023 年 4 月 5 日

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

API 变更

  • 我们已将 ExpandableItemsState 重命名为 ExpandableState。(If85ea)
  • 我们添加了 expandableButton,以简化创建在内容展开时收起的按钮的操作,还更新了可展开项示例。(Iae309)

bug 修复

  • 改进了可展开的示例,以显示更多可能性。修改了 expandableItem 的动画,以便在动画播放期间使其内容保持居中。(I2f637)
  • 更新了 ToggleControls,以避免在使用 State 手动为颜色添加动画时进行额外的重新组合。(I5d319

版本 1.2.0-alpha07

2023 年 3 月 22 日

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

API 变更

  • 由于可展开项组件(在 1.2.0-alpha06 中添加)对 MaterialTheme 没有任何有意义的引用,因此我们已将其从 Material 移至 Foundation。(Ib0525)

bug 修复

  • 我们通过确保在没有选择器获得焦点时 PickerGroup 正确处理焦点,修复了使用 PickerGroup 的界面中发生的崩溃问题。此外,我们还在选择器演示中添加了对 RSB 滚动的支持。(If8c19)
  • 我们改进了对话过渡,片头过渡现在更流畅,以便与片尾过渡保持一致。(Ib5af9
  • 我们向 Wear Compose 添加了一个 DefaultTextStyle,该 DefaultTextStyle 会将 PlatformTextStyle.includeFontPadding 属性默认设置为 true(这是当前设置)。这样一来,我们日后便可与 Compose 库同步默认关闭字体内边距。如需了解背景,请参阅(修复 Compose 中的字体内边距)。(I2aee8
  • 通过 activity-compose 还原了导致无法将应用发布到 Google Play 商店的 UpsideDownCake 预览依赖项。(I6443d

版本 1.2.0-alpha06

2023 年 3 月 8 日

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

API 变更

  • 添加了 CurvedBox 组件,用于在弯曲世界中将组件堆叠在一起。(I29200)
  • 添加了可展开项 - 两个新组件,用于支持 ScalingLazyColumn 中的一组可展开项,或可展开的单个项,例如行数可展开的文本。(I95dd5)
  • 我们添加了以下自定义注解,以便在 Wear 屏幕上预览可组合项:WearPreviewSmallRound 在小型圆形设备上预览可组合项;WearPreviewLargeRound 在大型圆形设备上预览可组合项;WearPreviewSquare 在方形设备上预览可组合项。此外,以下多预览注解:WearPreviewFontScales 在 Wear 设备上预览使用多种字体大小的可组合项,而 WearPreviewDevices 则在不同的 Wear 设备上预览可组合项。如需使用这些预览版,您必须使用最新的 Android Studio(Giraffe Canary 6)或更高版本。请注意,如果这些注释不符合您的用途,您仍然可以使用预览功能,并支持通过参数进行进一步自定义。(I397ff)
  • 由于 HierarchicalFocusCoordinator 具有广泛适用性,因此当它被视为移入核心 Compose 库的候选版本时,我们已将其标记为实验性。(I3a768

bug 修复

  • 修复了 HierarchicalFocusCoordinator 上的一个 bug,现在,当为 focusEnabled 参数传入的 lambda 发生更改时,我们会正确使用新 lambda。(Icb353)
  • ButtonCompactButtonChipCompactChipToggleButton 中,如果使用主色作为背景,我们已将默认的停用内容颜色更新为“背景”。这有助于提高对比度,从而提升无障碍功能。(I527cc)

版本 1.2.0-alpha05

2023 年 2 月 22 日

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

API 变更

  • 更新了 PickerGroup API,以允许视需要将最小约束传递给可组合项。设置为 true 时,将针对 PickerGroup 允许从父级可组合项传递的最小约束。如果设置为 false,PickerGroup 会重置最小约束。(I3e046)
  • 我们向 Picker API 添加了 animateScrollToOption,以便支持对特定 Picker 选项执行程序化动画处理 (I6fe67)

bug 修复

  • 我们更新了 HorizontalPageIndicator,以支持从右到左的布局。(Ia4359)
  • HorizontalPageIndicator 中添加了针对从右到左布局的屏幕截图测试 (I6fbb8)
  • 向使用 TestNavHostControllerSwipeDismissableNavHostTest 添加了进一步的测试 (I61d54)

版本 1.2.0-alpha04

2023 年 2 月 8 日

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

新功能

  • PickerGroup,用于使用焦点 API 同时处理多个选择器。它可在不同选择器之间处理焦点,支持基于参数将选择器自动居中,还允许开发者在处理来自组的事件时在不同选择器之间更改焦点。在 TalkBack 模式下,PickerGroup 会将焦点移到组中选定的选择器,以处理 TalkBack 焦点。(I60840)

API 变更

  • 我们为步进控件增加了一个包含额外 enableRangeSemantics 参数的重载,以方便停用默认范围语义 (Ia61d4)

bug 修复

  • 允许将 ScalingLazyColumn 嵌套在水平滚动页面中(Iec3f8b/266555016
  • 改进了步进控件 KDocs 和 StepperTest 测试清理。(Ic118e)
  • androidx.navigation 依赖项更新为 2.5.3 版 (If58ed)

版本 1.2.0-alpha03

2023 年 1 月 25 日

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

API 变更

  • 我们已将 ScalingLazyColumn(及相关类)从 androidx.wear.compose.material.ScalingLazyColumn 迁移到 andrdoidx.wear.compose.foundation.lazy.ScalingLazyColumn(请参阅此迁移示例)。这个新位置更贴近 compose.foundation.lazy.LazyColumn 的位置,并且更自然,因为它不是主观的 Material 组件。目前进行这项更改是在为顺应新的 Material3 库做准备,我们会将该库与现有 Material 库并行处理。(I060e7)

以下变更是 ScalingLazyColumn 从 Material 向 Foundation.Lazy 迁移的一部分:

  • 以 Material ScalingLazyColumn 为目标的 PositionIndicator API 已被废弃 - 请更新为 Foundation.Lazy ScalingLazyColumn。此外,还向 ScalingLazyListLayoutInfo 添加了 anchorType 字段。(I29d95)
  • ScalingLazyColumn 已在 Wear Compose Material 软件包中标记为已废弃 (I16d34)
  • 我们更新了 ScrollAway 修饰符以便使用 Wear Compose Foundation.Lazy 中的 ScalingLazyListState,并废弃了从 Wear Compose Material 中获取 ScalingLazyListState 的重载。(Ifc42c)
  • 我们更新了 Dialog API 以便使用 Foundation.Lazy 中的 ScalingLazyListState,并废弃了那些使用 Material ScalingLazyListState 的重载 (Ic8960)
  • 我们更新了 Picker API 以便使用 Foundation.Lazy 中的 ScalingParams,并废弃了那些使用 Material ScalingParams 的重载。(Idc3d8)

bug 修复

  • 我们通过确保仅在值实际更改时推送更新,修复了一个在 ScalingLazyListState.centerItemIndex 中导致不必要重组的 bug (Ia9f38)
  • 我们提升了 SwipeToDismissBox 的性能 (I3933b)
  • 在 Wear Compose Foundation 中添加了针对 ScalingLazyColumn 的基准测试 (Ie00f9)
  • 我们更新了 Material 中的某些内部 ScalingLazyColumn 类方法,以便使用 Foundation.Lazy 中的等效方法 (I38aab)
  • 我们修复了选择器测试中的一些问题,并添加了更多用于检查带有偏移的滚动操作的测试 (I6ac34)
  • 我们已将 ScalingLazyColumn 集成演示迁移到 Foundation.Lazy 而非 Material ScalingLazyColumn (Ic6caa)
  • 我们在 DatePicker 演示中添加了可选的 fromDate/toDate 参数 (I961cd)

版本 1.2.0-alpha02

2023 年 1 月 11 日

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

API 变更

  • 现在,Android Compose 界面测试将在执行进入空闲状态的帧时(例如通过 waitForIdle)运行每一帧的布局传递。这可能会影响对各个布局动画帧进行的测试。(I8ea08b/222093277
  • 参数 minLines 已添加到 Wear Text 中,以便与 BasicText 保持一致的行为 (I24874)
  • CompactChipTapTargetPadding 已公开,因此会显示在文档中(If1e70b/234119038

bug 修复

  • wear.compose 软件包停用多平台 build (Iad3d7)
  • 修复了 scrollToOption 的 kdocs (I6f9a0)
  • PlaceholderState.rememberPlaceholderState() 更新为使用 rememberUpdatedState,以便能在 onContentReady lambda 时更新状态。(I02635b/260343754
  • 我们利用向 Modifier.graphicsLayer 添加的新合成策略,修复了 Picker 组件中出现的文本抖动问题。(I99302)
  • 我们修复了在 DatePicker 演示中导致闪烁的 bug (I660bd)
  • 我们针对 12 小时制时间和日期选择器演示改进了无障碍功能 (I05e12)
  • 我们更新了时间和日期选择器演示,以使选择器在未被选择时不受 RSB 更改的影响 (I4aecb)

版本 1.2.0-alpha01

2022 年 12 月 7 日

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

新功能

  • 我们更新了实验性占位符功能,以便在内容准备就绪时立即应用“擦除”效果,而不是等待下一个动画循环开始。此外,我们还对闪烁和擦除动画进行了一些更新。(I5a7f4)

API 变更

  • 我们添加了 HierarchicalFocusCoordinator 可组合项,可支持将组合的子树标记为启用焦点或停用焦点。(I827cb)
  • 我们添加了一个新属性,用于替换 ToggleButton 的语义角色。(I67132)
  • 我们更新了 TimeTextDefaults.TimeFormat12Hours 以移除 TimeText 中的 AM/PM。这将更改 TimeText API 中的 timeSource 参数的默认值。(I1eb7f)
  • 我们扩展了 Picker API 以改进具有多个选择器的屏幕的无障碍功能。新增了 userScrollEnabled 属性,用于控制选择器是否可供用户滚动浏览。(I3c3aa)

bug 修复

  • 已将 OutlinedButton/OutlinedCompactButton 的默认边框宽度从 2.dp 更改为 1.dp,以符合最终的用户体验规范。(Icf84d)
  • 为了减少第一项添加到空 ScalingLazyColumn 时显示的滚动位置效果,我们添加了内容为空时的估计 autoCentering topPadding。此更改通过假设初始项的高度为 0.dp 来计算所需的上内边距。对于 ScalingLazyListAnchorType.ItemStart,这将计算正确的上内边距;对于 ScalingLazyListAnchorType.ItemCenter,此项计算将不正确,因为需要通过项的高度来正确调整内容大小,从而导致根据项的实际高度产生较小的滚动位置效果。(I239a4
  • 我们更新了应用于 SwipeToDismiss 动画的背景纱罩,以匹配 Wear 平台。(I9003e)
  • 我们修复了对大小为 0 的列表项的 LazyListStateScalingLazyListStatePositionIndicator 处理,以避免除以零错误。(Ic28dd)

版本 1.1

版本 1.1.2

2023 年 2 月 8 日

发布了 androidx.wear.compose:compose-foundation:1.1.2androidx.wear.compose:compose-material:1.1.2androidx.wear.compose:compose-navigation:1.1.2版本 1.1.2 中包含这些提交内容

bug 修复

  • 我们通过确保仅在值实际更改时推送更新,修复了一个在 ScalingLazyListState.centerItemIndex 中导致不必要重组的 bug (Ia9f38)

版本 1.1.1

2023 年 1 月 11 日

发布了 androidx.wear.compose:compose-foundation:1.1.1androidx.wear.compose:compose-material:1.1.1androidx.wear.compose:compose-navigation:1.1.1版本 1.1.1 中包含这些提交内容

bug 修复

  • PlaceholderState.rememberPlaceholderState() 更新为使用 rememberUpdatedState,以便能在 onContentReady lambda 时更新状态。(I02635b/260343754

版本 1.1.0

2022 年 12 月 7 日

发布了 androidx.wear.compose:compose-foundation:1.1.0androidx.wear.compose:compose-material:1.1.0androidx.wear.compose:compose-navigation:1.1.0版本 1.1.0 中包含这些提交内容

自 1.0.0 以来的重要变更

新功能

  • 我们更新了实验性占位符功能,以便在内容准备就绪时立即应用“擦除”效果,而不是等待下一个动画循环开始。此外,我们还对闪烁和擦除动画进行了一些更新。(I5a7f4)

bug 修复

  • 已将 OutlinedButton/OutlinedCompactButton 的默认边框宽度从 2.dp 更改为 1.dp,以符合最终的用户体验规范。(Icf84d)
  • 为了减少第一项添加到空 ScalingLazyColumn 时显示的滚动位置效果,我们添加了内容为空时的估计 autoCentering topPadding。此更改通过假设初始项的高度为 0.dp 来计算所需的上内边距。对于 ScalingLazyListAnchorType.ItemStart,这将计算正确的上内边距;对于 ScalingLazyListAnchorType.ItemCenter,此项计算将不正确,因为需要通过项的高度来正确调整内容大小,从而导致根据项的实际高度产生较小的滚动位置效果。(I239a4
  • 我们更新了应用于 SwipeToDismiss 动画的背景纱罩,以匹配 Wear 平台。(I9003e)
  • 我们修复了对大小为 0 的列表项的 LazyListStateScalingLazyListStatePositionIndicator 处理,以避免除以零错误。(Ic28dd)

版本 1.1.0-rc01

2022 年 11 月 9 日

发布了 androidx.wear.compose:compose-foundation:1.1.0-rc01androidx.wear.compose:compose-material:1.1.0-rc01androidx.wear.compose:compose-navigation:1.1.0-rc01版本 1.1.0-rc01 中包含这些提交内容

bug 修复

  • PlaceholdersScrollAwayRadioButtonSwitchCheckboxOutlinedButtonOutlinedCompactButtonOutlinedChip 以及 OutlinedCompactChip 添加了基准配置文件规则。(I8249c)
  • 修复了 Modifier.scrollAway 中的一个 bug。这样一来,当指定的 itemIndex 无效(例如,项索引超出范围)时,系统现在仍会显示 TimeText。(I2137a)
  • 更新了 SwipeToDismissBox 动画,以匹配平台实现。现在,播放完初始挤压动画后,一旦触发关闭,屏幕即会向右滑动。(I41d34)
  • 出于优化的目的,我们更新了 Modifier.scrollAway,仅读取测量块内的 scrollState,以避免在每次重新测量后重组修饰符。(I4c6f1)
  • 为占位符添加了文档和示例,以显示应用于同一可组合项的 Modifier.placeholderModifier.placeholderShimmer 的正确排序。(Ie96f4b/256583229
  • 已将 OutlinedCompactChip/OutlinedChip 的默认边框宽度从 2.dp 更改为 1.dp,以符合最终的用户体验规范。(Ib3d8e)
  • 修复了 rememberPickerState 中的以下 bug:不保存更新后的输入内容,因此可组合项在输入内容更改后未被更新。(I49ff6b/255323197
  • 对占位符进行了以下界面更新:1) 将闪烁梯度更改为屏幕尺寸的 1.5 倍;2) 添加闪烁渐变的加/减速函数(三次贝塞尔曲线);3) 加快动画擦除速度(250 毫秒)。(Id29c1)
  • 更正了占位符擦除效果中的以下界面 bug:由于系统未考虑组件在屏幕上的位置,因此条状标签和卡片的背景擦除稍微早了一点。(I2c7cb)
  • 更新了占位符背景绘制,让颜色进行融合,而不是尽可能叠加颜色,从而降低不同剪裁层的 alpha 混合风险,以免底层颜色从占位符背景边缘渗出。(I2ea26)
  • 更正了 ScalingLazyListState.centerItemIndex/centerItemOffset 的计算。这样一来,当两个项目位于视口中心线的两侧时,距离最近的项将被视为 centerItem。(I30709b/254257769
  • 更正了 ScalingLazyListState.layoutInfo.visibleItemsInfo 中一个在 ScalingLazyColumn 初始化期间报告错误偏移量的 bug。现在,系统将返回一个空列表,直到所有列表项都可见且偏移量正确无误。检查 ScalingLazyListState.layoutInfo.visibleItemsInfo.isNotEmpty() 将确认 ScalingLazyColumn 初始化已完成且列表项可见。(I3a3b8)

版本 1.1.0-beta01

2022 年 10 月 24 日

发布了 androidx.wear.compose:compose-foundation:1.1.0-beta01androidx.wear.compose:compose-material:1.1.0-beta01androidx.wear.compose:compose-navigation:1.1.0-beta01版本 1.1.0-beta01 中包含这些提交内容

Compose for Wear OS 1.1 包含哪些内容

Compose for Wear OS 的 1.1.0-beta01 表明,此版本是一个功能完备且 API 已锁定的库。

  • Wear Compose 1.1 版本包含以下新功能:
    • Picker - 改进了 Picker 的无障碍功能,以便借助屏幕阅读器浏览多选择器屏幕,并访问内容说明
    • Picker contentDescription 参数现在仅用于所选的 Picker 选项,并采用可为 null 的字符串(在之前的提交中,需要传送从选项到内容说明的映射关系,但仅使用所选的选项)。
    • 现在,Picker 项会始终居中对齐,从而修复了在将 gradientRatio 设为 0 时会导致对齐方式改变的 bug。
    • Chip/ToggleChip - 我们更新了 Chip/ToggleChip 的默认渐变方式,以使其与最新的用户体验规范保持一致。ChipDefaults.gradientBackgroundChipColors 已被更新为从主要值的 50%(而非 32.5%)开始。
    • Chip/ToggleChip - 添加了用于修改条状标签形状的重载
    • Chip/Button/ToggleButton - 为条状标签和按钮添加了新的带轮廓样式,并添加了新的 OutlinedChipOutlinedButton 可组合项,可提供带薄边框的透明 Chip/Button
    • 卡片 - 更新了卡片的默认渐变效果,使其与最新的用户体验规范保持一致。CardDefaults.cardBackgroundPainter 已更新为从主要值的 30% 开始,到 onSurfaceVariant 的 20% 结束(之前为 onSurfaceVariant 的 20% 到 10%)。ToggleChip.toggleChipColors 从 75% 表面的线性渐变改为主要值的 32.5% 到 0% 表面再到主要值的 50%。
    • Button/ToggleButton - 添加了用于修改按钮形状的属性。
    • 主题 - 更新了 MaterialTheme 中的一些默认颜色以改进无障碍功能,因为原始颜色的对比度不足,导致用户很难区分条状标签/卡片/按钮的背景与主题的背景颜色。
    • InlineSlider/Stepper - 添加了按钮角色,以便 Talkback 可以将它们识别为按钮。
    • 现在,系统会调整 PositionIndicator 的位置和大小,使其仅占用所需的空间。这非常有用,例如,如果添加了语义信息,TalkBack 会在屏幕上获得 PositionIndicator 的正确边界。
    • CurvedText/TimeText - 添加了 Modifier.scrollAway,它会根据滚动状态使项垂直滚动进入/离开视野(并且重载可与 ColumnLazyColumnScalingLazyColumn 配合使用)。当用户开始向上滚动列表项时,ScrollAway 通常用于将 TimeText 滚出视图。
    • CurvedText/TimeText - 在 CurvedTextStyle 中添加了对 fontFamilyfontStylefontSynthesis 的支持,可在 curvedTextbasicCurvedText 上使用。
    • CurvedText/TimeText - 向 CurvedTextStyle 上的构造函数和复制方法添加了 fontWeight
    • ToggleControls - 添加了具有动画效果的 CheckboxSwitchRadioButton 切换控件,可与 ToggleChipSplitToggleChip 搭配使用。这些控件可用来代替 ToggleChipDefaults 提供的静态图标(switchIconcheckboxIconradioIcon)。
    • 占位符 - 添加了实验性占位符支持。该支持具有三种可搭配使用的不同视觉效果。
    • 第一种是用于条状标签和卡片等容器的占位符背景笔刷效果,会在等待内容加载时绘制在常规背景之上。
    • 第二种是 Modifier.placeholder() 修饰符,用于在正在加载的内容的上方绘制体育场形状的占位符 widget。
    • 第三种是具有渐变/闪烁效果的 Modifier.placeholderShimmer() 修饰符,绘制在其他效果的上方,以向用户表明系统正在等待数据加载。
      • 所有这些效果都能协调使用,井然有序地闪烁和擦除。
  • 核心 Compose 依赖项从 1.2 更新为 1.3

API 变更

  • 现在可以直接将字体参数(fontFamilyfontWeightfontStylefontSynthesis)指定为 curvedText 的参数 (Idc422)

bug 修复

  • curveTextbasicCurvedText 现在可以正常使用 Talkback(具有与其相关联的适当大小和放置(但为空)的 compose-ui 节点,并使用文本作为内容描述)(I7af7cb/210721259
  • 修复了当 PickerState.repeatedItems = false 为 Picker 内部 ScalingLazyColumn 添加 autoCentering 参数的显式设置时 Picker 存在的 bug,以确保可以将第 0 个选项滚动到视图中心。(I8a4d7)

版本 1.1.0-alpha07

2022 年 10 月 5 日

发布了 androidx.wear.compose:compose-foundation:1.1.0-alpha07androidx.wear.compose:compose-material:1.1.0-alpha07androidx.wear.compose:compose-navigation:1.1.0-alpha07版本 1.1.0-alpha07 中包含这些提交内容

新功能

  • 添加了对实验性占位符的支持。该支持具有三种可搭配使用的不同视觉效果。第一种是用于条状标签和卡片等容器的占位符背景笔刷效果,会在等待内容加载时绘制在常规背景之上。第二种是 Modifier.placeholder() 修饰符,用于在正在加载的内容的上方绘制体育场形状的占位符 widget。第三种是具有渐变/闪烁效果的 Modifier.placeholderShimmer() 修饰符,绘制在其他效果的上方,以向用户表明系统正在等待数据加载。所有这些效果都能协调使用,井然有序地闪烁和擦除。(I3c339)

API 变更

  • CurvedTextStyle 中添加了对 fontWeightfontFamilyfontStylefontSynthesis 的支持,可在 curvedTextbasicCurvedText 上使用。这些参数可用于指定要在曲线文本中使用的字体和样式。(Iaa1a8)、(I72759)
  • 已将 Modifier.scrollAway 的 offset 参数更新为 Dp,以便与 Modifier.offset 保持一致(之前是以像素为单位)。此外,已重构为 LayoutModifier,以提升效率。(I9f94b)
  • 在新的切换控件 API 中,我们已将 RadioButton’s circleColor 重命名为 ringColor。(I28fa9)
  • 添加了具有动画效果的 CheckboxSwitchRadioButton 切换控件,以便与 ToggleChipSplitToggleChip 搭配使用。这些控件可用来代替 ToggleChipDefaults 提供的静态图标(switchIconcheckboxIconradioIcon)。(I8a8c4)

版本 1.1.0-alpha06

2022 年 9 月 21 日

发布了 androidx.wear.compose:compose-foundation:1.1.0-alpha06androidx.wear.compose:compose-material:1.1.0-alpha06androidx.wear.compose:compose-navigation:1.1.0-alpha06版本 1.1.0-alpha06 中包含这些提交内容

新功能

  • 添加了 Modifier.scrollAway,它会根据滚动状态使项垂直滚动进入/离开视野(并且重载可与 ColumnLazyColumnScalingLazyColumn 配合使用)。当用户开始向上滚动列表项时,ScrollAway 通常用于将 TimeText 滚出视图。(I61766)

bug 修复

  • 现在,系统会调整 PositionIndicator 的位置和大小,使其仅占用所需的空间。这非常有用,例如,如果添加了语义信息,TalkBack 会在屏幕上获得 PositionIndicator 的正确边界。(Ie6106b/244409133

版本 1.1.0-alpha05

2022 年 9 月 7 日

发布了 androidx.wear.compose:compose-foundation:1.1.0-alpha05androidx.wear.compose:compose-material:1.1.0-alpha05androidx.wear.compose:compose-navigation:1.1.0-alpha05版本 1.1.0-alpha05 中包含这些提交内容

bug 修复

  • InlineSliderStepper 添加了按钮角色,以便 Talkback 能够将它们识别为按钮。(Icb46cb/244260275
  • 我们更正了 Scaffold 中位置和页面指示器的 Z 轴顺序。现在,这些提示器位于晕影之上,因此将不会被晕影遮挡(若存在晕影)。(Ib988fb/244207528

版本 1.1.0-alpha04

2022 年 8 月 24 日

发布了 androidx.wear.compose:compose-foundation:1.1.0-alpha04androidx.wear.compose:compose-material:1.1.0-alpha04androidx.wear.compose:compose-navigation:1.1.0-alpha04版本 1.1.0-alpha04 中包含这些提交内容

API 变更

  • 我们更新了 MaterialTheme 中的一些默认颜色以改进无障碍功能,因为原始颜色的对比度不足,导致用户很难区分条状标签/卡片/按钮的背景与主题的背景颜色。经过更新的颜色包括 surface(0xFF202124->0xFF303133)、onPrimary(0xFF202124->0xFF303133)、onSecondary(0xFF202124->0xFF303133)、primaryVariant(0xFF669DF6->0xFF8AB4F8) 和 onError(0xFF202124->0xFF000000)。颜色变化虽然相对细微,但可能会影响现有的屏幕截图测试。 (81ab09)

bug 修复

  • 修复了 ScalingLazyColumn 中的逻辑 bug,该 bug 可能会导致具有少量(通常是 2 个)列表项的列表无法完成初始化,进而导致列表透明。 (504347)

版本 1.1.0-alpha03

2022 年 8 月 10 日

发布了 androidx.wear.compose:compose-foundation:1.1.0-alpha03androidx.wear.compose:compose-material:1.1.0-alpha03androidx.wear.compose:compose-navigation:1.1.0-alpha03版本 1.1.0-alpha03 中包含这些提交内容

新功能

  • 我们为 ChipsButtons 添加了新的带轮廓样式,并添加了新的 OutlinedChipOutlinedButton 可组合项,可提供带细边框的透明 Chip/Button。(Id5972)

API 变更

  • 添加了用于修改按钮形状的重载 (Icccde)

bug 修复

  • 我们更正了 ToggleChip 的切换控件区域的大小,因为它与用户体验规范不符。用户体验规范要求在标签和 24x24dp 的切换控件图标区域之间留出 4dp 的分隔符,使总宽度为 28dp。然而,相应实现错误地提供了 36x24dp 的切换控件区域。这会导致占去 8dp 的可用文本标签区域。注意:此 bug 修复会为文本标签留出额外的空间,因此可能会对溢出文本的文本布局产生(积极)影响。如果需要进行包含 ToggleChips 的屏幕截图测试,则可能需要进行更新。(I514c8b/240548670

版本 1.1.0-alpha02

2022 年 7 月 27 日

发布了 androidx.wear.compose:compose-foundation:1.1.0-alpha02androidx.wear.compose:compose-material:1.1.0-alpha02androidx.wear.compose:compose-navigation:1.1.0-alpha02版本 1.1.0-alpha02 中包含这些提交内容

新功能

  • 我们已将核心 Compose 库的 Compose for Wear OS 依赖项从 1.2.0 切换为 1.3.0-alpha0X

API 变更

  • 添加了用于修改条状标签形状的重载 (I02e87)

bug 修复

  • 我们为显示/隐藏对话框时的晕影可见性添加了动画效果,以便与现有缩放动画保持一致。(Ida33e)
  • 我们修复了滚动时某些快速滑动行为可能会出现除零计算的 bug。(I86cb6)
  • 修复了 ChipDefaults.childChipColor() 中的一个 bug,以确保已停用的背景颜色是完全透明的。(I2b3c3b/238057342

版本 1.1.0-alpha01

2022 年 6 月 29 日

发布了 androidx.wear.compose:compose-foundation:1.1.0-alpha01androidx.wear.compose:compose-material:1.1.0-alpha01androidx.wear.compose:compose-navigation:1.1.0-alpha01版本 1.1.0-alpha01 中包含这些提交内容

API 变更

  • Picker 的 contentDescription 参数现在仅用于所选的 Picker 选项,并采用可为 null 的字符串(以前是需要传送从选项到内容说明的映射关系,但仅使用所选的选项)。(Ife6a7)
  • 我们改进了 Picker 的无障碍功能,以便借助屏幕阅读器浏览多选择器屏幕,并访问内容说明 (I64edb)

bug 修复

  • 我们更新了随 Wear Compose 库打包的基准配置文件规则 (I9c694)
  • 我们更正了从右到左模式下的条状标签渐变方向。以前是左上角->右下角,现在是右上角->左下角。(Ic2e77)
  • 我们更新了 Chip/ToggleChip/Card 的默认渐变方式,使其与最新的用户体验规范保持一致。ChipDefaults.gradientBackgroundChipColors 已被更新为从主要值的 50%(而非 32.5%)开始。CardDefaults.cardBackgroundPainter 已被更新为从主要值的 30% 开始,到 onSurfaceVariant 的 20% 结束(以前为 onSurfaceVariant 的 20% 到 10%)。ToggleChip.toggleChipColors 则从 75% 表面的线性渐变改为主要值的 32.5% 到 0% 表面再到主要值的 50%。(I43bbd)
  • 我们在具有渐变背景的 Chip/ToggleChips 后面添加了一种背景颜色 (MaterialTheme.color.surface),以确保在使用浅色背景的小概率情况下这些条状标签能够正常显示。(Ibe1a4b/235937657)
  • 现在,Picker 项会始终居中对齐,从而修复了在将 gradientRatio 设为 0 时会导致对齐方式改变的 bug。(I712b8)

版本 1.0

版本 1.0.2

2022 年 9 月 7 日

发布了 androidx.wear.compose:compose-foundation:1.0.2androidx.wear.compose:compose-material:1.0.2androidx.wear.compose:compose-navigation:1.0.2版本 1.0.2 中包含这些提交内容

bug 修复

  • 我们更正了 Scaffold 中位置和页面指示器的 Z 轴顺序。现在,这些提示器位于晕影之上,因此将不会被晕影遮挡(若存在晕影)。(Ib988fb/244207528

版本 1.0.1

2022 年 8 月 24 日

发布了 androidx.wear.compose:compose-foundation:1.0.1androidx.wear.compose:compose-material:1.0.1androidx.wear.compose:compose-navigation:1.0.1版本 1.0.1 中包含这些提交内容

bug 修复

  • 修复了 ScalingLazyColumn 中的逻辑 bug,该 bug 可能会导致具有少量(通常是 2 个)列表项的列表无法完成初始化,进而导致列表透明。(076c61)

版本 1.0.0

2022 年 7 月 27 日

发布了 androidx.wear.compose:compose-foundation:1.0.0androidx.wear.compose:compose-material:1.0.0androidx.wear.compose:compose-navigation:1.0.0版本 1.0.0 中包含这些提交内容

1.0.0 的主要功能

  • 这是 Compose for Wear OS 的第一个稳定版本(了解详情)。
  • Compose for Wear OS 基于核心 Compose 库,提供额外的穿戴式设备专属组件,在适当情况下还提供针对穿戴式设备量身定制的核心 Compose 组件的备用实现。
  • 如需查看 Wear Compose 中的关键组件的列表,请参阅 Compose for Wear OS Beta01 的版本说明。

bug 修复

  • 我们为显示/隐藏对话框时的晕影可见性添加了动画效果,以便与现有缩放动画保持一致。(Ida33e)
  • 我们修复了滚动时某些快速滑动行为可能会出现除零计算的 bug。(I86cb6)
  • 修复了 ChipDefaults.childChipColor() 中的一个 bug,以确保已停用的背景颜色是完全透明的。(I2b3c3b/238057342

版本 1.0.0-rc02

2022 年 6 月 22 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-rc02androidx.wear.compose:compose-material:1.0.0-rc02androidx.wear.compose:compose-navigation:1.0.0-rc02版本 1.0.0-rc02 中包含这些提交内容

bug 修复

  • 我们更正了从右到左 (RTL) 模式下的卡片渐变方向。以前是左上角->右下角,现在是右下角->左下角。(Ic2e77)
  • 我们更新了 Chip/ToggleChip/Card 的默认渐变方式,以使其与最新的用户体验规范保持一致。ChipDefaults.gradientBackgroundChipColors 已被更新为从主要值的 50%(而非 32.5%)开始。CardDefaults.cardBackgroundPainter 已被更新为从主要值的 30% 开始,到 onSurfaceVariant 的 20% 结束(以前为 onSurfaceVariant 的 20% 到 10%)。ToggleChip.toggleChipColors 则从 75% 表面的线性渐变改为主要值的 32.5% 到 0% 表面再到主要值的 50%。(I43bbd)
  • 我们在具有渐变背景的 Chip/ToggleChips 后面添加了一种背景颜色 (MaterialTheme.color.surface),以确保在使用浅色背景的小概率情况下这些条状标签能够正常显示。(Ibe1a4b/235937657)
  • 我们更新了随 Wear Compose 库打包的基准配置文件规则 (I9c694)

版本 1.0.0-rc01

2022 年 6 月 15 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-rc01androidx.wear.compose:compose-material:1.0.0-rc01androidx.wear.compose:compose-navigation:1.0.0-rc01版本 1.0.0-rc01 中包含这些提交内容

API 变更

  • Compose 库中的接口现在使用 jdk8 默认接口方法构建 (I5bcf1)

bug 修复

  • 我们移除了在列表标头上对 fillMaxWidth() 的显式调用,因为不需要该调用,并且如果 ScalinglazyColumn 混合使用 ListHeader()Chip() 组件,可能会导致问题,因为宽度往往会随着 ListHeader 项滚动进入/离开视野而放大/缩小。(I37144b/235074035
  • 我们修复了 ScalingLazyColumn 中的一个 bug,即当第 0 个列表项足够大(包括内边距)时,可能导致列表项在滚动前无法正确绘制(Ic6159b/234328517
  • 我们对当内容到达屏幕边缘时 ScalingLazyColumn 开始缓和做出了小小的调整,以符合用户体验规范的更新。旧值 CubicBezierEasing(0.25f, 0.00f, 0.75f, 1.00f) -> 新值 CubicBezierEasing(0.3f, 0f, 0.7f, 1f)。如需保留旧行为,您可以替换 ScalingLazyColumnscalingParams (Ie375c)
  • 我们向 CompactChip 添加了内边距,以确保其点按目标的高度尺寸至少为 48.dp,以符合 Material 无障碍功能指南的要求。这可能会影响您使用 CompactChips 的所有布局,因为它们将占用额外的空间。(I3d57c)

版本 1.0.0-beta03

2022 年 6 月 1 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-beta03androidx.wear.compose:compose-material:1.0.0-beta03androidx.wear.compose:compose-navigation:1.0.0-beta03版本 1.0.0-beta03 中包含这些提交内容

新功能

  • 我们已使 ScalingLazyColumn 适用于 Compose @Preview 模式。(I3b3b6b/232947354

API 变更

  • 我们已将 ScalingLazyColumn.horizontalAlignment 属性的默认值从 Start 更改为 CenterHorizontally,以确保当列表项未填充列的整个宽度时,将对齐列表项以最大限度提高可见性。如需切换回之前的行为,请设置 horizontalAlignment = Alignment.Start。(I9ed4b)

已知问题

  • CompactChip 的点按/轻触高度小于 Material 无障碍功能指南中要求的高度。此问题将在下个版本(6 月 15 日)中修复。如果您使用的是 CompactChip,这将影响您的布局,因为 CompactChip 现在会在上方和下方具有额外的内边距。请调整和测试您的布局,或查看 bug 注释,了解使用现有行为的临时解决方法。(b/234332135)

bug 修复

  • 新增了一个演示,用于针对在 TimeText 上添加或移除起始文字显示动画效果。(I16d75)
  • 针对 HorizontalPageIndicator.PagesState 添加了测试 (I64ed0)
  • 更新了 TimeText,以更符合用户体验规范 (Ib7ea1)

版本 1.0.0-beta02

2022 年 5 月 18 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-beta02androidx.wear.compose:compose-material:1.0.0-beta02androidx.wear.compose:compose-navigation:1.0.0-beta02版本 1.0.0-beta02 中包含这些提交内容

新功能

  • 现在,选择器会始终响应滚动事件,即使在只读模式下也是如此。这样一来,用户无需先点按选中选择器,就能进行滚动。在只读模式下,除当前所选选项以外的选项会被 gradientColor 中的 shim 遮挡。(I72925)
  • 我们更改了 Chip/ToggleChip/CompactChip/SplitToggleChip 的用户体验行为,让其无法默认执行 fillMaxWidth,而是会扩展以适应内容。如要保持之前的行为,只需添加 modifier = Modifier.fillMaxWidth() 即可(I60a2cb/232206371

bug 修复

  • 带有 TextStyleCurvedTextStyle 构造函数现在也遵循 fontWeight(这可能会添加到该 API 日后修订版的构造函数和复制方法中)(Ieebb9)
  • 改进了边缘滑动。使用 Modifier.edgeSwipeToDismiss 并从边缘区域触发向左滑动时,如果滑动方向改为向右,便不会再触发“滑动关闭”操作。以前,先向左滑动再向右滑动可能会触发滑动关闭。(I916ea)
  • HorizontalPageIndicator 现在可在屏幕上最多显示 6 页内容。如果总页数多于 6 页,左侧或右侧会显示一个占一半尺寸的指示器,页面之间会平滑过渡。(I2ac29)
  • 改进了 ScalingLazyColumnPicker 上的默认贴靠行为 (I49539)
  • 改进了边缘滑动。使用 Modifier.edgeSwipeToDismiss 时,只有首次轻触屏幕边缘并向右滑动时,才会触发滑动关闭。之前,如果滚动到了开头,从屏幕任意区域滑动都可能会触发滚动关闭。(I8ca2a)

版本 1.0.0-beta01

2022 年 5 月 11 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-beta01androidx.wear.compose:compose-material:1.0.0-beta01androidx.wear.compose:compose-navigation:1.0.0-beta01版本 1.0.0-beta01 中包含这些提交内容

Compose for Wear OS 1.0 包含哪些内容

Compose for Wear OS 的 1.0.0-beta01 版本标志着一个重要的里程碑,这是一个功能完备且 API 已锁定的库。

1.0 版本中的 Wear Compose Material 组件包括:

  • Material 主题 - 用于替代 Compose for Mobile MaterialTheme,为在穿戴式设备上构建组件提供颜色、形状和字体排版,以便于开箱即用地实现 Wear Material Design 用户体验准则。
  • ButtonCompactButtonToggleButton - 按钮提供一个槽位来接受图标、图片或短文本(最多 3 个字符)。形状为圆形,采用默认、大或小按钮的建议尺寸。CompactButton 提供一个槽位来接收任何内容(图标、图片或文本),其形状为圆形,背景尺寸为极小。CompactButton 的背景周围提供可选的透明内边距,可增加可点击区域。ToggleButton 按钮提供单个槽位来接收任何内容(短文本、图标或图片),并且具有开启/关闭(已选中/未选中)状态,可通过颜色和不同的图标来指示是已选中状态还是未选中状态
  • Cards - 用于显示应用相关信息(例如通知)。针对不同用例采用灵活设计,AppCardTitleCard 可提供不同的布局,并且支持以卡片内容或背景作为图片。
  • Chips - 类似于按钮的体育场形组件,但具有更大的区域和多个槽位,可支持标签、辅助标签和图标。具有不同的尺寸,支持使用图片作为背景。
  • ToggleChips 和 SplitToggleChips - 具有已选中/未选中状态的条状标签,并且添加了一个 ToggleControl 槽位以显示开关或单选按钮等图标,从而显示组件的选中状态。此外,SplitToggleChip 具有两个可点按区域,即一个可点击区域和一个可切换区域。
  • CircularProgressIndicator - Wear Material 进度指示器,包含两种变体。第一种指示正在执行的任务的完成比例,并且支持在圆圈的起始和结束角度之间保留间隙。第二种指示未指定等待时间的不确定进度。
  • curvedText - 构成 DSL 的一部分,用于描述 CurvedLayouts,并随带 curvedRowcurvedColumn,以便于围绕圆形设备布置组件。如需详细了解 CurvedLayoutCurvedModifier(这与非曲线环境中的修饰符类似,并且允许配置布局、内边距、渐变等要素的各个方面),请参阅下文中的 Wear Component Foundation。
  • Dialog、Alert 和 Confirmation - Dialog 将显示一个全屏对话框,与其他内容重叠,并且支持滑动关闭。该组件包含一个槽位,预计将作为 Wear Material 意见征求对话框内容(例如提醒或确认)。Alert 是包含图标、标题和消息槽位的意见征求对话框内容。该组件具有并排显示的两个否定按钮和肯定按钮的重载,或者通过一个槽位接受一个或多个垂直堆叠的条状标签。Confirmation 将按指定的持续时间显示意见征求对话框内容。该组件通过一个槽位接收图标或图片(可能是动态图)。
  • CircularProgressIndicator - 以适合穿戴式设备尺寸的方式显示水平页面指示器。专用于全屏显示圆形设备上的曲线指示器。可与 Accompanist 页面查看器结合使用。
  • Icon - 从 Wear Material 主题中获取颜色和 Alpha 值的 Wear 图标实现。若要了解可点击的图标,请参阅“按钮”或“条状标签”。
  • Picker - 显示可供选择的可滚动项目列表。默认情况下,其中的选项将在两个方向上“无限”重复。可以在只读模式下显示,以隐藏未选择的选项。
  • PositionIndicator - 以适合穿戴式设备尺寸的方式显示滚动位置或其他位置指示。专用于全屏显示圆形设备上的曲线指示器。
  • Scaffold - 实现基本的 Wear Material Design 视觉布局结构。此组件提供了一个 API,可将多个用于构建屏幕的 Wear Material 组件(例如 TimeTextPositionIndicatorVignette)整合在一起,确保为其创建正确的布局策略,并收集必要的数据,以确保这些组件协同作业。
  • ScalingLazyColumn - 这是一种滚动缩放/鱼眼列表组件,也是 Wear Material Design 语言的一个关键要素。为内容项提供缩放和透明度效果。ScalingLazyColumn 旨在处理可能的大量内容项,只有在需要时才应当具体化和组合这些内容项。
  • Slider - 可让用户从一系列值中进行选择。以横条显示选择范围,可以选择将显示的横条划分为若干区间。
  • Stepper - 一种全屏组件,用户可以通过屏幕顶部和底部的增加/减小按钮来从一系列值中进行选择,中间的槽位可用于插入文字或条状标签。
  • SwipeToDismissBox - 处理滑动关闭手势。它通过一个槽位来接收背景(仅在滑动手势时显示)和前景内容。可以选择通过 SwipeDismissableNavHost 与 androidx 导航库结合使用(请参阅下文中的 Wear Compose Navigation 库)。
  • Text - Compose Material Text 组件的 Wear 实现,该组件将从 Wear Material 主题获取颜色和 Alpha 值
  • TimeText - 在屏幕顶部显示时间和应用状态的组件。可在圆形屏幕上使用曲线状文本,根据屏幕形状进行调整。
  • Vignette - 在 Scaffold 中使用的一种屏幕处理方式,当使用可滚动内容时可对屏幕的顶部和底部进行模糊处理。

  • Wear Compose Foundation 中还包含以下组件:

  • CurvedLayout - Wear Foundation CurvedLayout 是一种布局可组合项,可将其子项放置在弧线中,并根据需要进行旋转。这类似于曲卷以形成环形区段的行布局。请注意,CurvedLayout 的内容不是可组合的 lambda,而是领域特定语言 (DSL)。CurvedLayout 的 DSL 中的所有元素都支持可选的修饰符参数,这些参数将通过 CurvedModifier 创建。

  • basicCurvedText - 这是 CurvedLayout DSL 中的一个元素。basicCurvedText 可让开发者沿着圆圈的弧线(通常位于圆形屏幕的边缘)轻松写入曲线文字。为了确保获得最佳体验,开发者只能在 CurvedLayout 中创建 basicCurvedText,这样才能指定定位以及使用 CurvedModifiers。请注意,在大多数情况下,应当首选使用 CurdText,因为它使用 Material 主题。

  • curdComposable - 封装常规可组合项内容,以便与 CurvedLayout 结合使用。如果 curvedComposable 中包含多个元素,那么这些元素会相互叠加(类似于 Box)。如需沿着曲线放置多个可组合项,请使用 curvedComposable 封装每个可组合项。

  • curvedRow 和 curvedColumn - 与行和列相类似,curvedRowcurvedColumn 可嵌套在 CurvedLayout 中,以便于根据需要布置元素。对于 curvedRow,可以指定角度布局方向和径向对齐。对于 curvedColumn,可以指定角对齐和径向对齐。

  • CurvedModifier - 所有曲线组件都接受一个可以使用 CurvedModifier 创建的修饰符参数:支持背景、尺寸、粗细和内边距。

  • Wear Compose Navigation 中还包含以下组件:

  • SwipeDismissableNavHost - 在 Compose 层次结构中为独立导航提供位置,通过滑动手势提供向后导航。内容显示在 SwipeToDismissBox 中,显示当前导航级别。在滑动关闭手势期间,系统会在后台显示之前的导航级别(如果有)。

  • 请参阅之前有关各种 Alpha 版本的版本说明,详细了解所提供的内容。

API 变更

  • 添加了 CurvedModifier.padding* 函数。它们用于指定要在曲线组件周围添加的额外空间。(I4dbb4)
  • 移除了 CompositionLocal 内部类 (I42490)
  • 我们添加了 ButtonCompactButtonToggleButton 图标大小的常量值作为指导 (I57cab)
  • AppCardTitleCard 添加了 enabled 参数。现在,它们具有与 androidx.compose.material 卡片相类似的 API。当该参数设置为 false 时,卡片将不可点击。(Idc48db/228869805

bug 修复

  • 现在,在达到下限/上限时,步进控件会停用减小和增加按钮,并将 ContentAlpha.disabled 应用于 iconColor (I4be9f)
  • 我们在使用渐变绘制的选择器内容周围增加了 1dp 的内边距,以防止滑动时文本出现抖动。(I0b7b9)
  • 针对 PositionIndicator 添加了屏幕截图测试 (I5e8bc)
  • 针对 AppCardTitleCard 添加了更多测试(I85391b/228869805

版本 1.0.0-alpha21

2022 年 4 月 20 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha21androidx.wear.compose:compose-material:1.0.0-alpha21androidx.wear.compose:compose-navigation:1.0.0-alpha21版本 1.0.0-alpha21 中包含这些提交内容

新功能

  • 添加了新的曲线修饰符来指定曲线元素的背景:CurvedModifier.background.radialGradientBackground.angularGradientBackground (I8f392)
  • 允许指定曲线文本溢出模式 (clip/ellipsis/visible)。(I8e7aa)
  • 添加了 CurvedModifier.weight 修饰符,类似于 Compose 中的修饰符,可用于 curvedRow 和 CurvedLayout 的子项(对于宽度)及 curvedColumn 的子项(对于高度)。(I8abbd)
  • 添加了 CurvedModifier.size.angularSize.radialSize 修饰符,用于指定曲线元素的尺寸。(I623c7)

API 变更

  • 对参数进行了重新排序,以确保在 Wear Compose API 中,背景一直在颜色之前 (I43208)
  • 移除了顺时针和 insideOut 参数,并替换为新类中更具表现力的常量。曲线布局方向现在可以感知 LayoutDirection,未指定时则沿用 (If0e6a)
  • 我们已将 autoCenter: Boolean 替换为 autoCenter: AutoCentringParams,以修复 ScalingLazyColumn 的 API 问题。(Ia9c90)
  • 我们将整个 API(Chip/ToggleChip/Dialog/Slider/Stepper/…)中的 iconTintColortoggleControlTintColor 重命名为 iconColortoggleControlColor,因为相应颜色已应用于 icon/toggleControl 槽位。(Ied238)
  • PageIndicatorStyle 枚举重写入值类 (I2dc72)
  • 我们在可组合项中的某些槽位中添加了 RowScope/ColumnScope/BoxScope,以向开发者说明布局假设。这样,开发者便可对某些槽位内容使用额外的修饰符,避免需要提供额外的布局元素。此外,我们还对 AppCard/TitleCard 颜色进行了一些微小更新,以使 timeColorappColor 默认采用 contentColor。如果需要,这些属性仍然可以被单独替换。(I26b59)
  • SwipeToDismissBoxState.Companion 对象设为不公开 (I39e84)
  • 修复了 InlineSliderStepper 的参数顺序问题。这是遵循 API 指南的简单更改 (I11fec)
  • 我们移除了 SwipeToDismissBoxState 的 Saver 对象,因为它未被使用。(Ifb54e)
  • 我们更新了 CompactChip,使其与最新的用户体验规范相符。内边距已缩小为水平 = 12.dp,垂直 = 0.dp。标签的字体已从按钮更改为 caption1。如果同时具有图标和标签,建议的图标尺寸为 20x20;对于仅包含图标的紧凑条状标签,建议的尺寸为 24x24。对于仅包含图标的用例,我们还确保了图标居中对齐。(Iea2be)
  • 我们在 ScalingLazyListLayoutInfo 中添加了一些新字段,让开发者能够知道所应用的 contentPaddingautoCenteringPadding 的数量。这在计算快速滑动/滚动数据时对开发者来说很有用 (I7577b)
  • 我们为 Dialog 实现了输入/输出转换。添加了 showDialog 参数,Dialog 现在可控制其自身的 可见性(这使 Dialog 在显示/隐藏时能够运行开头和结尾动画)。请注意,当用户通过滑动关闭对话框时,系统不会运行片尾动画。我们还在最近添加的 SwipeToDismissBox 过载中添加了状态的默认值。(I682a0)
  • 为了更好地支持 i18n 和 a11y,我们更改了 ToggleChipSplitToggleChip,使其不再有 toggleControl 槽位的默认值。我们还更改了 ToggleChipDefaults,现在以下方法会返回 ImageVector,而不是 Icon(请注意,由于这些方法不再返回 @Composables,因此已更改为以小写开头)、SwitchIcon()->switchIcon()CheckboxIcon->checkboxIcon()RadioIcon()->radioIcon() - 这样就允许并鼓励开发者创建自己的 Icon() 可组合项并具有适当的 contentDescription 集合。(I5bb5b)
  • 我们向 SwipeDismissableNavHost 添加了 SwipeDismissableNavHostState 参数。这支持在用作导航目的地的屏幕上使用边缘滑动动作,因为现在在需要边缘滑动的屏幕上 SwipeToDismissBoxState 可以提升和用于初始化 SwipeDismissableNavHostStateModifier.edgeSwipeToDismiss。(I819f5b/228336555

bug 修复

  • 确保需要时更新曲线布局。(Ie8bfab/229079150
  • 为 https://issuetracker.google.com/issues/226648931 修复了 bug(Ia0a0ab/226648931
  • 移除了不必要的实验性注解 (I88d7e)

版本 1.0.0-alpha20

2022 年 4 月 6 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha20androidx.wear.compose:compose-material:1.0.0-alpha20androidx.wear.compose:compose-navigation:1.0.0-alpha20版本 1.0.0-alpha20 中包含这些提交内容

新功能

  • SwipeToDismiss 添加了 edgeSwipeToDismiss 修饰符。允许 swipeToDismiss 仅在视口的左侧边缘保持启用状态。系统会在屏幕中心需要处理水平分页(在二维平面滚动地图或在页面之间水平滑动)时使用该修饰符。(I3fcecb/200699800

API 变更

  • CurvedModifiers 进行了基本实现,这为引入自定义曲线内容的方法开辟了道路(尚不提供 CurvedModifiers,但以后可能会提供创建自定义修饰符的功能)(I9b8df)
  • 为便于理解,更新了 EdgeSwipe 修饰符文档和默认值。(I6d00d)
  • 向 Scaffold 中添加了 PageIndicator 槽。通过直接向 Scaffold 中添加 PageIndicator,可确保其正确显示在圆形设备上。(Ia6042)
  • InlineSlider 和 Stepper 参数中移除了默认图标。这将有助于开发者更加关注本地化和无障碍功能要求。演示和示例中展示了默认图标的用法。(I7e6fd)
  • 在 TimeText 中,将 Trailing 和 Leading 参数名称替换成了 Start 和 End (Iaac32)
  • 我们已添加包含 onDismissed 参数的 SwipeToDismissBox 重载,以支持在滑动手势完成后触发导航事件的常见用法。(I50353b/226565726
  • TimeText 用法中移除了 ExperimentalWearMaterialApi 注解 (Ide520)
  • 我们已将 ScalingLazyList/Column 作用域和信息接口标记为密封状态(因为它们不可供外部开发者实现),这让我们日后能够向其中添加新成员,而无需对二进制文件进行破坏性更改。(I7d99f)
  • 我们向选择器添加了一个新的 flingBehaviour 属性,并添加了 PickerDefaults.flingBehaviour() 方法,以支持配置快速滑动行为(例如添加 RSB 支持)。PickerState 现在会实现 ScrollableState 接口。(Ib89c7)

bug 修复

  • 针对 Wear Compose 库更新了 Android 运行时 (ART) 基准配置文件规则。ART 可以利用设备上的配置文件规则预先编译应用的特定部分,以提升应用性能。请注意,这对可调试应用没有任何影响。(Iaa8ef)
  • 完善了文档 (I2c051)

版本 1.0.0-alpha19

2022 年 3 月 23 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha19androidx.wear.compose:compose-material:1.0.0-alpha19androidx.wear.compose:compose-navigation:1.0.0-alpha19版本 1.0.0-alpha19 中包含这些提交内容

API 变更

  • CurvedRow 已重命名为 CurvedLayout,并重新设计为使用 DSL 的作用域。借助此 DSL,您可以使用一系列嵌套的 curvedRowcurvedColumn(Row 和 Column 的曲线布局等效项)指定更复杂的曲线布局。您可在这些布局元素内使用以下三种元素:curvedComposable(用于添加任何 @Composable)、basicCurvedText(Foundation 的曲线文本)和 curvedText(Wear Material 感知型曲线文本)。(Ib776a)
  • 使 PositionIndicator 的侧边可配置。现在,基本 PositionIndicator 的位置可配置为 End(可感知布局方向)、OppositeRsb(考虑屏幕旋转,将自身放置在实际 RSB 的对面)或绝对的 Left 和 Right。(I2f1f3)
  • 对于 SwipeToDismissBox,我们已将 SwipeDismissTarget.Original 重命名为 SwipeToDismissValue.Default,并将 SwipeDismissTarget.Dismissal 重命名为 SwipeToDismissValue.Dismissed。我们还将 SwipeToDismissBoxDefaults.BackgroundKeySwipeToDismissBoxDefaults.ContentKey 分别移到了 SwipeToDismissKeys.BackgroundSwipeToDismissKeys.Content。(I47a36)
  • 对于具有多个选择器,但一次只能修改一个选择器的屏幕,我们已向选择器添加了只读模式。当选择器处于只读模式时,它会显示当前选中的选项和一个标签(如果已提供)。(I879de)
  • 已重构 SwipeToDismissBoxState,以将 ExperimentalWearMaterialApi 的作用域限制为 Modifier.swipeableSwipeableState(二者现在在内部使用)。SwipeToDismissBoxState 现在具有 currentValuetargetValueisAnimationRunningsnapTo 成员,以支持常见用例。如果您还需要任何其他属性,请告知我们。此外,还修复了滑动偏移量在锚点舍入误差范围内时 SwipeableState 的行为。(I58302)

bug 修复

  • 简化并修复了代码,以检测 ScalingLazyColumn 的内容是否可滚动(用于确定是否显示滚动条)(I7bce0)
  • 修复了当存在多个状态并在这些状态间切换时位置指示器出现的 bug (I320b5)
  • 我们已根据最新版用户体验指南,更新了 Compose for Wear OS 的默认主题排版/字体。需要注意的是,display1 (40.sp) 和 display2 (34.sp) 现在小于先前的值,并且行高和行间距也进行了一些其他的次要更新。(Ie3077)
  • 我们向 SwipeToDismissBox 添加了阻力,以确保其仅在滑动关闭时移动,且完全不会在相反方向上移动。(Ifdfb9)
  • 我们已更改 CircularProgressIndicator 函数的一些默认参数值,使其符合 Wear Material Design 用户体验指南。对于 Spinner/Indeterminant 版本,更新了大小 (40->24.dp)、indicatorColor (primary->onBackground)、trackColor 透明度 (30%->10%) 和描边宽度 (4->3dp)。对于 Progress/Determinate 版本,更新了 trackColor 透明度 (30%->10%)。(I659cc)
  • 我们已根据最新版 Wear Material Design 用户体验规范,更新了 ScalingLazyColumn 的默认缩放参数。从视觉上看,这会导致列表项在更靠近列表中心的位置开始缩放,而在列表边缘的缩放比例却比以前小。(Ica8f3)
  • ScalingLazyColumnDefaults.snapFlingBehavior 进行了一些调整,以改进动画的结束效果 (If3260)

版本 1.0.0-alpha18

2022 年 3 月 9 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha18androidx.wear.compose:compose-material:1.0.0-alpha18androidx.wear.compose:compose-navigation:1.0.0-alpha18版本 1.0.0-alpha18 中包含这些提交内容

API 变更

  • 针对 PositionIndicator 的多项改进:ShowResult 已重命名为 PositionIndicatorVisibility。针对性能的一些改进,避免在没必要时重新计算 (Iaed9d)
  • 更新了为 SplitToggleChip 建议的颜色。现在,SplitToggleChip 在已选中或未选中时具有纯色背景,而 ToggleControl 的颜色是显示该组件是否被选中的主要标志。我们添加了新的 ToggleDefaults.splitToggleChipColors() 以支持新的配色方案。我们还简化了 toggleChipColors() 方法,移除了 splitBackgroundOverlayColor (I7e66e)
  • 我们为 ScalingLazyListItemInfo 添加了 unadjustedSize,因为浮点数精度问题会导致使用缩放尺寸和缩放比例计算原始项目尺寸变得不安全。(I54657b/221079441
  • 添加了 HorizontalPageIndicator。它表示总页数和所选页面。它可以是线性或曲线的,具体取决于设备的形状。此外,它还支持自定义指示器形状,该形状用于决定每个指示器的视觉展示方式。(Iac898)
  • 我们更新了 PickerState,以便 numberOfOptions 可以更新。这支持如 DatePicker 等用例,也就是每月的天数随着所选月份而变化。PickerState 的构造函数参数已相应地更改为 initialNumberOfOptions。(Iad066)
  • 是滚动条且无法滚动时隐藏 PositionIndicator。(Id0a7f)
  • 为了与 Scaffold 保持一致,我们的全屏 Dialog 组件现在会显示 PositionIndicatorVignette。我们现在还使用 ScalingLazyColumn 而不是 Column,这意味着,Dialog 内容现在位于 ScalingLazyListScope 中,且通常需要用项目 { /* 内容 */ } 括起来。Dialog 相应地支持 verticalArrangement 参数。(Idea13)
  • 我们已将 ToggleChipSplitToggleChip toggleIcon 属性的名称更改为 toggleControl,以便更好地与 Material Design 保持一致,从而帮助设计人员和开发者熟悉该 API。(If5921b/220129803
  • 我们在 Wear MaterialWear Material Theme Typology 中添加了一个新的条目 Caption3。Caption3 是一种小型字体,用在法律文本等超长篇文案中。(I74b13b/220128356

bug 修复

  • 位置对齐后,停止贴靠动画。(Idb69d)
  • 为 PositionIndicator 中的变化添加了动画效果。(I94cb9)
  • 根据界面/用户体验反馈,我们更改了 ScalingLazyColumn autoCentering,以便仅提供足够的空间来确保索引值为 ScalingLazyListState.initialCenterItemIndex 或更大的项目能够完全滚动到视口中心。这样一来,开发者可以从一开始就将关于相应项目的一个或两个项目放置在中心位置,而它们不可滚动至中间位置。这意味着 autoCentering ScalingLazyColumn 将无法在 initialCenterItemIndex/initialCenterItemScrollOffset 上方滚动 (I22ee2)
  • 我们为日期选择器添加了演示,并修复了 PickerState 中的一个 bug:在选择器显示之前,initiallySelectedOption 不会应用。(Id0d7e)
  • 为了减少圆形屏幕上较宽的 ScalingLazyColumn 项目的剪裁现象,我们将默认水平内容内边距从 8 dp 增加到了 10 dp。(I0d609)
  • 确保在滚动时显示 PositionIndicator。(Ied9a2)

版本 1.0.0-alpha17

2022 年 2 月 23 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha17androidx.wear.compose:compose-material:1.0.0-alpha17androidx.wear.compose:compose-navigation:1.0.0-alpha17版本 1.0.0-alpha17 中包含这些提交内容

新功能

  • 添加了可与 ScalingLazyColumn 搭配使用的贴靠支持功能。设置 flingBehavior = ScalingLazyColumnDefaults.flingWithSnapBehavior(state) 即可启用贴靠支持功能。(I068d3b/217377069
  • 添加了选择器(用于选择 24 小时制或 12 小时制时间)演示。(Ie5552)

API 变更

  • 修复了方形设备上 TimeText 的自定义字体和样式存在的问题 (Iea76e)
  • ScalingLazyListLayoutInfo 现在具有与 LazyListLayoutInfo 中的属性相匹配的 reverseLayoutviewportSize 和屏幕方向属性(I4f258b/217917020
  • ScalingLazyColumn 现在具有与 LazyList 中的属性相匹配的 userScrollEnabled 属性(I164d0b/217912513
  • 现在,选择器默认在顶部和底部具有渐变效果 (Iab92a)

bug 修复

  • 我们修改了 ScalingLazyColumn,使其不再一味地填充其父级中的所有空间。相反,它会根据自身内容的尺寸获取其尺寸。这可使其与 LazyColumn 的行为保持一致。如果您要恢复旧行为,请将 Modifier.fillMaxWidth()/width()/widthIn() 传递给 ScalingLazyColumn (I51bf8)
  • 我们改进了导航返回堆栈为空时在 SwipeDismissableNavHost.kt 中触发的异常消息。(I1b1dc)

版本 1.0.0-alpha16

2022 年 2 月 9 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha16androidx.wear.compose:compose-material:1.0.0-alpha16androidx.wear.compose:compose-navigation:1.0.0-alpha16版本 1.0.0-alpha16 中包含这些提交内容

新功能

  • 添加了 CircularProgressIndicator。进度指示器显示进程的长度或未指定的等待时间。如果使用的是全屏,则支持适用于 TimeText 或其他组件的间隔(刘海区域)。 (Iab8da)

API 变更

  • 选择器现在具有一个 flingBehavior 参数,默认值会使其在滚动/滑动时与最近的选项对应。(I09000)
  • 适用于 InlineSlider 和 Stepper 的额外整数 API (I1b5d6)

bug 修复

  • 我们已将 ScalingLazyListState 的默认 initialCenterItemIndex 从 0 更改为 1。这意味着,除非使用 ScalingLazyListState.rememberScalingLazyListState(initialCenterItemIndex =) 替换状态构建,否则在初始化时,第二个列表项 (index == 1) 将放置在视口中心,而第一个列表项 (index == 0) 将会放置在它前面。这样一来,开箱即可提供更好的默认视觉效果,因为大多数视口会填充列表项。(I0c623b/217344252
  • 我们已将提供的 ScalingLazyColumn 默认 extraPadding 缩减,以确保有大量绘制列表项(即使我们将其中一部分的大小缩减)从 10% 缩减到 5%。这样做可以避免编写可能无法在视口中显示的额外列表项。如果使用的是非标准缩放参数(例如,更极端的缩放),开发者可以使用 viewportVerticalOffsetResolver 调整额外的内边距。(I76be4)
  • 修复了方形设备上多行 TimeText 的问题 (Ibd3fb)
  • 我们修改了 ScalingLazyColumn,使其不再一味地填充其父级中的所有空间。相反,它会根据自身内容的尺寸获取其尺寸。这与 LazyColumn 的行为保持一致。如果您要恢复旧行为,请将 Modifier.fillMaxSize() 传递给 ScalingLazyColumn - 注意:此更改尚未完成,并将在下一个 Alpha 版本中的后续更改中得到解决。(I3cbfa)

版本 1.0.0-alpha15

2022 年 1 月 26 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha15androidx.wear.compose:compose-material:1.0.0-alpha15androidx.wear.compose:compose-navigation:1.0.0-alpha15版本 1.0.0-alpha15 中包含这些提交内容

API 变更

  • 我们向 ScalingLazyColumn 添加了一个新属性 autoCentering。如果为 true(默认值),则可确保第一项和最后一项在内的所有项均可滚动,以便这些项显示在列表视口的中心。请注意,如果使用自动居中选项,您可能需要将垂直内容内边距设置为 0 dp。如果同时提供了 autoCentering 和垂直内容内边距,它们将使得第一个列表项之前和最后一个列表项之后留出额外空间,使列表项能在较大的范围内滚动。(I2a282b/214922490
  • 我们添加了 Dialog 组件,可让任何可绘制项触发位于其他内容上方的全屏对话框。对话框显示后支持滑动关闭,并且会在用户执行该滑动手势时在后台显示其父级的内容。对话框内容的类型应为 AlertConfirmation(对之前的组件 AlertDialogConfirmationDialog 进行了重命名)。AlertConfirmationDialog 均位于 androidx.wear.compose.material.dialog 软件包中。Alert 和 Confirmation 可用作导航目的地。此外,还在必要时向 Alert 和 Confirmation 参数添加了 ColumnScope。(Ia9014)
  • 我们已从 WearOS Material Theme Colors 的 Compose 中移除了 onSurfaceVariant2,并在库中将其替换为 onSurfaceVariant。(Icd592)
  • 添加了在 PickerState 上程序化地选择选项的方法,现在创建 PickerState 时还可指定最初选择的选项。(I92bdf)
  • 我们添加了对自定义 ScalingLazyColumn 的快速滑动行为的支持。(I1ad2eb/208842968
  • 我们已将 NavController.currentBackStackEntryAsState() 添加到 Wear.Compose.Navigation 库中。(If9028b/212739653
  • 为带有旋转侧边按钮的 Wear 设备添加了 Modifier.onRotaryScrollEvent()Modifier.onPreRotaryScrollEvent()。(I18bf5b/210748686

版本 1.0.0-alpha14

2022 年 1 月 12 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha14androidx.wear.compose:compose-material:1.0.0-alpha14androidx.wear.compose:compose-navigation:1.0.0-alpha14版本 1.0.0-alpha14 中包含这些提交内容

新功能

  • 我们在 ScalingLazyListState 中添加了多种方法,供开发者用来控制滚动到特定列表项以及设置初始列表项和偏移量的操作。

    在进行这项更改的过程中,我们还修改了 ScalingLazyList,使其定位到 ScalingLazyList 的视口中心而不是视口的起始位置。

    ScalingLazyList 中新增了一个属性 anchorType: ScalingLazyListAnchorType = ScalingLazyListAnchorType.ItemCenter,用于控制中心 (ScalingLazyListAnchorType.ItemCenter) 或 Edge (ScalingLazyListAnchorType.ItemStart) 是否应与视口的中心线对齐。

    因此,ScalingLazyListItemInfo.offsetScalingLazyListItemInfo.adjustedOffset 发生了变化,现在会反映相应项相对于列表项位置和列表的 anchorType 的偏移量。例如,如果 ScalingLazyColumnanchorTypeItemCenter,并且某个列表项的中心位于视口的中心线上,则偏移量为 0

    新方法为 scrollToanimatedScrollTocenterItemIndexcenterItemOffset。(I61b61)

  • 我们在 SwipeDismissableNavHost 中添加了一个返回按钮处理程序,以便按返回按钮可以导航到导航层次结构中的上一级。(I5b086b/210205624

版本 1.0.0-alpha13

2021 年 12 月 15 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha13androidx.wear.compose:compose-material:1.0.0-alpha13androidx.wear.compose:compose-navigation:1.0.0-alpha13版本 1.0.0-alpha13 中包含这些提交内容

API 变更

  • 我们已将 RangeIcons 设为内部 API(由 InlineSliderStepper 在内部引用)。(I927ec

bug 修复

  • 修复了以下问题:SwipeDismissableNavHost 会在达到 CREATED Lifecycle 状态之前向 Compose 层次结构添加目的地。此问题会导致出现 IllegalStateException。修复此问题后,才能将 navigation-compose 依赖项更新为 2.4.0-beta02 及更高版本。(I40a2bb/207328687

  • 添加了一个 Drawables 枚举类,用于在 Wear Compose 库中获取可绘制资源,这样便不再需要使用反射机制。这修复了在 minifyEnabled=trueshrinkResources=true 时库可绘制对象遭到移除的 bug。(Ib2a98)

  • 在 Wear Compose 中添加了针对 Stepper 的测试 (I2d03a)

  • 在 Wear Compose Navigation 中添加了 SwipeDismissableNavHost 的示例。(I85f06)

版本 1.0.0-alpha12

2021 年 12 月 1 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha12androidx.wear.compose:compose-material:1.0.0-alpha12androidx.wear.compose:compose-navigation:1.0.0-alpha12版本 1.0.0-alpha12 中包含这些提交内容

新功能

  • 我们添加了一个步进控件组件,让用户可以从一系列值中进行选择。步进控件是一种全屏控件,其顶部和底部带有增加按钮和减少按钮,中间是一个槽(预计会插入条状标签或文本)。按钮图标可根据需要自定义。(I625fe)

  • 我们新增了两个用于显示对话框的可组合项:一个是 AlertDialog,用于等待用户响应,并显示标题、图标、消息以及以下任意一种:a) 两个用于进行简单二选一的按钮,或 b) 便于用户更加灵活选择的垂直堆叠条状标签或切换条状标签;另一个是 ConfirmationDialog,用于显示设有超时的确认消息。这个简单的对话框包含用于显示标题和(动画)图标的槽。(Ic2cf8)

API 变更

  • 为对话框的建议显示时长值添加单位(毫秒)。(I09b48)

版本 1.0.0-alpha11

2021 年 11 月 17 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha11androidx.wear.compose:compose-material:1.0.0-alpha11androidx.wear.compose:compose-navigation:1.0.0-alpha11版本 1.0.0-alpha11 中包含这些提交内容

新功能

  • 我们添加了一个选择器组件,供用户从滚动列表中选择项目。默认情况下,可选择项列表会在两个方向上“无限”重复,这样从侧面看就是一个旋转的圆柱体。在后续版本中将添加两项功能:在滑动/快滑后贴靠到值;向 PickerState 添加函数以设置/滚动到当前值。 (I6461b)

API 变更

  • 添加了 ScalingLazyItemScope 和一些新的修饰符 fillParentMaxSize/fillParentMaxWidth/fillParentMaxHeight,以允许根据父容器的大小调整列表项的大小。项目可设为按父级的完整尺寸或部分尺寸进行填充。这样便可显示 LazyRow/Column 中已有的功能 (I4612f)
  • 添加了对 ScalingLazyColumn 的支持,以允许项目具有键。此外,还添加了允许从数组和列表中添加项目的便捷方法。(Ic1f89)

bug 修复

  • 为 TimeText 提供了更多示例 (I8cb64)

版本 1.0.0-alpha10

2021 年 11 月 3 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha10androidx.wear.compose:compose-material:1.0.0-alpha10androidx.wear.compose:compose-navigation:1.0.0-alpha10版本 1.0.0-alpha10 中包含这些提交内容

新功能

  • 为 Wear Compose 添加了 InlineSlider。InlineSlider 可让用户从一系列值中进行选择。选择范围会显示为最小值到最大值的横条,用户可以从该范围中选择单个值。(If0148)

  • 查看适用于 WearOS Codelab 的新 Compose!

API 变更

  • Macrobenchmark 现在的 minSdkVersion23。(If2655)

bug 修复

  • 在 SideEffect 中更新了 SwipeDismissableNavHost 的转换处理(I04994b/202863359
  • 更新了 SwipeDismissableNavHost 中的转换处理(I1cbe0b/202863359

版本 1.0.0-alpha09

2021 年 10 月 27 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha09androidx.wear.compose:compose-material:1.0.0-alpha09androidx.wear.compose:compose-navigation:1.0.0-alpha09版本 1.0.0-alpha09 中包含这些提交内容

新功能

  • 我们已发布了适用于 Wear OS 的开发者预览版 Compose。请参阅我们的博文,其中介绍了主要可组合项和指向开始使用这些资源的更多资源的链接。

API 变更

  • 我们添加了对开发者的支持,以便能够自定义 Wear Material Design 颜色主题中的所有颜色。(I4759bb/199754668

bug 修复

  • 添加了能保留状态的 SwipeToDismissBox 示例 (Ibaffe)
  • 添加了适用于 CurvedText、TimeText 和 SwipeToDismissBox 在 KDocs 中的 developer.android.com 指南链接。(I399d4)
  • 现在,如果没有任何当前目的地(表示 NavGraph 不是使用 wear.compose.navigation.composable 实用函数构建的),SwipeDismissableNavHost 就会抛出 (I91403)
  • 添加了关于 TimeText 中时间源用法的其他文档和示例 (I4f6f0)

版本 1.0.0-alpha08

2021 年 10 月 13 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha08androidx.wear.compose:compose-material:1.0.0-alpha08androidx.wear.compose:compose-navigation:1.0.0-alpha08版本 1.0.0-alpha08 中包含这些提交内容

API 变更

  • 我们已将 AppCard 和 TitleCard 的 body 属性重命名为 content,并将其移至属性列表的末尾,以便能以尾随 lambda 的形式提供这些属性。此外,为了保持新槽名称的一致性,我们还将 bodyColor 重命名为 contentColor。(I57e78)

bug 修复

  • 添加了有关按钮、卡片、条状标签、主题、位置指示器和缩放延迟列组件在 KDocs 中的 developer.android.com 指南链接。(I22428)
  • 修复了 WearOS SwipeToDismissBox 有时不处理滑动的问题。(I9387e)
  • 添加了 Button、CompactButton、Chip、CompactChip、AppCard、TitleCard、ToggleButton、ToggleChip、SplitToggleChip 的示例 (Iddc15)
  • 添加了针对 Card、Chip、ToggleChip、TimeText 和 ScalingLazyColumn 的微基准性能测试。(If2fe9)

版本 1.0.0-alpha07

2021 年 9 月 29 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha07androidx.wear.compose:compose-material:1.0.0-alpha07androidx.wear.compose:compose-navigation:1.0.0-alpha07版本 1.0.0-alpha07 中包含这些提交内容

新功能

  • 在 Material 中添加了 CurvedText 组件,让开发者能够轻松地沿着圆圈的弧线(通常位于圆形屏幕的边缘)写入曲线文字。(I19593)

API 变更

  • 针对 TimeText 添加了测试 (Idfead)
  • 将 ArcPaddingValues 转换为接口。(Iecd4c)
  • 向 SwipeToDismissBox 添加了动画 (I9ad1b)
  • 向 SwipeToDismissBox API 添加了 hasBackground 参数,以便在没有要显示的背景内容时可以停用滑动手势。(I313d8)
  • rememberNavController() 现在接受一组可选的 Navigator 实例,这组实例将添加到返回的 NavController 中,以便更好地支持可选导航器(例如来自 Accompanist Navigation Material 的导航器)。(I4619e)
  • 从 navigation-common 引用 NamedNavArgument,并从 wear.compose.navigation 中移除副本。(I43af6)

bug 修复

  • 修复了小型设备上 CurvedRow 测试不稳定的问题。(If7941)
  • 修复了内容更新时 CurvedRow 上可能出现的闪烁问题,并确保重新测量曲线行 (Ie4e06)
  • ChipDefaults.COLORBackgroundChipColors() 已根据用户体验规范变更进行了更新。在 MaterialTheme.colors.surface @ 75% alpha 的背景上,渐变现在从 MaterialTheme.colors.primary(alpha 为 32.5%)开始,以 MaterialTheme.colors.surface (alpha @ 0%) 结束。(Id1548)
  • 我们更新了 ToggleChip 在选定状态下的颜色,以符合最新的 Wear Material Design 用户体验规范指南。选中后,在 MaterialTheme.color.surface @ 75% alpha 的背景上,ToggleChip 的渐变背景从左上角 MaterialTheme.color.surface @ 0% alpha 开始,到右下角 MaterialTheme.color.primary @ 32% alpha 结束。这会使 ToggleChip 的勾选与未勾选状态之间存在更细微的差别。(Idd40b)

版本 1.0.0-alpha06

2021 年 9 月 15 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha06androidx.wear.compose:compose-material:1.0.0-alpha06androidx.wear.compose:compose-navigation:1.0.0-alpha06版本 1.0.0-alpha06 中包含这些提交内容

新功能

  • 我们为 Scaffold 添加了一个顶级应用可组合项,它提供了一种用于处理 PositionIndicator(例如 Scroll 或 Volume)位置的结构,该位置位于屏幕顶部,用于显示时间和应用状态,并且还支持使用 Vignette 对可滚动内容的屏幕顶部和底部边缘进行模糊处理。Scaffold 的主要区域是放置应用内容的位置。(I5e0bf)
  • 为 Wear Compose 添加了 TimeText 实现 (I5654c)

Wear Compose Navigation 库

  • 我们添加了 Wear Compose Navigation 库的第一个版本,它集成了 Wear Compose 和 Androidx Navigation 库。它提供了一种在应用中的 @Composable 函数(作为目的地)之间导航的简单方式。

  • 此初始版本包含以下各项:

    • 一个 SwipeDismissableNavHost 可组合项,用于托管导航图以及通过滑动手势提供向后导航
    • NavGraphBuilder.composable 扩展,用于协助构建导航图
    • rememberSwipeDismissableNavController(),允许提升状态
  • 下面是一个示例用法,我们在其中创建了两个屏幕并在它们之间导航:

    val navController = rememberSwipeDismissableNavController()
    SwipeDismissableNavHost(
        navController = navController,
        startDestination = "start"
    ) {
        composable("start") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Button(onClick = { navController.navigate("next") }) {
                    Text("Go")
                }
            }
        }
        composable("next") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Text("Swipe to go back")
            }
        }
    }
    
  • Wear Compose Navigation 被封装为单独的库,因此实现自己的手动导航的简单 WearCompose 应用无需依赖于 Androidx Navigation 库。

API 变更

  • 通过设置背景和内容的键身份,更新了 SwipeDismissableNavHost 以支持 rememberSaveable (I746fd)
  • 我们添加了可以处理 LazyListState 的 PositionIndicator 适配器 (I21b88)
  • 更新了 SwipeToDismissBox 以支持 rememberSaveable (Ie728b)
  • 我们向 ScalingLazyColumn 添加了 reverseLayout 支持。这样可以逆转滚动和布局的方向 (I9e2fc)
  • 废弃了 performGestureGestureScope,它们已被 performTouchInputTouchInjectionScope 取代。(Ia5f3fb/190493367
  • 我们已将 VignetteValue 重命名为 VignettePosition,并将 VignetteValue.Both 重命名为 VignettePosition.TopAndBottom。(I57ad7)
  • 我们已将 ScalingLazyColumnState 重命名为 ScalingLazyListState,将 ScalingLazyColumnItemInfo 重命名为 ScalingLazyListItemInfo,将 ScalingLazyColumnLayoutInfo 重命名为 ScalingLazyListLayoutInfo,并将 ScalingLazyColumnScope 重命名为 ScalingLazyListScope,以防日后决定添加 ScalingLazyRow 实现。(I22734)

bug 修复

  • 更新了 CompactChip 文档,以说明在没有提供图标和标签的情况下会发生什么。(I4ba88)
  • 我们对 Wear 卡片组件进行了一些调整。(I6b3d0)
    1. Title 和 Body 之间的 TitleCard 间距已从 8.dp 减小到 2.dp。
    2. TitleCard 标题字体从正文更改为了 title3。
    3. 更改了卡片背景渐变效果,使背景看起来更暗。

版本 1.0.0-alpha05

2021 年 9 月 1 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha05androidx.wear.compose:compose-material:1.0.0-alpha05版本 1.0.0-alpha05 中包含这些提交内容

API 变更

  • 将 ArcPaddingValues 标记为了 @Stable (I57deb)
  • ScalingLazyColumnState 现在会实现 ScrollableState 接口,让开发者获得编程访问权限以滚动浏览组件。(I47dbc)

bug 修复

  • 我们缩小了 Chip 和 ToggleChip 中的图标和文本之间的间距,使其与用户体验规范的更新保持一致。(I83802)

版本 1.0.0-alpha04

2021 年 8 月 18 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha04androidx.wear.compose:compose-material:1.0.0-alpha04版本 1.0.0-alpha04 中包含这些提交内容

新功能

  • 添加了 SwipeToDismissBox 和可滑动修饰符,可用于支持从左到右滑动关闭手势。虽然与导航组件无关,但这应该用于退出一个屏幕并导航到另一个屏幕。为滑动关闭演示添加了集成测试。(I7bbaa)
  • 我们向 ScalingLazyColumnState 类添加了 ScalingLazyColumnItemInfo 和 ScalingLazyColumnLayoutInfo 接口,让开发者能够在应用缩放后知道 ScalingLazyColumn 中项的实际位置和大小。我们还修复了与对 ScalingLazyColumn 应用内容“上”内边距后计算缩放的方式有关的 bug。(I27c07)

API 变更

  • 添加了 CurvedTextStyle 类,以指定曲线文本样式选项。与 TextStyle 类似,但现在仅支持颜色、字号和背景。我们会在日后添加更多样式选项。(I96ac3)
  • 我们向 ScalingLazyColumnState 类添加了 ScalingLazyColumnItemInfo 和 ScalingLazyColumnLayoutInfo 接口,让开发者能够在应用缩放后知道 ScalingLazyColumn 中项的实际位置和大小。我们还修复了与对 ScalingLazyColumn 应用内容“上”内边距后计算缩放的方式有关的 bug。(I27c07)
  • SwipeDismissTarget 枚举添加了 @ExperimentalWearMaterialApi,这属于 SwipeToDismissBox API 的一部分。(I48b5e)

bug 修复

  • 为 SwipeToDismissBox 添加了测试材料 (I9febc)

版本 1.0.0-alpha03

2021 年 8 月 4 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha03androidx.wear.compose:compose-material:1.0.0-alpha03版本 1.0.0-alpha03 中包含这些提交内容

API 变更

  • 新增了 CurvedText 组件,让开发者能够轻松地沿着圆圈的弧线(通常位于圆形屏幕的边缘)写入文字 (Id1267)
  • 我们已将 CardDefaults.imageBackgroundPainter() 重命名为 CardDefaults.imageWithScrimBackgroundPainter(),以便让用户清楚知道背景图片上绘制有纱罩。(I53206)
  • 新增了 ScalingLazyColumn 组件,用于为 Wear Material 提供列表组件,支持用户在鱼眼视图中缩减列表内容的大小,让列表内容在靠近组件边缘时渐隐为透明。(I7070c)

bug 修复

  • 我们更改了 AppCard 中 appName 内容的默认颜色,以响应用户体验规范更新。appName 的默认颜色现在为 MaterialTheme.colors.onSurfaceVariant。此外,为标题位置添加了缺少的参数文档说明。(Ic4ad1)

版本 1.0.0-alpha02

2021 年 7 月 21 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha02androidx.wear.compose:compose-material:1.0.0-alpha02版本 1.0.0-alpha02 中包含这些提交内容

新功能

  • 新增了一个 CurvedRow 类,用于在 arc 中安排可组合项的布局 (I29941)
  • 新增了一种在应用中使用的卡片 (TitleCard),并支持将图片作为背景添加到卡片,以重点强调其内容 (I53b0f)

API 变更

  • 向 CurvedRow 添加了对径向对齐的支持(类似于行中的垂直对齐)(Id9de5)
  • 新增了一个 CurvedRow 类,用于在 arc 中安排可组合项的布局 (I29941)
  • 新增了一种在应用中使用的卡片 (TitleCard),并支持将图片作为背景添加到卡片,以重点强调其内容 (I53b0f)
  • 向 ToggleChipDefaults 添加了切换图标(复选框、开关和单选按钮),以便开发者可以更轻松地配置 ToggleChip 和 SplitToggleChips (I7b639)
  • 更新了条状标签的开始和结束内容的内边距,这样,无论条状标签是否会显示图标,内边距始终为 14.dp(之前在显示图标时为 12.dp,不显示图标时为 14.dp)(I34c86)

bug 修复

  • 针对 CurvedRow 添加了测试 (I93cdb)
  • 将 Wear Compose 依赖项与 Compose 1.0.0-rc01 相关联。(Ie6bc9)
  • 更改了卡片和条状标签中背景图片绘制的处理方式,以便系统裁剪而不是拉伸图片,从而保持图片显示比例不变。(I29b41)
  • 针对 Button 和 ToggleButton 添加了更多演示和集成测试。(5e27ed2)
  • 添加了更多条状标签测试,以涵盖 imageBackgroundChips 的内容颜色 (Ia9183)

版本 1.0.0-alpha01

2021 年 7 月 1 日

发布了 androidx.wear.compose:compose-foundation:1.0.0-alpha01androidx.wear.compose:compose-material:1.0.0-alpha01版本 1.0.0-alpha01 中包含这些提交内容

新功能

Wear Compose 是一个基于 Compose 的 Kotlin 库,支持 Wear Material Design,是适用于 WearOS 穿戴式设备的 Material Design 的扩展。第一个 Alpha 版本包含以下对象的早期功能性实现:

  • Material 主题 - 用于为通过此库使用的各个组件配置统一的颜色、字体排版和形状。
  • Chip、CompactChip - 此类条状标签是体育场形状的,其变体可用于容纳图标、标签和次级标签内容。
  • ToggleChip、SplitToggleChip - 一种特殊类型的条状标签,包含一个用于放置在两种状态之间进行切换的图标(例如单选按钮或复选框)的槽位。此外,SplitToggleChip 具有两个可点按区域,即一个可点击区域和一个可切换区域。
  • Button、CompactButton - 圆形按钮,带有一个用于放置图标或极少文字(最多 3 个字符)的内容槽位。
  • ToggleButton - 用于启用或停用某项操作的按钮,带有一个用于放置图标或极少文字(最多 3 个字符)的槽位。
  • Card、AppCard - 圆角矩形,可提供多个用于放置应用图标、时间、标题和正文等内容的槽位。

后续版本将扩展 widget 集,以添加对 Wear Material Design 选择器、滑块、列表、页面指示符、对话框、滚动 RSB 指示符、消息框等对象的支持。

此外,我们还将为其他穿戴式设备专属功能(例如曲线布局和文字)以及架构提供支持,以便开发者能够轻松构建穿戴式应用/叠加层。

Wear Compose Material 的设计遵循与 Compose Material 相同的原则,不过是以穿戴式设备为目标平台。因此,在为穿戴式设备打造应用时,应使用 Wear Compose Material 库来代替 Compose Material 库。

这两个“Material”库应视为互斥,不应在同一应用中混用。如果开发者发现其依赖项中包含 Compose Material 库,则说明:a) Wear Compose Material 库中缺少组件(请告诉我们所需组件);或者 b) 目前所用组件不是我们推荐在穿戴式设备上使用的组件。