Wear Compose

  
通过提供支持可穿戴设备特定设备、尺寸、形状和导航手势的功能,为可穿戴设备编写 Jetpack Compose 应用。
最新更新 稳定版 候选版本 测试版 Alpha 版本
2024 年 11 月 13 日 1.4.0 - - 1.5.0-alpha06

声明依赖项

要添加对 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.
}

有关依赖项的更多信息,请参阅添加构建依赖项

反馈

您的反馈有助于改进 Jetpack。如果您发现新问题或有改进此库的想法,请告知我们。在创建新问题之前,请查看此库中现有问题。您可以通过点击星形按钮为现有问题添加您的投票。

创建新问题

有关更多信息,请参阅问题跟踪器文档

Wear Compose Material3 版本 1.0

版本 1.0.0-alpha29

2024 年 11 月 13 日

androidx.wear.compose:compose-material3:1.0.0-alpha29 已发布。版本 1.0.0-alpha29 包含这些提交

API 更改

  • 我们已更新 TimeText 以提供显示时间的默认内容。(Id23b3

  • 我们简化了用于PagerStateScrollInfoProvider,去掉了不再需要的orientation参数。新的行为是,对于水平和垂直翻页,TimeText都将保持原位。(I71767
  • LocalHapticFeedback现在在Vibrator API指示支持触觉反馈时提供默认的HapticFeedback实现。以下内容已添加到HapticFeedbackType中:ConfirmContextClickGestureEndGestureThresholdActivateRejectSegmentFrequentTickSegmentTickToggleOnToggleOffVirtualKey。Wear Compose中可长按的组件(例如ButtonIconButtonTextButtonCard)现在在提供长按处理程序时执行LONG_PRESS触觉反馈。(I5083d

错误修复

  • 我们更新了确认的动画。(I04bff
  • 我们已将Compose库的最低API依赖项更新到1.7.4。(I88b46
  • OpenOnPhone对话框添加了新的动画。(I1e10a
  • 我们修复了LevelIndicator中的一个错误,现在当级别为零时可以正确显示。(Ie95a4
  • 我们更新了HorizontalPageIndicatorVerticalPageIndicator的动画。(I5c8f3
  • 我们为不确定的ArcProgressIndicator添加了缩小为点的动画。(I9fd51

版本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 Material 3 Colors类中将copy()的可见性更改为公开。(I0287f

错误修复

  • IconToggleButtonTextToggleButton添加了单击时的最小动画持续时间。(Ieb333
  • IconButtonTextButton形状动画添加了最小持续时间。(Iebcee
  • 更正了DatePicker的重复选项状态。(I3587c
  • 为Alert和Confirmation对话框添加了动画。(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 Schemes移动到专门的MotionScheme伴随对象中。将standardMotionSchemeexpressiveMotionScheme重命名为standard和expressive。(I5fd45
  • 我们添加了对基于系统颜色的动态颜色方案的支持。(I073e9
  • 我们已将步进器更新到最新的UX规范。(I622bb

错误修复

  • 我们更新了卡片组件的排版和填充。(I3ae48
  • 根据UX规范,我们将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
  • AlertDialog现在支持从按钮堆栈变体中省略默认底部按钮的功能,用于不需要EdgeButton的自定义布局。(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

错误修复

  • 我们更新了openOnPhone图标动画。(I66f85
  • 我们现在在SliderTimePickerDatePicker中使用Google Symbols图标。(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 LazyColumn 添加了对我们的 ScreenScaffold 的支持(并为 LazyColumnState 添加了 ScrollInfoProvider 的实现)。(Ib8d29)
  • 我们将 LocalTextMaxLinesLocalTextAlignLocalTextOverflow 合并到单个 LocalTextConfiguration 组合本地,以便将来提供更具扩展性的解决方案。(I5edbc
  • 我们添加了 arc-large 作为额外的类型比例,保留用于屏幕最顶部或底部的简短标题文本字符串,例如在确认叠加层中。(I60e3e
  • 我们为 Button 添加了默认值,用于推荐的大型和特大型图标大小以及内容填充。(I84675

错误修复

  • 我们更新了 IconButtonTextButton 的颜色。(I48324
  • 我们已将基本 Button 重载更改为垂直居中对齐,以与其他重载保持一致。要恢复以前的行为,请使用来自 RowScopeModifier.align。(I66e57

版本 1.0.0-alpha24

2024 年 9 月 4 日

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

API 更改

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

  • 我们添加了 LocalTextMaxLinesLocalTextAlignLocalTextOverflow 作为 CompositionLocals,并在 Text 上将其用作参数默认值。现在,组件(例如 CheckboxButtonSwitchButtonRadioButton)可以使用这些组合本地值来实现 UX 指南,但开发人员如有必要可以覆盖这些参数。(Iab841
  • 我们添加了 Placeholder,用于在数据加载之前帮助掩盖按钮和卡片等组件的内容。(I1a532
  • 我们添加了 IconToggleButtonColorsTextToggleButtonColors 来替换现已移除的 ToggleButtonColors。(Ie0bf1

错误修复

  • 我们更新了 ButtonFilledTonalButtonOutlinedButtonChildButtonCompactButton 以使用新的 CompositionLocals LocalTextMaxLinesLocalTextAlignLocalTextOverflow 来实现 UX 指南 - 如果需要,开发人员可以在 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

错误修复

  • 我们修复了一个错误,即当可选择按钮已选中时,它会宣布双击以切换。(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 Switch - 除了某些颜色更改外,勾选标记现在与复选框使用的勾选标记一致。(Icac7b

错误修复

  • 更新所有集成演示以使用新的 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 包含 这些提交

错误修复

  • 我们调整了涟漪按下和聚焦状态的 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 更改

  • 我们已将 TimeText 添加到 Wear Compose Material3 库中。此组件在屏幕顶部显示当前时间(以及其他状态)。新的简洁 Material3 API 避免了线性内容和曲线内容之间的重复。(I4d7c3
  • 我们已将参数名称从 onSelected 更新为 onSelect,用于 RadioButton。(I1a971
  • RadioButtonSplitRadioButton 进行标记化,并重构现有方法以减少 CompositionLocal 的查找次数,方法是添加颜色的缓存实例,并将 RadioButtonColorsSplitRadioButtonColors 的方法标记为内部方法。(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

错误修复

  • 我们已更新 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 表示您不希望提升 MutableInteractionSource,如果需要,它将在组件内部创建。更改为 null 允许某些组件永远不会分配 MutableInteractionSource,并允许其他组件仅在需要时延迟创建实例,从而提高了这些组件的性能。如果您没有使用传递给这些组件的 MutableInteractionSource,建议您传递 null。还建议您在自己的组件中进行类似的更改。(Ib90fcb/298048146
  • wear:compose-materialwear:compose-material3 库中添加了新的涟漪 API,它替换了已弃用的 rememberRipple。还添加了一个临时的 CompositionLocalLocalUseFallbackRippleImplementation,以将 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

错误修复

  • 我们在 Wear Compose Material 3 中添加了持续时间和缓动动画的运动值令牌。(I437cd
  • 我们修复了ToggleButtonSplitToggleButtonCheckboxSwitchRadioButton中的一个错误,以便不再重复辅助功能播报(之前,语义角色是重复的)。(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。这使得基础级别组件和 Material3 级别SwipeToDismissBox之间的区别更加清晰。后者从MaterialTheme中提取颜色以用于遮罩,并将其余实现委托给BasicSwipeToDismissBox。(Ibecfc

错误修复

  • 我们移除了 Material3 Button 的 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 包含这些提交。

错误修复

  • 我们更新了 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 声明为实验性,因为用户界面的详细信息仍在最终确定中。(I84d54
  • 我们已从圆形TextButtonTextToggleButton中删除了ExtraSmall尺寸,因为该尺寸仅适用于IconButton。(Ibc7d5

错误修复

  • 我们已更新 TextToggleButton 的排版指南,以针对 LargeButtonSize 使用 LabelLarge。(Ib10fa
  • 我们已更新 TextButton 的排版指南,以针对 LargeButtonSize 使用 LabelLarge。(I8f3a7
  • 我们已将卡片的最小触摸目标设置为 48dp 以实现辅助功能。(Ieb9b1
  • 添加带有图像演示的 AppCard,删除带有背景演示的 AppCard。(Id735f
  • 修复了圆形按钮中的一个错误,其中修饰符未正确链接。(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 Material3 的排版以符合最新的 Material3 指南。(I1bad6

错误修复

  • 我们已根据 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
  • 我们已将IconToggleButtonTextToggleButton添加到 Material3,这是一种圆形切换按钮,分别为图标和文本提供一个插槽。对于不同尺寸的ToggleButton,我们建议使用Modifier.touchTargetAwareSize以及各个切换按钮中提供的尺寸。(I9f015
  • 我们已将ListHeaderListSubheader添加到我们的 Material3 组件中。(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

错误修复

  • 现在,Button 将根据需要调整其高度以适应由于辅助功能的大字体而增大的内容。(Iaf302
  • 我们已更新了一些 Button 演示以解决辅助功能问题。(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

错误修复

  • 我们已更新 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 包含这些提交。

错误修复

  • 我们已更新 TextButton 以使用 toDisabledColor 扩展函数以获取正确的禁用 alpha 值。(I814c8

版本 1.0.0-alpha05

2023 年 5 月 24 日

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

新功能

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

API 更改

  • 我们已将 Button 的标签参数移至末尾以支持尾随 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 包含这些提交。

新功能

  • 我们已将 IconButton 添加到 Material3 中,这是一个圆形按钮,只有一个用于图标/图像的插槽。有四种变体:IconButtonFilledIconButtonFilledTonalIconButtonOutlinedIconButton。对于不同大小的 IconButton,我们建议使用 Modifier.touchTargetAwareSizeExtraSmallButtonSizeSmallButtonSizeDefaultButtonSizeLargeButtonSizeIcon(在 IconButtonDefaults 中提供)。我们还提供 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 的 Button 组件 - 这是我们的体育场形状的按钮,以前在 Wear Compose Material 库中名为 Chip(它已重命名为 Button 以与 Compose Material 3 库保持一致)。默认的 Button 具有填充背景,并且有用于 FilledTonal(柔和背景)、Outlined(透明带细边框)和 Child(透明背景且无边框,用于具有最低突出度的补充操作)的按钮变体。用于简单图标和文本内容的圆形按钮将在未来的版本中推出。(Ia6942

版本 1.0.0-alpha02

2023 年 4 月 5 日

androidx.wear.compose:compose-material3:1.0.0-alpha02 已发布。版本 1.0.0-alpha02 包含这些提交。

错误修复

  • 我们已将 DefaultTextStyle 添加到 Wear Compose Material 3 中,它将 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 版本将扩展部件集,以包含来自 Compose for Wear OS 的其他熟悉组件,例如按钮、选择器和滑块。

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

Wear Compose 版本 1.5

版本 1.5.0-alpha06

2024 年 11 月 13 日

androidx.wear.compose:compose-*:1.5.0-alpha06 已发布。版本 1.5.0-alpha06 包含 这些提交

API 更改

  • 我们简化了用于PagerStateScrollInfoProvider,去掉了不再需要的orientation参数。新的行为是,对于水平和垂直翻页,TimeText都将保持原位。(I71767
  • TransformingLazyColumn 在较早的版本中引入。我们现在正在删除 Wear 的 LazyColumn 别名(它们转发到 TransformingLazyColumn),以支持新名称 TransformingLazyColumn。我们还删除了 TransformingLazyColumnVisibleItemInfoheight 属性 - 请改用 measuredHeight。(I0ea1e
  • 我们已将 PagerDefaults.snapFlingBehaviorsnapAnimationSpecTween 更改为 Spring 规范。(I10d02b/349781047b/303807950
  • 我们已将 LocalReduceMotionCompositionLocal 提升到稳定版本。(Ia6f32

错误修复

  • 我们已更新 Modifier.rotaryScrollable 以使用 focusTargetWithSemantics,从而在旋转输入方面提供更好的语义支持。(Ief0a0
  • 我们已将Compose库的最低API依赖项更新到1.7.4。(I88b46
  • 我们已在 TransformingLazyColumn 中禁用宽度变形,作为解决裁剪错误的变通方法。(I3dfb8
  • 我们修复了一个错误,该错误会导致在使用 TransformingLazyColumn 滚动过头后项目消失。(Id7668
  • 我们为 TransformingLazyColumn 添加了 LazyLayoutSemantics。(Ia8f56

版本 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

错误修复

  • 我们修复了在内容高度小于屏幕高度时渲染 TransformingLazyColumn 的错误。(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

错误修复

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

版本 1.5.0-alpha02

2024年9月18日

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

API 更改

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

错误修复

  • 我们修复了一个错误,以便在将 userScrollEnabled 标志设置为 false 时,ScalingLazyColumn 中的旋转滚动现在被禁用。(I490abb/360295825
  • 我们进行了一个错误修复,以解决弯曲文本上意外的垂直填充问题。弯曲文本高度现在更接近文本实际使用的空间。请注意,这可能会破坏涉及弯曲文本的屏幕截图测试。(Iaa6ef
  • 我们已回退了一个针对 Dialog 的错误修复,在该修复中,当 showDialog 设置为 false 时会调用 onDismissRequest 回调,因为在某些情况下会导致多次调用 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
  • 我们已将 itemsIndexed 的索引版本添加到 LazyColumnScope 中,作为新的 LazyColumn API 的一部分。(Ib4a57
  • 我们添加了 LazyColumn 修饰符以支持缩放和变形行为。(Ie229a
  • HierarchicalFocusCoordinator 已提升至稳定版本。(I31035
  • 我们已添加了对弯曲文本的字母间距支持。(I3c740
  • CurvedLayout.curvedComposable 添加了一个 rotationLocked 参数以停止组件旋转。(I66898
  • 已删除来自 Wear Material 和 Wear Material3 的临时 LocalUseFallbackRippleImplementation API。(I62282
  • @WearPreviewDevices 多预览中删除了 WearDevices.SQUARE。(I11c02

错误修复

  • SwipeToReveal 现在将显示的项目放置在屏幕的可见部分,这在 SwipeToReveal 用于列表中时很有帮助,这样项目始终可交互且永远不会超出屏幕。(I38929
  • SwipeToReveal 现在在 animatedTo 完成后将 lastActionType 重置为 None。(I59b03
  • 改进了 curvedComposable 上新的 rotationLocked 参数的文档。(Ifbd57
  • 修复了将 NaN 传递给 ScalingLazyColumnSnapFlingBehaviorperformFling 时发生的崩溃。(Ic13da
  • 修复了弯曲布局大小修饰符上的错误。(I0fedf
  • 我们已添加了对以“sp”指定的字母间距的支持。(I9f6e3
  • 我们修复了 Material2 对话框中的一个错误,在该错误中,当对话框变为不可见时,不会调用 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 包含 这些提交

错误修复

  • 我们已更新 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 包含 这些提交

错误修复

  • 我们已增加了传递给屏幕阅读器来自弯曲文本的边界宽度,以解决截断问题(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 现在支持在内容需要额外高度以适应大型字体大小时调整高度。

错误修复

  • 我们修复了一个错误,即当可选择芯片已被选中时,它会宣布双击切换。(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 snapOffsetsnapOffset 参数的类型从 Int 更改为 Dp。(Iddebe
  • 我们已将 SplitSelectableChip 上的 clickInteractionSource 参数重命名为 containerInteractionSource。(Ia8f84
  • 我们已更新 SplitSelectableChip 的点击回调参数名称 - 从 onClickonSelectionClick,以及从 onBodyClickonContainerClick。(I32237

错误修复

  • 我们已将 PositionIndicator 的水平填充更新为 2dp(之前为 5dp),以修复 PositionIndicator(滚动条)与可滚动内容重叠的错误。请注意,此更改预计会破坏包含 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 参数设置为捕捉,则建议也通过 flingBehavior 参数提供捕捉,以实现触摸滚动。(I2ef6f
  • NestedScroll 的来源拖动和弹动正被 UserInputSideEffect 替换,以适应这些来源的扩展定义,这些来源现在包括动画(副作用)和鼠标滚轮和键盘(用户输入)。(I40579
  • 我们添加了 SelectableChipSplitSelectableChip 以更清楚地区分切换控件(如 Switch/Checkbox)和可选择控件(如 RadioButton)。这将之前添加的 ToggleChip/SplitToggleChip 带有 selectionControl 参数的重载替换掉了。(Ia0217
  • ProgressIndicatorDefaultsIndeterminateStrokeWidth 的可见性修饰符更新为 public。(I5b5a4

版本 1.4.0-alpha06

2024 年 4 月 3 日

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

错误修复

  • 我们添加了旋转支持的内部草稿,作为将旋转行为从 Horologist 迁移到 AndroidX 的更大工作的一部分。(I617d1

  • 我们在更大的将 Rotary 行为从 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

错误修复

  • 我们通过减少从 ScalingLazyColumn 调用 layoutInfo 的次数来提高 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
  • 我们更新了新 selectionControl 重载的参数名称,将 ToggleChipSplitToggleChiponSelected 更改为 onSelectI1a971

版本 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

错误修复

  • 我们修复了 WearPreview* 注释的文档错误。(Id526d

版本 1.4.0-alpha02

2024 年 2 月 7 日

androidx.wear.compose:compose-*:1.4.0-alpha02 已发布。版本 1.4.0-alpha02 包含这些提交。

错误修复

  • 我们修复了滑动显示的错误,其中可以通过开始滑动另一个项目来与一个项目的已提交操作进行交互(并取消)。(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,它替换了已弃用的 rememberRipple。还添加了一个临时的 CompositionLocalLocalUseFallbackRippleImplementation,以将 Material 组件恢复为使用已弃用的 rememberRipple/RippleTheme API。这将在下一个稳定版本中删除,并且仅旨在作为在您提供自定义 RippleTheme 的情况下进行临时迁移的辅助工具。有关迁移信息以及此更改背后的更多背景信息,请参阅 developer.android.com。(af92b21
  • 我们更新了 ColorScheme 以使其不可变,这使得单个颜色更新效率降低,但使更常见的颜色使用效率更高。此更改背后的原因是,大多数应用不会将更新单个颜色作为主要用例。这仍然是可能的,但它将比以前更多地重新组合,反过来,我们显着减少了所有材料代码中的状态订阅量,并将影响更标准用例的初始化和运行时成本。(f5c48b7
  • 在 API 中公开 MutableInteractionSource 的 Wear material 和 Wear material3 组件已更新为现在公开一个默认为 null 的可空 MutableInteractionSource。这里没有语义更改:传递 null 表示您不希望提升 MutableInteractionSource,如果需要,它将在组件内部创建。更改为 null 允许某些组件永远不会分配 MutableInteractionSource,并允许其他组件仅在需要时延迟创建实例,从而提高这些组件的性能。如果您没有使用传递给这些组件的 MutableInteractionSource,建议您传递 null。还建议您在您自己的组件中进行类似的更改。(f8fa920
  • 我们更新了 rememberExpandableState 以保存可扩展状态。这确保在导航到另一个屏幕时存储数据,并在返回原始屏幕时恢复数据。(5c80095

错误修复

  • 我们更新了 ReduceMotion 设置以使用生命周期感知监听器。(7c6b122
  • 我们更新了 TouchExplorationStateProvider 的监听器以使其成为生命周期感知的。(be28b01
  • 我们删除了 CompactButton 的 materialcore 层以提高性能。(25db8e9
  • 我们使 BasicSwipeToDismissBox 对 NaN 偏移更加稳健,以避免异常。(b983739
  • 我们更新了 BasicSwipeToDismissBox 以确保 alpha 值在 0,1 范围内。
  • 我们修复了 ToggleButtonSplitToggleButtonCheckboxSwitchRadioButton 中的一个错误,以便不再重复辅助功能公告(以前,语义角色重复)。(d11eeb7)

版本 1.3

版本 1.3.1

2024 年 4 月 3 日

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

错误修复

  • 我们修复了滑动显示的错误,其中可以通过开始滑动另一个项目来与一个项目的已提交操作进行交互(并取消)。(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 类帮助您实现 推荐的滑动显示指南SwipeToRevealSample 类演示了如何使用这些组件。
  • 我们在 1.3.0-alpha02 版本中引入了一项更改,导致 ChipToggleChip 对象的高度增加,以更好地支持用户选择的字体缩放。这可能会导致一些裁剪发生。为了解决此问题,MaterialThemelarge 形状现在使用更大的圆角半径(26 dp 而不是 24 dp)。ChipToggleChip 对象使用此新的圆角半径来避免裁剪 Chip 和 ToggleChip 角落的内容。

    • 大多数 ChipsToggleChips 保持不变,因为它们的默认高度为 52 dp。但是,包含多行主要或次要标签文本或已覆盖高度的 ChipToggleChip 对象可能会导致屏幕截图测试失败。

其他更改

有关 1.3.0 版本中引入的更改的更完整列表,请参阅 beta01 版本说明

实施建议

  • 如果您的应用允许用户在屏幕内容周围平移,例如在基于地图的应用中,请通过在 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 版本包含这些提交。

错误修复

  • 我们已更新 MaterialTheme 的 large 形状以使用 26dp 圆角半径,Chip 和 ToggleChip 现在将使用此形状。此更改是为了支持内容需要额外高度以适应大字体时的高度调整——否则,现有的体育场形状会裁剪一些文本内容。

    Text clipped on corners
    图 1:文本在角落处被裁剪。
    Text not clipped
    图 2:文本未被裁剪。

    此更改可能会导致屏幕截图测试失败。(I2e6ae

1.3.0-beta02 版本

2023 年 12 月 13 日

androidx.wear.compose:compose-*:1.3.0-beta02 已发布。 1.3.0-beta02 版本包含这些提交。

错误修复

  • 我们已在 BasicSwipeToDismissBox 中恢复了预期的滑动动作。这在之前的版本中进行了更改,因此转换的滑动部分发生在手指触摸屏幕时。(Id8e76

1.3.0-beta01 版本

2023 年 11 月 15 日

androidx.wear.compose:compose-*:1.3.0-beta01 已发布。 1.3.0-beta01 版本包含这些提交。

适用于 Wear OS 的 Compose 的 1.3-beta01 版本表明此版本的库功能完整且 API 已锁定(除非标记为实验性)。Wear Compose 1.3 包括以下新功能

  • SwipeToDismissBoxStateSwipeToDismissValueModifier.edgeSwipeToDismiss 已从 androidx.wear.compose.material 迁移到 androidx.wear.compose.foundation,以及 BasicSwipeToDismissBox 中的基础滑动关闭实现。这允许独立于 Material Design 使用滑动关闭的手势处理,例如来自 androidx.wear.compose.navigation 中的 SwipeDismissableNavHost。仍然建议将来自 androidx.wear.compose.materialSwipeToDismissBox 与 Material Design 一起使用,因为它会从 MaterialTheme 中提取颜色,然后将其余实现委托给 BasicSwipeToDismissBox
  • SwipeDismissableNavHost 现在支持一个新的 userSwipeEnabled 参数,以便可以关闭不需要屏幕的滑动处理。
  • BasicSwipeToDismissBox 使用 HierarchicalFocusCoordinator 改进了焦点处理。
  • SwipeToReveal 在 Material 中具有新的 SwipeToRevealCardSwipeToRevealChip 可组合项,这些项遵循 CardChip 的推荐 UX 指南。它还支持辅助操作的撤消。
  • DefaultTextStyle 现在关闭字体填充以在整个 Android 平台上保持一致。
  • ChipToggleChip 现在会调整其高度以适应由于辅助功能的大字体而增大的内容。
  • PositionIndicator 现在具有淡入、淡出和位置更改动画的单独动画规范。出于性能原因,我们建议在与可滚动列表一起使用时关闭淡入和位置更改。
  • ExpandableStateMapping 提供了一种新方法来生成 ExpandableStates,当需要按需创建它们并且不一定是使用 @Composable 范围时。
  • Placeholder 现在允许在内容不再处于就绪状态时重置。此外,减少运动设置现在适用于 Placeholder 上的闪烁效果和擦除动作。

已知问题

  • PositionIndicator 最初不会在首次显示屏幕时显示。我们打算在 1.4 alpha 的早期版本中进行更改,以便它最初会显示,但没有任何动画。

API 更改

  • 我们已将 Foundation 级别的 SwipeToDismissBox 重命名为 BasicSwipeToDismissBox。这使 Foundation 级别组件和 Material 级别 SwipeToDismissBox 之间的区别更加清晰。后者从 MaterialTheme 中提取颜色以用于遮罩,并将其余实现委托给 BasicSwipeToDismissBox。(Ibecfc
  • 我们已将 rememberExpandableStateMapping 标记为实验性,并改进了 expandableItem 的性能。(I5f6bc
  • 我们已将 Material SwipeToReveal 卡片和芯片 API 中的 SwipeToRevealAction 类替换为使用 SwipeToRevealPrimaryActionSwipeToRevealSecondaryActionSwipeToRevealUndoAction 可组合项的基于插槽的 API。请参阅示例代码以了解如何使用新 API。(Ia8943
  • 我们已将 PositionIndicator 动画标志替换为 AnimationSpec 参数。可以通过将 snap 作为 AnimationSpec 来禁用各个动画。(I6c523

错误修复

  • 我们修复了当大小受限时由有限的曲线文本触发的错误(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。出于性能原因和 UX 一致性,当 PositionIndicator 与可滚动列表一起使用时,我们建议关闭 showFadeInAnimationshowPositionAnimation 标志。如果 PositionIndicator 用作独立指示器,例如用于音量更改,那么我们建议启用所有 3 个动画。(I44294
  • 在将滑动关闭功能迁移到 wear.compose.foundation 后,我们已弃用 Material SwipeToDismissBoxStateSwipeToDismissValueedgeSwipeToDismiss。请替换为 wear.compose.foundation 等效项。(Iee8c9

错误修复

  • 我们已更新了 wear compose foundation、material 和 navigation 库的基线配置文件。(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。出于性能和 UX 一致性的考虑,当 PositionIndicator 与可滚动列表一起使用时,我们建议关闭 showFadeInAnimationshowPositionAnimation 标志。如果 PositionIndicator 用作独立指示器,例如音量更改,则建议启用所有 3 个动画。(Ia2d63

错误修复

  • 我们对滑动以显示动作进行了改进,向主要操作文本添加了淡入淡出动画,并在完全滑动展开时淡出辅助操作/更改图标比例。(Ib7223
  • 建议使“滑动以显示”操作可访问,并且我们在“滑动以显示”示例中添加了自定义辅助功能操作。(I42224
  • 我们改进了SwipeToDismissBox的性能,包括重构以确保初始逻辑不会触发重新组合。SwipeToDismissBox现在绘制为全屏大小。(Ie0aa2
  • 我们修复了一个 PositionIndicator 错误地消失的错误。(I2091a
  • 通过优化重新组合改进了PositionIndicator的性能。随后添加了用于控制动画的新标志(fadeInfadeOutpositionChange)(请参阅 API 更改)(Ifac7d
  • 我们为PositionIndicator添加了微基准测试。(Idf875

版本 1.3.0-alpha06

2023 年 9 月 20 日

androidx.wear.compose:compose-*:1.3.0-alpha06 已发布。版本 1.3.0-alpha06 包含这些提交。

错误修复

  • 我们添加了对Modifier.edgeSwipeToDismissSwipeToReveal 的支持。(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 已发布。版本 1.3.0-alpha05 包含这些提交。

错误修复

  • 我们在“滑动以显示”中添加了处理,以便一次只能滑动一个项目。(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

错误修复

  • 修复了圆形按钮中的一个错误,其中修饰符未正确链接。(I5e162

版本 1.3.0-alpha03

2023 年 8 月 9 日

androidx.wear.compose:compose-*:1.3.0-alpha03 已发布。版本 1.3.0-alpha03 包含这些提交。

API 更改

  • 我们在 Material 中添加了两个新的可组合项,用于使用卡片和芯片实现SwipeToReveal。这些可组合项遵循组件上的推荐 UX 指导,并使开发人员更容易使用 Wear Material 中的现有组件实现SwipeToReveal。(I7ec65
  • 我们已将FloatRange注释作为 API 约束打开,这些注释以前在注释中说明。(Icb401

错误修复

  • 我们将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的新方法,用于需要按需创建它们的情况,不一定在@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

错误修复

  • 我们修复了一个 z 顺序错误,其中expandedItem在单击具有按钮的行为的按钮后没有显示正确的内容。(I1899db/289991514
  • 使用HierarchicalFocusCoordinator改进SwipeToDismissBox(以及SwipeDismissableNavHost)的焦点处理。(I45362b/277852486
  • 我们对SwipeableV2中的手势处理进行了修复。(I89737
  • 我们完成了 1.2 版本的基本配置文件。(Id5740
  • SwipeToDismissBox迁移到 Foundation 之后,Material SwipeToDismissBox实现现在转发到 Foundation 并从其主题提供默认颜色值。(If8451
  • 我们向ListHeader添加了标题语义。(Ic5420
  • ChipToggleChip现在将调整其高度以适应由于辅助功能的大字体而增长的内容(如果需要)。(Iaf302
  • 修复了SplitToggleChip的可点击区域的语义角色错误,以实现辅助功能。(Ieed3a
  • 减少运动设置现在会关闭占位符上的闪烁效果和擦除动作。(I91046
  • StepperInlineSlider现在支持长按重复点击,以便您可以通过按住 + 或 - 按钮快速增加/减少StepperInlineSlider的值。(I27359

版本 1.3.0-alpha01

2023 年 6 月 21 日

androidx.wear.compose:compose-*:1.3.0-alpha01 已发布。版本 1.3.0-alpha01 包含这些提交。

错误修复

  • 1.2.0-alpha071.2.0-alpha10中宣布的那样,我们现在正在更改DefaultTextStyle以关闭字体填充,以使 Android 平台保持一致。这将解决一些大字体文本剪裁的情况,也可能会影响屏幕布局,因此需要更新屏幕截图测试。例如,我们在这里看到文本剪裁(Ic6a86
Text clipped with large font size
图 1:文本被剪裁。
  • 关闭字体填充后,它将不再存在。

Text not clipped with large font size
图 2:文本未被裁剪。
  • 我们已将 wear.compose.foundation 更新为 wear.compose.material 的 API 依赖项(I72004b/285404743)。
  • 我们修复了 SwipeToDismissBox 中的一个错误。背景和内容键现在传递给 remember 块,以便在内容或背景更改时创建新的修饰符。(Ib876cb/280392104)。
  • 我们已更新 TimeText,以便在选择 12 或 24 小时制格式时使用区域设置。(If4a3d)。
  • 我们修复了 SwipeToDismissBox contentScrimColor 默认参数中的不一致问题。(I2d70f)。
  • 我们改进了 SwipeToReveal 中的运动处理。(I28fb7)。

已知问题

  • 支持用户配置的字体大小是辅助功能要求。我们知道,当以较大的字体大小显示时,多行 Chip 可能会导致文本剪裁,因此我们将在 1.3 alpha 版本的早期更新 Chip 以在这些情况下进行高度调整。

版本 1.2

版本 1.2.1

2023 年 10 月 18 日

androidx.wear.compose:compose-*:1.2.1 已发布。版本 1.2.1 包含这些提交。

错误修复

  • 修复了 PositionIndicator 错误消失时的错误。(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 包含这些提交。

错误修复

  • 我们已完成 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)。

错误修复

  • 我们更新了 Wear Compose 基础库和材质库的基线配置文件(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 用于单个可扩展项目,例如 Text,其中包含多行。使用 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,它将 PlatformTextStyle.includeFontPadding 属性的默认值设置为 true(这是当前设置)。这将使我们能够在 1.3 alpha 版本的早期与 Compose 库同步关闭默认字体填充 - 有关更多信息,请参阅 1.2.0-alpha10

新功能

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

错误修复

  • 改进了 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)。

错误修复

  • 修复了在抛掷后 ScalingLazyColumn 在 Wear API 33 上卡住的问题(Ic4599)。
  • 我们对 PositionIndicator 进行了一些性能改进,以减少卡顿。(I35e92)。
  • 我们修复了 Chip 和 CompactChip 中的一个错误,其中语义角色不再设置为 Role.Button。(I93f91b/277326264)。

已知问题

  • 我们发现了一个 Android Studio 中的错误,该错误会导致使用 @WearPreviewDevices 和 @WearPreviewFontScales 注释时渲染预览失败 - 很快就会发布修复程序。请注意,其他 Wear 预览注释在 Android Studio Giraffe 2022.3.1 及更高版本中按预期工作。

  • 在版本 1.2.0-alpha07 中,我们在 Wear Compose 中添加了 DefaultTextStyle,将现有的 PlatformTextStyle.includeFontPadding 值保持为 true - 有关背景信息,请参阅 修复 Compose 中的字体填充。为了与 Android 平台保持一致,我们将在 1.3 alpha 版本的早期将 DefaultTextStyle 更改为关闭字体填充。这将解决某些情况下使用大型字体大小的文本剪裁问题,并且也可能影响屏幕布局,因此需要更新屏幕截图测试。例如,使用大型字体大小,我们在此处看到文本剪裁

Text clipped with large font size
图 1:文本被剪裁。
  • 关闭字体填充后,它将不再存在。

Text not clipped with large font size
图 2:文本未被裁剪。

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

版本 1.2.0-alpha09

2023 年 4 月 19 日

androidx.wear.compose:compose-*:1.2.0-alpha09 已发布。版本 1.2.0-alpha09 包含这些提交。

API 更改

  • angularSizeDp 添加到 CurvedModifier api 以设置以 DP 为单位的角宽度(I89a52)。

错误修复

  • 我们修复了时间选择器演示中的辅助功能问题(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)。

错误修复

  • 改进了可扩展示例以显示更多可能性。修改了 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 中添加)从 Material 移至 Foundation,因为它们与 MaterialTheme 没有有意义的关联。(Ib0525)

错误修复

  • 我们修复了在使用 PickerGroup 的屏幕中发生的崩溃,方法是确保 PickerGroup 在没有 Picker 处于焦点状态时正确处理焦点。还在我们的 Picker 演示中添加了对 RSB 滚动的支持。(If8c19)
  • 我们改进了对话框过渡 - 引入过渡现在更加流畅,以匹配退出过渡。(Ib5af9)
  • 我们在 Wear Compose 中添加了一个 DefaultTextStyle,它将 PlatformTextStyle.includeFontPadding 属性的默认值设置为 true(这是当前设置)。这将使我们能够在将来与 Compose 库同步关闭默认字体填充 - 请参阅 (修复 Compose 中的字体填充) 以获取背景信息。(I2aee8)
  • 通过 activity-compose 撤销了 UpsideDownCake 预览依赖项,该依赖项阻止了将应用发布到 Google Play 商店。(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)或更高版本。请注意,如果这些注释不适合您的目的,仍然可以使用 Preview,并且通过参数支持进一步的自定义。(I397ff)
  • 我们已将 HierarchicalFocusCoordinator 标记为实验性,因为它被认为是移动到核心 Compose 库的候选对象,因为它具有广泛的适用性。(I3a768)

错误修复

  • 修复了 HierarchicalFocusCoordinator 上的一个错误,当为 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)
  • 我们已将 animateScrollToOption 添加到 Picker API 中,以便支持以编程方式动画到特定的 Picker 选项(I6fe67)

错误修复

  • 我们已更新了 HorizontalPageIndicator 以支持从右到左的布局。(Ia4359)
  • 添加了 HorizontalPageIndicator 中从右到左布局的屏幕截图测试(I6fbb8)
  • SwipeDismissableNavHostTest 添加了更多使用 TestNavHostController 的测试(I61d54)

版本 1.2.0-alpha04

2023 年 2 月 8 日

androidx.wear.compose:compose-*:1.2.0-alpha04 已发布。 版本 1.2.0-alpha04 包含这些提交。

新功能

  • PickerGroup 用于使用焦点 API 将多个 Picker 组合在一起处理。它处理不同 Picker 之间的焦点,根据参数启用 Picker 的自动居中,并允许开发人员在处理组中的事件时更改不同 Picker 之间的焦点。在 Talkback 模式下,PickerGroup 通过将焦点从组中移动到选定的 Picker 来处理 Talkback 焦点。(I60840)

API 更改

  • 我们已向 Stepper 添加了一个重载,其中包含一个额外的 enableRangeSemantics 参数,以便于禁用默认范围语义(Ia61d4)

错误修复

  • 允许 ScalingLazyColumn 嵌套在水平滚动的页面中(Iec3f8b/266555016)
  • 改进了 Stepper 的 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 ScalingLazyColumnPositionIndicator api 已弃用 - 请更新到 Foundation.Lazy ScalingLazyColumn。此外,anchorType 字段已添加到 ScalingLazyListLayoutInfo 中。(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)

错误修复

  • 我们修复了一个导致 ScalingLazyListState.centerItemIndex 中出现不必要重新合成的错误,方法是确保它仅在值实际更改时才推送更新(Ia9f38)
  • 我们改进了 SwipeToDismissBox 的性能(I3933b)
  • 在 Wear Compose Foundation 中添加了 ScalingLazyColumn 的基准测试(Ie00f9)
  • 我们已更新 Material 中的一些内部 ScalingLazyColumn 类方法,以使用 Foundation.Lazy 中的等效方法(I38aab)
  • 我们修复了 Picker 测试中的一些问题,并添加了更多测试以检查带偏移量的滚动(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 UI 测试现在会在执行帧以达到空闲状态(例如,通过 waitForIdle)时为每个帧运行布局传递。这可能会影响断言布局动画单个帧的测试。 (I8ea08b/222093277)
  • 为 Wear Text 添加了参数 minLines,以实现与 BasicText 一致的行为 (I24874)
  • CompactChipTapTargetPadding 已公开,以便出现在文档中 (If1e70b/234119038)

错误修复

  • 禁用 wear.compose 包的多平台构建 (Iad3d7)
  • 修复 scrollToOption 的 kdocs (I6f9a0)
  • PlaceholderState.rememberPlaceholderState() 已更新为使用 rememberUpdatedState,以便如果 onContentReady lambda 发生更改,状态将更新。 (I02635b/260343754)
  • 我们通过利用添加到 Modifier.graphicsLayer 的新合成策略,修复了在 Picker 组件中看到的文本抖动问题。 (I99302)
  • 我们修复了一个导致 DatePicker 演示闪烁的错误 (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)

错误修复

  • 我们将 OutlinedButton/OutlinedCompactButton 的默认边框宽度从 2.dp 更改为 1.dp,以匹配最终的 UX 规范。 (Icf84d)
  • 为了减少添加到空 ScalingLazyColumn 的第一个项目看起来滚动到位的效果,我们在内容为空时添加了估计的 autoCentering topPadding。此更改通过假设高度为 0.dp 的初始项目来计算所需的顶部填充量。对于 ScalingLazyListAnchorType.ItemStart,这将计算正确的顶部填充量,对于 ScalingLazyListAnchorType.ItemCenter,此计算将不正确,因为需要项目的的高度才能正确调整内容大小,从而导致基于项目实际高度的小幅滚动到位效果。(I239a4)
  • 我们更新了应用于 SwipeToDismiss 动画的背景遮罩,以匹配 Wear 平台。 (I9003e)
  • 我们修复了 PositionIndicator 对大小为 0 的列表项的 LazyListStateScalingLazyListState 的处理,以避免出现除以零错误。(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 包含以下提交。

错误修复

  • 我们修复了一个导致 ScalingLazyListState.centerItemIndex 中发生不必要的重新组合的错误,方法是确保它仅在值实际更改时才推送更新 (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 包含以下提交。

错误修复

  • 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)

错误修复

  • 我们将 OutlinedButton/OutlinedCompactButton 的默认边框宽度从 2.dp 更改为 1.dp,以匹配最终的 UX 规范。 (Icf84d)
  • 为了减少添加到空 ScalingLazyColumn 的第一个项目看起来滚动到位的效果,我们在内容为空时添加了估计的 autoCentering topPadding。此更改通过假设高度为 0.dp 的初始项目来计算所需的顶部填充量。对于 ScalingLazyListAnchorType.ItemStart,这将计算正确的顶部填充量,对于 ScalingLazyListAnchorType.ItemCenter,此计算将不正确,因为需要项目的的高度才能正确调整内容大小,从而导致基于项目实际高度的小幅滚动到位效果。(I239a4)
  • 我们更新了应用于 SwipeToDismiss 动画的背景遮罩,以匹配 Wear 平台。(I9003e)
  • 我们修复了 PositionIndicator 对大小为 0 的列表项的 LazyListStateScalingLazyListState 的处理,以避免出现除以零错误。(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 包含以下提交。

错误修复

  • 我们为 PlaceholdersScrollAwayRadioButtonSwitchCheckboxOutlinedButtonOutlinedCompactButtonOutlinedChipOutlinedCompactChip 添加了基线配置文件规则。 (I8249c)
  • 我们修复了 Modifier.scrollAway 中的一个错误,以便如果指定的 itemIndex 无效(例如,如果该项目索引超出范围),则 TimeText 现在仍将显示。 (I2137a)
  • 我们更新了 SwipeToDismissBox 动画以匹配平台实现。在初始挤压动画之后,屏幕现在在解除操作被触发后向右滑动。 (I41d34)
  • 作为优化,我们更新了 Modifier.scrollAway 以仅在测量块内读取 scrollState,以避免在每次重新测量后重新组合修饰符。 (I4c6f1)
  • 我们添加了文档和示例到占位符,以显示在应用于相同可组合项时 Modifier.placeholderModifier.placeholderShimmer 的正确顺序。 (Ie96f4b/256583229)
  • 我们将 OutlinedCompactChip/OutlinedChip 的默认边框宽度从 2.dp 更改为 1.dp,以匹配最终的 UX 规范。 (Ib3d8e)
  • 我们修复了 rememberPickerState 中的一个错误,其中未保存更新的输入,因此可组合项在输入更改后未更新。 (I49ff6b/255323197)
  • 我们对占位符进行了一些 UI 更新:1) 将闪烁渐变更改为屏幕大小的 1.5 倍,2) 添加闪烁进度的缓动(三次贝塞尔曲线),以及 3) 加快擦除动画速度(250 毫秒)。 (Id29c1)
  • 我们修复了占位符擦除效果中的一个 UI 错误,其中 Chip 和 Card 背景由于未考虑组件在屏幕上的位置而略微过早地擦除。 (I2c7cb)
  • 我们更新了占位符背景绘制,以在可能的情况下合并颜色而不是分层,以降低不同裁剪图层的 Alpha 混合导致基础颜色在占位符背景边缘渗出的风险。 (I2ea26)
  • 我们更正了 ScalingLazyListState.centerItemIndex/centerItemOffset 的计算,以便如果两个项目位于视口中心线的两侧,则最靠近的那个将被视为 centerItem。 (I30709b/254257769)
  • 我们更正了 ScalingLazyListState.layoutInfo.visibleItemsInfo 中的一个错误,该错误在 ScalingLazyColumn 初始化期间报告了不正确的偏移量。现在,将返回一个空列表,直到所有列表项都可见并具有正确的偏移量。检查 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 选项,并接受可为空的字符串(在之前的提交中,需要传递一个从选项到内容描述的映射,但只使用了选定的选项)。
    • Picker 项现在始终居中对齐,修复了将 gradientRatio 设置为零会更改对齐方式的错误。
    • Chip/ToggleChip - 我们已更新了 Chip/ToggleChip 的默认渐变,使其符合最新的 UX 规范。 ChipDefaults.gradientBackgroundChipColors 已更新为从主色调的 50% 开始,而不是 32.5%。
    • Chip/ToggleChip - 添加了用于修改 Chip 形状的重载函数。
    • Chip/Button/ToggleButton - 为 Chip 和 Button 添加了一种新的轮廓样式,以及新的 OutlinedChipOutlinedButton 可组合函数,它们提供了一个带有细边框的透明 Chip/Button
    • Card - 更新了 Card 的默认渐变,使其符合最新的 UX 规范。 CardDefaults.cardBackgroundPainter 已更新为从主色调的 30% 开始,到 onSurfaceVariant 的 20% 结束(之前是从 onSurfaceVariant 的 20% 到 10%)。 ToggleChip.toggleChipColors 从表面 75% 到主色调 32.5% 的线性渐变更改为表面 0% 到主色调 50% 的线性渐变。
    • Button/ToggleButton - 添加了用于修改按钮形状的属性。
    • Theme - 更新了 MaterialTheme 中的一些默认颜色,以提高可访问性,因为原始颜色对比度不足,导致用户难以区分芯片/卡片/按钮背景与主题背景颜色。
    • InlineSlider/Stepper - 添加了按钮角色,以便 Talkback 可以识别它们为按钮。
    • Scaffold - PositionIndicator 现在的位置和大小已调整,使其仅占用所需的空间。例如,如果向其添加语义信息,Talkback 现在就可以获取屏幕上 PositionIndicator 的正确边界。
    • CurvedText/TimeText - 添加了 Modifier.scrollAway,它根据滚动状态垂直滚动项目进出视图(带有与 ColumnLazyColumnScalingLazyColumn 一起使用的重载函数)。 ScrollAway 通常用于在用户开始向上滚动项目列表时将 TimeText 滚动到视图之外。
    • CurvedText/TimeText - 在 CurvedTextStyle 中添加了对 fontFamilyfontStylefontSynthesis 的支持,可在 curvedTextbasicCurvedText 上使用。
    • CurvedText/TimeText - 在 CurvedTextStyle 的构造函数和复制方法中添加了 fontWeight
    • ToggleControls - 添加了动画 CheckboxSwitchRadioButton 切换控件,用于与 ToggleChipSplitToggleChip 一起使用。这些控件可以替代 ToggleChipDefaults 提供的静态图标(switchIconcheckboxIconradioIcon)。
    • Placeholder - 添加了实验性占位符支持。它具有三种不同的视觉效果,旨在协同工作。
    • 首先,占位符背景画刷效果用于容器(如 Chip 和 Card),以便在等待内容加载时覆盖普通背景。
    • 其次,一个修饰符(Modifier.placeholder())用于在正在加载的内容顶部绘制一个体育场形状的占位符小部件。
    • 第三,一个修饰符渐变/闪烁效果(Modifier.placeholderShimmer()),它绘制在其他效果的顶部,以指示用户我们正在等待数据加载。
      • 所有这些效果都旨在协调一致,并以协调的方式闪烁和擦除。
  • 核心 Compose 依赖项已从 1.2 更新到 1.3。

API 更改

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

错误修复

  • curveTextbasicCurvedText 现在可以与 Talkback 正确配合使用(它们具有与之关联的正确大小和位置(但为空)的 compose-ui 节点,使用文本作为内容描述)(I7af7cb/210721259)。
  • 修复了当 PickerState.repeatedItems = false 时,Picker 的错误,在 Picker 的内部 ScalingLazyColumn 上显式设置 autoCentering 参数,以确保可以将第零个选项滚动到视图的中心。(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 包含这些提交。

新功能

  • 我们添加了实验性占位符支持。它具有三种不同的视觉效果,旨在协同工作。首先,占位符背景画刷效果用于容器(如 Chip 和 Card),以便在等待内容加载时覆盖普通背景。其次,一个修饰符(Modifier.placeholder())用于在正在加载的内容顶部绘制一个体育场形状的占位符小部件。第三,一个修饰符渐变/闪烁效果(Modifier.placeholderShimmer()),它绘制在其他效果的顶部,以指示用户我们正在等待数据加载。所有这些效果都旨在协调一致,并以协调的方式闪烁和擦除。(I3c339)。

API 更改

  • 添加了对 fontWeightfontFamilyfontStylefontSynthesis 的支持,在 CurvedTextStyle 中,可在 curvedTextbasicCurvedText 上使用。这些参数可用于指定在弯曲文本上使用的字体和样式。(Iaa1a8)、(I72759)。
  • Modifier.scrollAway 的偏移参数更新为 Dp,以保持与 Modifier.offset 的一致性(之前以像素为单位)。此外,将其重构为 LayoutModifier 以提高效率。(I9f94b)。
  • 作为新的切换控件 API 的一部分,我们已将 RadioButtoncircleColor 重命名为 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)。

错误修复

  • 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 包含这些提交。

错误修复

  • 已将按钮角色添加到 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)

错误修复

  • 修复了ScalingLazyColumn中的逻辑错误,该错误可能导致列表项数量较少(通常正好为 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)

错误修复

  • 我们修正了ToggleChip的切换控件区域的大小,因为它与 UX 规范不符。UX 规范要求标签与 24x24.dp 切换控件图标区域之间有 4.dp 的间距,总宽度为 28.dp。但是,实现错误地给出了 36x24.dp 的切换控件区域。这导致占用 8.dp 的可用文本标签区域。注意:此错误修复为文本标签提供了额外的空间,因此可以(正面)影响溢出文本的文本布局。如果您有包含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 for Wear OS 对核心 Compose 库的依赖项从 1.2.0 切换到 1.3.0-alpha0X。

API 更改

  • 添加了用于修改芯片形状的重载方法(I02e87)

错误修复

  • 我们在显示/隐藏对话框时为渐晕的可见性添加了动画效果,以与现有的缩放动画保持一致。(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 选项,并接受可为空的字符串(之前,需要传递从选项到内容说明的映射,但仅使用选定的选项)。(Ife6a7)
  • 我们对 Picker 进行了可访问性改进,以便可以使用屏幕阅读器导航多选器屏幕,并且内容说明是可访问的(I64edb)

错误修复

  • 我们更新了 Wear Compose 库打包的基本配置文件规则(I9c694)
  • 我们修正了从右到左模式下芯片渐变的方向。以前是从左上到右下,现在是从右上到左下。(Ic2e77)
  • 我们更新了Chip/ToggleChip/Card的默认渐变,使其符合最新的 UX 规范。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设置为零会导致对齐方式更改的 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 包含这些提交。

错误修复

  • 我们已更正了 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 包含这些提交。

错误修复

  • 修复了ScalingLazyColumn中的逻辑错误,该错误可能导致列表项数量较少(通常正好为 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)。

错误修复

  • 我们在显示/隐藏对话框时为渐晕的可见性添加了动画效果,以与现有的缩放动画保持一致。(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 包含这些提交。

错误修复

  • 我们修正了从右到左 (RTL) 模式下卡片渐变的方向。以前是从左上到右下,现在是从右上到左下。(Ic2e77)
  • 我们更新了Chip/ToggleChip/Card的默认渐变,使其符合最新的 UX 规范。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)

错误修复

  • 我们删除了对列表标题上fillMaxWidth()的显式调用,因为它不需要,并且如果ScalinglazyColumn混合了ListHeader()Chip()组件,则可能会导致问题,因为宽度会随着ListHeader项的滚动进出视图而增长/缩小。(I37144b/235074035)
  • 我们修复了ScalingLazyColumn中的一个 bug,该 bug 可能导致列表项在滚动之前无法正确绘制,前提是第 0 个列表项足够大(包括填充)(Ic6159b/234328517)
  • 当项目到达屏幕边缘时,我们在ScalingLazyColumn的缓动函数中做了一些小的调整,以匹配 UX 规范更新。旧值CubicBezierEasing(0.25f, 0.00f, 0.75f, 1.00f) -> 新值CubicBezierEasing(0.3f, 0f, 0.7f, 1f)。要保留旧的行为,您可以覆盖ScalingLazyColumnscalingParamsIe375c)

  • 为了确保 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,这将影响您的布局,因为 CompactChips 现在将在上方和下方具有额外的填充。请调整和测试您的布局,或查看错误注释以获取使用现有行为的解决方法。(b/234332135

错误修复

  • 新的演示,用于动画化在 TimeText 上添加或删除开始文本。(I16d75
  • HorizontalPageIndicator.PagesState 添加测试(I64ed0
  • 更新 TimeText 以更接近 UX 规范(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 包含这些提交。

新功能

  • 即使在只读模式下,Picker 现在始终响应滚动事件。这避免了用户在滚动之前必须先点击选择 Picker 的需要。在只读模式下,除当前选定的选项之外的其他选项会被 gradientColor 中的垫片遮挡。(I72925
  • 我们已更改了 Chip/ToggleChip/CompactChip/SplitToggleChip 的 UX 行为,使其默认不再执行 fillMaxWidth。相反,它们将增长以适应其内容。要保留之前的行为,只需添加 modifier = Modifier.fillMaxWidth()I60a2cb/232206371

错误修复

  • 采用 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 包含这些提交。

Wear OS 1.0 中的 Compose 内容

Wear OS 版 Compose 的 1.0.0-beta01 具有重要的里程碑意义,因为该库的功能已完整,并且 API 已锁定。

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

  • Material 主题 - 用作移动版 Compose MaterialTheme 的替代品,提供用于在可穿戴设备上构建组件的颜色、形状和排版,这些组件开箱即用地实现了 Wear Material Design UX 指南。
  • ButtonCompactButtonToggleButton - Button 提供一个插槽来放置图标、图像或简短文本(最多 3 个字符)。圆形,并提供默认、大或小按钮的推荐尺寸。CompactButton 提供一个插槽来放置任何内容(图标、图像或文本),并且是圆形的,背景尺寸超小。CompactButton 在背景周围具有可选的透明填充,从而增加了可点击区域。ToggleButton 是一个按钮,它提供一个插槽来放置任何内容(简短文本、图标或图像),并具有开/关(选中/未选中)状态,以及用于显示是否选中的颜色和不同的图标。
  • 卡片 - 用于显示有关应用程序的信息,例如通知。灵活的设计适用于不同的用例,AppCardTitleCard 提供不同的布局,并支持图像作为卡片内容或背景。
  • 芯片 - 类似于按钮的体育场形状组件,但具有更大的区域和多个插槽,以允许标签、辅助标签和图标。具有不同的尺寸,并支持图像作为背景。
  • ToggleChips 和 SplitToggleChips - 带有选中/未选中状态的芯片,以及 ToggleControl 插槽以显示图标(例如开关或单选按钮)以显示组件的选中状态。此外,SplitToggleChip 具有两个可点击区域,一个可点击,一个可切换。
  • CircularProgressIndicator - Wear Material 进度指示器,有两个变体。第一个表示正在进行的任务的完成比例,并支持圆形轨道在起始和结束角度之间的间隙。第二个指示未指定等待时间的未确定进度。
  • curvedText - 构成用于描述 CurvedLayouts 的 DSL 的一部分,以及 curvedRowcurvedColumn,以便在圆形设备周围布置组件。有关 CurvedLayoutCurvedModifier 的更多详细信息,请参阅下面的 Wear Component Foundation(这在非弯曲世界中的修饰符中起着类似的作用,并允许配置布局、填充、渐变等的各个方面)。
  • 对话框、警报和确认 - 对话框显示一个全屏对话框,叠加在任何其他内容之上,并支持滑动以关闭。它带有一个插槽,该插槽应为有见地的 Wear Material 对话框内容,例如警报或确认。警报是有见地的对话框内容,带有图标、标题和消息的插槽。它有多个重载,可以并排显示两个否定和肯定按钮,或者为一个或多个垂直堆叠的芯片提供插槽。确认是有见地的对话框内容,用于在给定持续时间内显示消息。它有一个图标或图像插槽(可以是动画)。
  • HorizontalPageIndicator - 以适合可穿戴设备外形的方式显示水平页面位置。设计为占用整个屏幕,并在圆形设备上显示弯曲的指示器。可与 Accompanist 页面查看器一起使用。
  • 图标 - Icon 的 Wear 实现,它从 Wear Material 主题获取颜色和 Alpha。对于可点击的图标,请参阅按钮或芯片。
  • Picker - 显示一个可滚动的项目列表,从中进行选择。默认情况下,项目将在两个方向上“无限”重复。可以以只读模式显示以隐藏未选定的选项。
  • PositionIndicator - 以适合可穿戴设备外形的方式显示滚动位置或其他位置指示。设计为占用整个屏幕,并在圆形设备上显示弯曲的指示器。
  • 脚手架 - 实现基本的 Wear Material Design 可视布局结构。此组件提供了一个 API 来组合多个 Wear Material 组件(例如 TimeTextPositionIndicatorVignette),构建屏幕,确保为其提供正确的布局策略,并收集必要的数据,以便这些组件能够正确地协同工作。
  • ScalingLazyColumn - 一个滚动缩放/鱼眼列表组件,它是 Wear Material Design 语言的关键部分。为内容项提供缩放和透明度效果。ScalingLazyColumn 旨在能够处理潜在的大量内容项,这些内容项仅在需要时才被具体化和组合。
  • 滑块 - 允许用户从一系列值中进行选择。选择范围显示为一个条形,可以选择显示分隔符。
  • 步进器 - 一个全屏组件,允许用户使用屏幕顶部和底部的增加/减少按钮从一系列值中进行选择,并在中间提供一个用于文本或芯片的插槽。
  • SwipeToDismissBox - 处理滑动以关闭手势。它带有一个用于背景(仅在滑动手势期间显示)和前景内容的插槽。可以通过使用 SwipeDismissableNavHost 与 androidx 导航库组合使用(请参阅下面的 Wear Compose Navigation 库)。
  • 文本 - Compose Material Text 组件的 Wear 实现,从 Wear Material 主题获取颜色和 Alpha。
  • TimeText - 用于在屏幕顶部显示时间和应用程序状态的组件。通过在圆形屏幕上使用弯曲文本来适应屏幕形状。
  • Vignette - 用于脚手架的屏幕处理,当使用可滚动内容时,会模糊屏幕的顶部和底部。

  • 以下组件也包含在 Wear Compose Foundation 中

  • CurvedLayout - Wear Foundation CurvedLayout 是一个布局组合,它将子项放置在圆弧中,并根据需要旋转它们。这类似于弯曲成环形段的 Row 布局。请注意,CurvedLayout 的内容不是可组合的 lambda - 而是 DSL(特定于域的语言)。CurvedLayout 的 DSL 中的所有元素都支持一个可选的修饰符参数,该参数由 CurvedModifier 创建。

  • basicCurvedText - CurvedLayout DSL 中的一个元素,basicCurvedText 允许开发者轻松编写沿着圆形曲线(通常是圆形屏幕边缘)的曲线文本。 basicCurvedText 只能在 CurvedLayout 内创建以确保最佳体验,例如能够指定位置,并使用 CurvedModifiers。请注意,在大多数情况下,应使用 curvedText,因为它使用了 Material 主题。

  • curvedComposable - 包装普通的可组合内容,以便可以与 CurvedLayout 一起使用。如果 curvedComposable 内部有多个元素,则它们将彼此叠加绘制(如 Box)。要在曲线沿着放置多个可组合项,请使用 curvedComposable 包装每个可组合项。

  • curvedRow 和 curvedColumn - 与 Row 和 Column 类似,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 Cards 类似的 API。当参数设置为 false 时,卡片将不可点击。(Idc48db/228869805

错误修复

  • 当达到下/上限时,Stepper 现在会禁用减少和增加按钮(并将 ContentAlpha.disabled 应用于 iconColor)(I4be9f
  • 当使用渐变绘制时,我们在 Picker 内容周围添加了 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.angularGradientBackgroundI8f392
  • 允许指定曲线文本溢出模式(剪辑/省略号/可见)。(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 中将 iconTintColortoggleControlTintColor 重命名为 iconColortoggleControlColor(Chip/ToggleChip/Dialog/Slider/Stepper/...),因为颜色应用于图标/toggleControl 插槽。(Ied238
  • PageIndicatorStyle 枚举重写为值类(I2dc72
  • 我们已将 RowScope/ColumnScope/BoxScope 添加到我们的一些 Composables 中的某些插槽中,以向开发者指示布局的假设。这将允许开发者在某些插槽内容上使用其他修饰符,并避免需要提供额外的布局元素。此外,我们对 AppCard/TitleCard 颜色进行了一些小的更新,以便 timeColorappColor 默认设置为 contentColor,如果需要,这些属性仍然可以单独覆盖。(I26b59
  • 使 SwipeToDismissBoxState.Companion 对象私有(I39e84
  • 修复 InlineSliderStepper 的参数顺序。一个简单的更改以遵循 api 指南(I11fec
  • 我们已删除 SwipeToDismissBoxState 的 Saver 对象,因为它未使用。(Ifb54e
  • 我们已更新 CompactChip 以使其与最新的 UX 规范保持一致。填充已减少到水平 = 12.dp 和垂直 = 0.dp。标签的字体已从按钮更改为标题 1。当同时存在图标和标签时,建议的图标大小为 20x20,而仅图标的紧凑型芯片的图标大小为 24x24。对于仅图标的使用案例,我们还确保了图标居中对齐。(Iea2be
  • 我们已向 ScalingLazyListLayoutInfo 添加了许多新字段,以使开发者能够了解已应用的 contentPaddingautoCenteringPadding 的数量。在计算抛掷/滚动时,这些对开发者很有用(I7577b
  • 我们已为 Dialog 实现了进/出转换。已添加 showDialog 参数,并且 Dialog 现在控制其自身的可见性(这使 Dialog 能够在显示/隐藏 Dialog 时运行介绍和结束动画)。请注意,当用户通过滑动以取消离开对话框时,不会执行结束动画。我们还在最近添加的 SwipeToDismissBox 重载中添加了状态的默认值。(I682a0
  • 为了更好地支持 i18n 和 a11y,我们已更改 ToggleChipSplitToggleChip,以便它们不再具有 toggleControl 插槽的默认值。我们还更改了 ToggleChipDefaults,以便以下方法现在返回 ImageVector 而不是 Icon(请注意,由于它们不再返回 @Composables,因此已更改为以小写字母开头),SwitchIcon()->switchIcon()CheckboxIcon->checkboxIcon()RadioIcon()->radioIcon() - 这允许并鼓励开发者创建自己的 Icon() 可组合项并设置适当的 contentDescription。(I5bb5b
  • 我们已向 SwipeDismissableNavHost 添加了 SwipeDismissableNavHostState 参数。这支持在用作导航目的地的屏幕上使用边缘滑动,因为 SwipeToDismissBoxState 现在可以提升并用于初始化 SwipeDismissableNavHostState 和需要边缘滑动的屏幕上的 Modifier.edgeSwipeToDismiss。(I819f5b/228336555

错误修复

  • 确保在需要时更新曲线布局。(Ie8bfab/229079150
  • 修复 https://issuetracker.google.com/issues/226648931 的错误(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 插槽。通过将 PageIndicator 直接添加到 Scaffold 中,我们可以确保它在圆形设备上正确显示。(Ia6042
  • 移除 InlineSlider 和 Stepper 参数中的默认图标。这将有助于开发人员更加关注本地化和可访问性要求。默认图标的使用已在演示和示例中展示。(I7e6fd
  • 在 TimeText 中将 Trailing 和 Leading 参数名称替换为 Start 和 End(Iaac32
  • 我们添加了一个带有 onDismissed 参数的 SwipeToDismissBox 重载,以支持在滑动手势完成时触发导航事件的常见用法。(I50353b/226565726
  • TimeText 使用中删除 ExperimentalWearMaterialApi 注解(Ide520
  • 我们已将 ScalingLazyList/Column 范围和信息接口标记为密封,因为它们不打算供外部开发人员实现,这将允许我们在将来添加新成员而不会导致二进制中断更改。(I7d99f
  • 我们已向 Picker 添加了一个新的 flingBehaviour 属性,并添加了一个 PickerDefaults.flingBehaviour() 方法来启用抛掷行为的配置,例如添加 RSB 支持。 PickerState 现在实现了 ScrollableState 接口。(Ib89c7

错误修复

  • 更新 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(基础的弯曲文本)和 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
  • 我们已向 Picker 添加了一种只读模式,用于具有多个 Picker 的屏幕,其中一次只有一个 Picker 可编辑。当 Picker 为只读时,它会显示当前选定的选项,以及(如果已提供)标签。(I879de
  • SwipeToDismissBoxState 已重构,以将 ExperimentalWearMaterialApi 的范围限制在 Modifier.swipeableSwipeableState,它们现在在内部使用。 SwipeToDismissBoxState 现在具有 currentValuetargetValueisAnimationRunningsnapTo 成员以支持常见用例 - 如果您需要提供任何其他属性,请告知我们。还修复了在滑动偏移量在锚点的舍入误差范围内的 SwipeableState 的行为。(I58302

错误修复

  • 简化并修复了代码,以检测 ScalingLazyColumn 的内容是否可以滚动(用于确定是否显示滚动条)(I7bce0
  • 修复了 Position Indicator 在与多个状态一起使用并在它们之间切换时出现的错误(I320b5
  • 我们已更新 Wear OS 的默认 Compose 主题排版/字体,以匹配我们最新的 UX 指南。值得注意的是,display1 (40.sp) 和 display2 (34.sp) 现在比它们以前的值更小,并且对行高和行间距进行了其他一些小更新。(Ie3077
  • 我们已向 SwipeToDismissBox 添加了阻力,以便只有在滑动以关闭时才会发生运动,而在相反方向则根本不会发生。(Ifdfb9
  • 我们已更改 CircularProgressIndicator 函数的一些默认参数值,以使其符合 Wear Material Design UX 指南。对于 Spinner/不确定版本,已更新大小 (40->24.dp)、指示器颜色 (primary->onBackground)、轨道颜色透明度 (30%->10%) 和笔画宽度 (4->3dp)。对于进度/确定版本,已更新轨道颜色透明度 (30%->10%)。(I659cc
  • 我们已根据最新的 Wear Material Design UX 规范更新了 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 在选中或未选中时现在具有纯色背景,切换控件的颜色是组件是否选中的主要指示。我们添加了一个新的 ToggleDefaults.splitToggleChipColors() 来支持新的配色方案。我们还简化了 toggleChipColors() 方法,移除了 splitBackgroundOverlayColor。(I7e66e
  • 我们已将 unadjustedSize 添加到 ScalingLazyListItemInfo 中,因为由于浮点数数学精度,使用缩放大小和缩放因子计算原始项目大小是不安全的。(I54657b/221079441
  • 添加 HorizontalPageIndicator。它表示页面总数和选定的页面。可能是线性的或弯曲的,具体取决于设备的形状。它还支持自定义指示器形状,该形状定义每个指示器的视觉表示方式。(Iac898
  • 我们已更新 PickerState,以便可以更新 numberOfOptions。这支持诸如 DatePicker 之类的用例,其中月份中的天数会根据所选月份而变化。PickerState 的构造函数参数相应地更改为 initialNumberOfOptions。(Iad066
  • 当是滚动条且无法滚动时,隐藏 PositionIndicator。(Id0a7f
  • 为了与 Scaffold 保持一致,我们的全屏对话框组件现在显示 PositionIndicatorVignette。我们现在也使用 ScalingLazyColumn 而不是 Column,这意味着对话框内容现在位于 ScalingLazyListScope 中(并且通常需要用 item { /* 内容 */ } 括起来)。对话框相应地支持 verticalArrangement 参数。(Idea13
  • 我们已将 ToggleChipSplitToggleChip 的 toggleIcon 属性名称更改为 toggleControl,以更好地与 Material Design 对齐,从而帮助设计师和开发人员浏览 API。(If5921b/220129803
  • 我们已向 Wear Material 主题排版中添加了一个新的条目 caption3。Caption3 是一种用于超长格式写作(如法律文本)的小字体。(I74b13b/220128356

错误修复

  • 当我们到达那里时停止捕捉动画。(Idb69d
  • 动画化 PositionIndicator 中的更改。(I94cb9
  • 根据 UI/UX 反馈,我们已更改 ScalingLazyColumn 的自动居中,使其仅提供足够的空间来确保索引为 ScalingLazyListState.initialCenterItemIndex 或更高的项目能够完全滚动到视口的中心。这允许开发人员在最初位于中心的项目之前放置一个或两个不可滚动的项目到中间。这意味着自动居中的 ScalingLazyColumn 将无法滚动到 initialCenterItemIndex/initialCenterItemScrollOffset 以上。(I22ee2
  • 我们添加了一个日期选择器的演示,并修复了 PickerState 中的一个错误,该错误导致 initiallySelectedOption 直到 Picker 显示后才应用。(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 小时时钟时间的 Picker 演示。(Ie5552

API 更改

  • 修复了方形设备上 TimeText 自定义字体和样式的问题(Iea76e
  • ScalingLazyListLayoutInfo 现在具有 reverseLayoutviewportSize 和方向属性,与 LazyListLayoutInfo 的属性匹配(I4f258b/217917020
  • ScalingLazyColumn 现在具有一个 userScrollEnabled 属性,与 LazyList 的属性匹配(I164d0b/217912513
  • Picker 现在默认在顶部和底部具有渐变(Iab92a

错误修复

  • 我们修改了 ScalingLazyColumn,使其不再贪婪地填充其父容器中的所有空间。相反,它将根据其内容的大小获取其大小。这使其与 LazyColumn 的行为保持一致。如果要恢复旧的行为,则将 Modifier.fillMaxWidth()/width()/widthIn() 传递给 ScalingLazyColumnI51bf8
  • 我们改进了 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 更改

  • Picker 现在具有 flingBehavior 参数,默认值使它们在滚动/轻扫时吸附到最近的选项。(I09000
  • InlineSlider 和 Stepper 的其他整数 API(I1b5d6

错误修复

  • 我们已将 ScalingLazyListState 的默认 initialCenterItemIndex 从 0 更改为 1。这意味着,除非在状态构建时使用 ScalingLazyListState.rememberScalingLazyListState(initialCenterItemIndex = 覆盖。) 然后,第二个列表项(索引 == 1)将在初始化时放置在视口的中心,第一个(索引 == 0)项将放置在其前面。这允许开箱即用地获得更好的默认视觉效果,因为大部分视口将填充列表项。(I0c623b/217344252
  • 我们已将 ScalingLazyColumn 提供的默认 extraPadding(用于确保有足够的列表项可供绘制,即使我们正在缩小其中一些项的大小)从 10% 减少到 5%。这将避免组合可能不会出现在视口中的额外列表项。如果正在使用非标准 scalingParams(例如更极端的缩放),则开发人员可以使用 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
  • 我们已从 Compose for WearOS Material 主题颜色中删除了 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 视口的中心而不是视口开头进行定位。

    一个新的属性 anchorType: ScalingLazyListAnchorType = ScalingLazyListAnchorType.ItemCenter 已添加到 ScalingLazyList 以控制视口中心线应与中心 (ScalingLazyListAnchorType.ItemCenter) 还是边缘 (ScalingLazyListAnchorType.ItemStart) 对齐。

    因此,ScalingLazyListItemInfo.offsetScalingLazyListItemInfo.adjustedOffset 已更改,现在将反映项目相对于列表项位置和列表的 anchorType 的偏移量。例如,对于 anchorTypeItemCenter 且列表项的中心位于视口中心线的 ScalingLazyColumn,偏移量将为 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 设为内部(由 InlineSliderStepper 在内部引用)。(I927ec

错误修复

  • 修复了 SwipeDismissableNavHost 在达到 CREATED 生命周期状态之前将目标添加到 Compose 层次结构的问题,从而导致 IllegalStateException。此修复是更新对 navigation-compose 的依赖项到 2.4.0-beta02 及更高版本的先决条件。(I40a2bb/207328687

  • 添加了一个 Drawables 枚举类,用于在 Wear Compose 库中获取可绘制资源,从而不再需要反射。这修复了一个当 minifyEnabled=trueshrinkResources=true 时库可绘制资源被删除的错误。(Ib2a98

  • 为 Wear Compose 中的 Stepper 添加了测试。(I2d03a

  • 为 Wear Compose 导航中的 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 包含这些提交。

新功能

  • 我们添加了一个 Stepper 组件,允许用户从一系列值中进行选择。Stepper 是一个全屏控件,顶部和底部有增加和减少按钮,中间有一个插槽(预期包含 Chip 或 Text)。如果需要,可以自定义按钮图标。(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 包含这些提交。

新功能

  • 我们添加了一个 Picker 组件,允许用户从滚动列表中选择一个项目。默认情况下,可选择项目的列表在两个方向上“无限”重复,以给人一种从侧面看到的旋转圆柱体的印象。将在以后的版本中添加两个功能:滑动/轻扫后捕捉到一个值;向 PickerState 添加一个函数以设置/滚动到当前值。(I6461b

API 更改

  • 添加了一个 ScalingLazyItemScope 和一些新的修饰符 fillParentMaxSize/fillParentMaxWidth/fillParentMaxHeight,以允许列表项根据父容器的大小进行调整大小。可以将项目设置为填充父级的所有或一部分大小。这公开了 LazyRow/Column 中已经可用的功能。(I4612f
  • 添加了对 ScalingLazyColumn 的支持,以允许项目具有键。还添加了便利方法,允许从数组和列表中添加项目。(Ic1f89

错误修复

  • 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 Compose 代码实验室!WearOS 代码实验室

API 更改

  • Macrobenchmark 的 minSdkVersion 现在为 23。(If2655

错误修复

  • 在 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

错误修复

  • 添加了保留状态的 SwipeToDismissBox 示例。(Ibaffe
  • 从 CurvedText、TimeText 和 SwipeToDismissBox 的 KDocs 中添加了指向 developer.android.com 指南的链接。(I399d4
  • 如果当前没有目标,SwipeDismissableNavHost 现在会抛出异常(表示 NavGraph 不是使用 wear.compose.navigation.composable 实用程序函数构建的)。(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

错误修复

  • 从按钮、卡片、芯片、主题、位置指示器和缩放延迟列组件的 KDocs 中添加了指向 developer.android.com 指南的链接。(I22428
  • 修复了 WearOS SwipeToDismissBox 有时无法处理滑动的问题。(I9387e
  • 添加了按钮、紧凑按钮、芯片、紧凑芯片、AppCard、TitleCard、切换按钮、切换芯片、拆分切换芯片的示例。(Iddc15
  • 为卡片、芯片、切换芯片、TimeText 和缩放延迟列添加了微基准性能测试。(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

错误修复

  • 修复了较小设备上 CurvedRow 测试的不稳定性。(If7941
  • 修复了 CurvedRow 内容更新时可能出现的闪烁问题,并确保重新测量了曲线行。(Ie4e06
  • ChipDefaults.gradientBackgroundChipColors() 已根据 UX 规范更改进行了更新。渐变现在从 MaterialTheme.colors.primary(alpha 为 32.5%)开始,到 MaterialTheme.colors.surface(alpha 为 0%)结束,背景为 MaterialTheme.colors.surface(alpha 为 75%)。(Id1548

  • 我们已更新了 ToggleChips 在选中状态下的颜色,以匹配最新的 Wear Material Design UX Spec 指南。选中状态下的 ToggleChips 现在具有从 MaterialTheme.color.surface 透明度 0%(左上角)到 MaterialTheme.color.primary 透明度 32%(右下角)的渐变背景,并在 MaterialTheme.color.surface 透明度 75% 的背景之上。这使得 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,这是一个顶层应用程序可组合项,用于提供处理位置指示器(如滚动或音量)位置的结构,屏幕顶部用于显示时间和应用程序状态的区域,还支持 Vignette 模糊屏幕顶部和底部边缘以用于可滚动内容。Scaffold 的主要区域是放置应用程序内容的地方。(I5e0bf
  • 添加了 Wear Compose 的 TimeText 实现(I5654c

Wear Compose 导航库

  • 我们添加了 Wear Compose 导航库的第一个版本,该库提供了 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 以通过设置背景和内容的关键标识来支持 rememberSaveableI746fd
  • 我们添加了一个 PositionIndicator 适配器,可以处理 LazyListState(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

错误修复

  • 更新了 CompactChip 文档,以描述如果既未提供图标也未提供标签会发生什么。(I4ba88
  • 我们对 Wear 卡片组件进行了一些调整。(I6b3d0
    1. TitleCard 中标题和正文之间的间距从 8.dp 减少到 2.dp。
    2. TitleCard 标题字体从正文更改为标题 3。
    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

错误修复

  • 我们减少了 Chip 和 ToggleChip 中图标和文本之间的间距,以使其符合 UX Spec 的更新。(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 时计算缩放方式的一个错误。(I27c07

API 更改

  • 添加 CurvedTextStyle 类以指定弯曲文本样式选项。类似于 TextStyle,但现在仅支持颜色、字体大小和背景。将来会添加更多样式选项。(I96ac3
  • 我们已向 ScalingLazyColumnState 类添加了 ScalingLazyColumnItemInfo 和 ScalingLazyColumnLayoutInfo 接口,以使开发人员能够在应用缩放后了解 ScalingLazyColumn 中项目的实际位置和大小。我们还修复了在将“顶部”内容填充应用于 ScalingLazyColumn 时计算缩放方式的一个错误。(I27c07
  • SwipeDismissTarget 枚举(SwipeToDismissBox API 的一部分)添加了 @ExperimentalWearMaterialApi。(I48b5e

错误修复

  • 添加了 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

错误修复

  • 我们根据 UX Spec 更新更改了 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 以弧形方式布局可组合项(I29941
  • 添加了一种可在应用程序中使用的新卡片类型(TitleCard),还支持将图像作为卡片的背景以强调其内容(I53b0f

API 更改

  • 添加了对 CurvedRow 的径向对齐的支持(类似于行中的垂直对齐)(Id9de5
  • 添加了一个新的类 CurvedRow 以弧形方式布局可组合项(I29941
  • 添加了一种可在应用程序中使用的新卡片类型(TitleCard),还支持将图像作为卡片的背景以强调其内容(I53b0f
  • 添加了切换图标(复选框、开关和单选按钮)到 ToggleChipDefaults,以方便开发人员配置 ToggleChip 和 SplitToggleChips(I7b639
  • Chip 的开始和结束内容填充已更新,因此无论 Chip 是否存在图标,它始终为 14.dp(之前如果存在图标则为 12.dp,否则为 14.dp)(I34c86

错误修复

  • 添加了 CurvedRow 的测试(I93cdb
  • 将 Wear Compose 依赖项绑定到 Compose 1.0.0-rc01。(Ie6bc9
  • 更改了卡片和芯片中背景图像绘制的处理方式,以便对图像进行裁剪而不是拉伸,以保持图像比例。(I29b41
  • 为按钮和切换按钮添加了更多演示和集成测试。(5e27ed2
  • 添加了更多 Chip 测试以涵盖 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 是一个基于 Kotlin 和 Compose 的库,支持 Wear Material Design,这是针对 Wear OS 可穿戴设备的 Material Design 扩展。此首个 Alpha 版本包含以下功能的早期实现

  • 材质主题 - 在此库中使用的组件之间一致地配置颜色、字体和形状。
  • 芯片、紧凑型芯片 - 芯片呈体育场形状,并提供各种变体,可容纳图标、标签和辅助标签内容。
  • - 切换芯片、拆分切换芯片 - 一种特殊的芯片类型,包含用于双状态切换图标(例如单选按钮或复选框)的插槽。此外,SplitToggleChip 还有两个可点击区域,一个可点击,一个可切换。
  • 按钮、紧凑型按钮 - 按钮呈圆形,带有一个内容插槽,用于图标或最少文本(最多 3 个字符)。
  • 切换按钮 - 一个用于打开或关闭操作的按钮,带有一个用于图标或最少文本(最多 3 个字符)的插槽。
  • 卡片、应用卡片 - 矩形形状,带有圆角,提供内容插槽,例如应用图标、时间、标题和正文。

未来的版本将扩展 Widget 集,添加对 Wear Material Design 选择器、滑块、列表、页面指示器、对话框、滚动 rsb 指示器、Toast 等的支持。

此外,还将提供对其他可穿戴设备特定功能的支持,例如弯曲布局和文本,以及脚手架,以便开发人员轻松构建可穿戴设备应用/叠加层。

Wear Compose Material 采用与 Compose Material 相同的原则设计,但针对可穿戴设备。在为可穿戴设备构建应用时,应使用 Wear Compose Material 库代替 Compose Material 库。

这两个“Material”库应视为互斥的,不应在同一应用中混合使用。如果开发人员发现自己在依赖项中包含了 Compose Material 库,则表明 a) Wear Compose Material 库中缺少组件,请告知我们您需要什么,或者 b) 正在使用我们不建议在可穿戴设备上使用的组件。