Wear Compose Material 3

  
通过提供支持不同设备尺寸和导航手势的功能,使用 Material 3 Expressive 设计系统为 Wear OS 设备编写 Jetpack Compose 应用。
最新更新 稳定版 发布候选版 Beta 版 Alpha 版
2025 年 6 月 4 日 - - 1.5.0-beta03 -

声明依赖项

要添加对 Wear 的依赖项,您必须将 Google Maven 仓库添加到您的项目中。请阅读Google 的 Maven 仓库以获取更多信息。

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

Groovy

dependencies {
    implementation "androidx.wear.compose:compose-foundation:1.5.0-beta03"

    // For Wear Material Design UX guidelines and specifications
    implementation "androidx.wear.compose:compose-material3:1.5.0-beta03"

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

    // For Wear preview annotations
    implementation("androidx.wear.compose:compose-ui-tooling:1.5.0-beta03")
    
    // NOTE: DO NOT INCLUDE dependencies on androidx.wear.compose:compose-material
    // or androidx.compose.material:material.
    // androidx.wear.compose:compose-material3 is designed as a replacement,
    // not an addition, to both of these other libraries.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material3, please raise a bug to let us know.
}

Kotlin

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

    // For Wear Material Design UX guidelines and specifications
    implementation("androidx.wear.compose:compose-material3:1.5.0-beta03")

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

    // NOTE: DO NOT INCLUDE dependencies on androidx.wear.compose:compose-material
    // or androidx.compose.material:material.
    // androidx.wear.compose:compose-material3 is designed as a replacement,
    // not an addition, to both of these other libraries.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material3, please raise a bug to let us know.
}

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

反馈

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

创建新问题

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

Wear Compose Material3 1.5 版

1.5.0-beta03 版

2025 年 6 月 4 日

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

API 变更

  • OpenOnPhoneDialog 现在在 TalkBack 下仅播报消息文本,并跳过图标语义。OpenOnPhoneDialogDefaults 已更新,移除了 icon() 中的 iconContentDescriptioncontentDescription 参数。此外,ConfirmationDialogDefaults 现在在 SuccessIconFailureIcon 可组合项上具有修饰符参数。(Id2ae2)

错误修复

  • 更改了应用 SurfaceTransformation 参数效果的顺序。之前,应用于 Wear Material3 组件的转换按以下顺序完成:背景绘制器、容器转换、内容转换。现在,前两个已颠倒,并且我们在它们之间应用任何传入的修饰符,因此它受容器转换的影响。这修复了在使用转换参数的 TLC 中,将占位符闪烁效果与元素一起使用的情况。(I786cf)
  • 添加了 RevealState.Saver,用于在 Activity 或进程重新创建时恢复 SwipeToReveal 的状态。rememberRevealState 函数现在默认使用此 Saver。(Ie0ecb)
  • SwipeToReveal 的主次操作按钮应默认为 ButtonDefault.Height(修复了这些按钮填充较高按钮最大高度的错误)。(Ibfba1)
  • 更改了 SwipeToReveal,使其在执行向右滑动手势时重置上次交互的组件。(Ia8450)
  • 更改了 SwipeToReveal,使其在滑动的结束位置位于显示和已显示锚点之间且更接近显示锚点时,停留在 Revealing 状态。(If4458)
  • 现在,ButtonGroup 的内容在 RTL 布局中正确反转 (Ib378d)
  • AnimatedText 现在支持 RTL 文本方向 (I4533c)
  • 移除底部项后,TransformingLazyColumn 现在能正确调整项目大小 (Idacab)
  • TransformingLazyColumn 现在仅执行一次测量,通过减少帧时间来提高性能。(I501a1)

1.5.0-beta02 版

2025 年 5 月 20 日

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

错误修复

  • 更新了 foundation、material 和 material3 库的基准配置文件。(I53f06)
  • 修复了 TransformingLazyColumn 中的一个错误,该错误导致在移除底部项目时项目大小会发生变化。(Idacab)
  • 修复了 TransformingLazyColumn 的一个错误,即列表停留在列表顶部或底部。(I49d00)
  • TalkBack 下的 OpenOnPhoneDialog 应该播报弯曲文本,而不是图标内容描述。(I4efe8)
  • 修复了 SwipeToReveal 中的一个错误,当 hasPartiallyRevealedState 设置为 false 时,它会报告 RevealState.currentValue 中错误的锚点。(I9c7cf)
  • SwipeToReveal 撤消按钮现在默认使用 ButtonDefaults.Height。(I1f6c8)
  • 通过消除对 Canvas 的 scrim 绘制,提高了 BasicSwipeToDismissBox 的性能。(I68f2c)
  • 修复了 Slider 中的无障碍功能错误,即播报的百分比与更新后的值不匹配 (I91146)
  • 修复了 placeholderShimmer 实现中的错误。(Iee39b
  • 通过将 ScrollProgress 计算优化 30%,提高了 TransformingLazyColumn 的性能。(I4c4cb)

1.5.0-beta01 版

2025 年 5 月 7 日

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

Wear OS 版 Compose 的 1.5.0-beta01 版发布表明此库版本功能已完整且 API 已锁定(实验性除外)。

Wear Compose 1.5.0-beta01 包含 Wear Compose Material3 库,该库支持名为 Material 3 Expressive 的新 UI 设计系统。建议从 Material 升级到 Material3,以在应用中采用新的视觉设计,并从新组件中受益,具体如下:

  • MaterialTheme 用于更新和扩展的配色方案、排版和形状,为您的设计带来深度和多样性。
  • 动态颜色主题,可自动为您的应用生成配色方案以匹配表盘颜色。
  • 新组件默认自动适应更大的屏幕尺寸。
  • 形状变形 - IconButtonTextButtonIconToggleButtonTextToggleButton 等圆形按钮组件支持在按下或选中时进行动画处理的变体。
  • EdgeButton - 一种新的贴边按钮,具有专为屏幕底部设计的特殊形状。
  • 骨架 - 引入 AppScaffoldScreenScaffold 来布局屏幕结构并协调 ScrollIndicatorTimeText 动画。
  • 按钮 - 支持多种体育场形状的按钮,具有灵活的单槽容器和用于带图标和标签按钮的多槽变体。需要切换按钮时提供 CheckboxButtonSwitchButton,而 RadioButton 是可用的选择按钮(还提供切换和选择按钮的“拆分”变体)。
  • ButtonGroup - 实现了一排富有表现力的按钮组,它们在触摸时会进行形状变形。
  • AlertDialog 变体支持确定/取消按钮或 EdgeButton
  • ConfirmationDialog 可用于显示带超时的消息,支持成功、失败和“在手机上打开”变体的特殊动画。
  • 选择器 - 支持 TimePickerDatePicker 变体,以及用于构建您自己的选择器屏幕的 PickerPickerGroup 组件。
  • 进度指示器 - 支持圆形和线性进度指示器(CircularProgressIndicator 具有分段和不确定变体)。
  • 卡片 - 提供多种卡片变体,包括 TitleCard,它为带有标题、时间、副标题或内容槽的卡片提供特定的布局。TitleCard 还可以具有图像背景,以增强卡片中信息的含义。
  • 分页器 - HorizontalPagerScaffoldVerticalPagerScaffoldAnimatedPage 组件协调 HorizontalPageIndicatorVerticalPagerIndicator 动画。HorizontalPagerVerticalPager 在 Wear Compose Foundation 库中发布。
  • 占位符 - 在组件上绘制骨架形状,适用于没有临时内容的情况。
  • 滑块和步进器 - 滑块和步进器都允许用户从一系列值中进行选择。滑块更紧凑且可以分段,而步进器是通常与 StepperLevelIndicator 配对的全屏组件。
  • SwipeToReveal - 用于在可组合项从右向左滑动时为其添加额外操作。

此外,Wear Compose Foundation 1.5.0-beta01 包含以下新组件:

  • TransformingLazyColumn - 一个支持缩放和变形动画的惰性垂直滚动列表。
  • 分层焦点组 - 用于注释应用程序中的可组合项,以跟踪组合的活动部分并协调焦点。
  • 分页器 - HorizontalPagerVerticalPager 组件,基于 Compose Foundation 组件构建,并针对 Wear 进行了特定增强,以提高性能并符合 Wear OS 指南。

API 变更

  • 更新了分层焦点 API - 将 Modifier.hierarchicalFocus 重命名为 Modifier.hierarchicalFocusGroup 并移除了回调参数;移除了带 FocusRequester 参数的 Modifier.hierarchicalFocusRequester 重载;创建了一个新的 CompositionLocalLocalScreenIsActive,以便组件可以通知和检查哪个屏幕是活动屏幕。(I5ff7c)。
  • 已弃用 Wear Compose Foundation 中的 SwipeToReveal,转而使用 Wear Compose Material 和 Wear Compose Material3 中的 SwipeToReveal API。请将 Wear Foundation SwipeToReveal 导入替换为 Wear Compose Material/Wear Compose Material3 导入以继续使用这些 API。(Ia147d)。
  • Wear Compose Material3 SwipeToReveal 对 Foundation 的依赖已移至 material3 包,例如 RevealValueRevealDirectionRevealActionTypeRevealStaterememberRevealState。开发者应将其对这些类和函数的导入从 androidx.wear.compose.foundation 更改为 androidx.wear.compose.material3。(I640e6)。
  • Wear Compose Material3 SwipeToReveal API 更新如下:为 SwipeToReveal 可组合项添加了 primaryActiononFullSwipesecondaryActionundoPrimaryActionundoSecondaryActionhasPartiallyRevealedState 参数;从 RevealState 中移除了自定义 positionalThresholdanimationSpec 的能力;从 RevealState 中移除了 lastActionTyperevealThresholdwidth;将 RevealState 构造函数更改为接受 RevealDirection 而不是锚点;移除了 createRevealAnchorsanchorsbidirectionalAnchors 函数;SwipeToRevealScope 函数 primaryActionsecondaryActionundoPrimaryActionundoSecondaryAction 重命名为 PrimaryActionButtonSecondaryActionButtonUndoActionButton 并变为可组合函数;将 RevealActionType 标记为内部。(I885d0)。
  • SwipeToReveal API 进一步更新如下:将 onFullSwipe 重命名为 onSwipePrimaryAction;将 SwipeToRevealNonAnchoredSample 重命名以指示 hasPartiallyRevealedState 参数的使用;移除了 actionButtonHeight,因为默认值是 Button 的默认高度,更大的高度可以使用修饰符设置;从 SwipeToRevealDefaults 中移除了 SmallActionButtonHeight;将 RevealValueRevealDirection 构造函数中的 value 参数设为私有。(I465ce)。

错误修复

  • 修复了 ScreenScaffoldEdgeButton 处理,以便在移除 TransformingLazyColumn 项后,EdgeButton 会动画到位。(I6d366)。
  • 将 Wear Compose 对 Compose 库的依赖更新到 1.8.0 版本。(I2ef3f)。
  • 更新了不确定 CircularProgressIndicator 的运动,使其不再暂时回退。(Ieddb1)。
  • 修复了 SwipeDismissableNavHost 的一个错误 - 滑动返回后焦点未正确切换,导致旋转输入失败(这适用于 API 36+,它使用预测性返回)。(Ieddb1)。
  • 修改了分层焦点 API 的文档。(Idf2ff)。
  • 更新了 Button 和 Card 的文档,说明 containerPainterdisabledContainerPainter 如何覆盖 containerColordisabledContainerColor (I4a453)。
  • 撤销了上一个发布中对 TimeText 的更改,该更改将 BroadcastReceiver 移至工作线程,因为这会导致在导航期间管理自身线程的应用出现问题。(I34d02)。
  • 更新了 Picker 示例,以删除不必要的 remember 调用,转而使用 Picker 中的 rememberUpdatedState 来记住最新的 contentDescription lambda 函数。(Icb5b1)。
  • 更新了 TimePickerDatePicker 中的文本样式,以便字体更改不再导致截断。(I26194)。
  • ListHeaderListSubHeader 现在默认文本对齐方式分别为居中对齐和开始对齐。(I78339)。
  • 更新了 Foundation 和 Material Swipe to Reveal 示例和演示,以宣布自定义无障碍操作(自定义操作必须作为语义添加到内容上,而不是 SwipeToReveal 可组合项本身)。(Ie92a3)。
  • 根据其大小更新了 EdgeButton 内容上设置的默认 MaxLines - 现在超小型为 1,小型和中型为 2,大型为 3。(Ie35f6)。
  • 简化了 LocalReduceMotion,以便观察者只注册一次,从而提高性能。(Ib1979)。
  • 减少了 ScrollIndicator 中的重绘次数,以提高性能。(Ia7a67)。
  • 修复了 TransformingLazyColumn 中的一个错误,即当 EdgeButton 达到其完整高度时,列表中顶部可见项未正确缩放。(I30580)。

Wear Compose Material3 1.0 版

1.0.0-alpha37 版

2025 年 4 月 23 日

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

API 变更

  • 从公共 API 表面移除了 scrollTransform。如果需要获取相同的功能,请使用 transformedHeightgraphicsLayer 修饰符的组合。(Ie181d)
  • ImageButtonImageCard 可组合项分别替换为 ButtonCard/TitleCard 重载。将 imageButtonColors 重命名为 buttonWithContainerPainterColors,将 imageCardColors 重命名为 cardWithContainerPainterColors。添加了公共的 ButtonDefaults.scrimBrushCardDefaults.scrimBrush。将按钮的 imageBackgroundGradientStartColorimageBackgroundGradientEndColor 重命名为 scrimGradientStartColorscrimGradientEndColor。将 CardDefaults.ImageContentPadding 重命名为 CardDefaults.CardWithContainerPainterContentPadding (I7b8b6)
  • PickerPickerGroup 现在将 contentDescription 作为 lambda 表达式接受,以避免不必要的重组。(I002dd)

错误修复

  • 修复了当宽度不等于高度时,不确定 CircularProgressIndicator 在动画期间会晃动的问题。(I76bfe)
  • 修复了边缘按钮布局在无效尺寸下的问题。现在当高度为 NaN 时,阻止更新边缘按钮的布局。(I32b93)
  • 增加了 OpenOnPhoneDialog 中的最大扫描角度,以便默认的“检查您的手机”文本在使用最大字体大小时不会被剪裁。(I90af9)

1.0.0-alpha36 版

2025 年 4 月 9 日

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

API 变更

  • ButtonDefaults.imageBackgroundButtonColors 替换为 ImageButtonButtonDefaults.imageButtonColorsButtonDefaults.containerPainterButtonDefaults.disabledContainerPainter。Card 也进行了类似更改。画家已从 ButtonColorsCardColors 中移除。(I8c6a1)
  • 更新了占位符以简化 API。现在我们提供了两个 Modifier,Modifier.placeholderShimmer 用于在组件级别应用闪烁效果,以及 Modifier.placeholder 用于在未加载内容上方应用遮罩。(Iaee7a)

错误修复

  • 将过滚动集成到 ScrollIndicator 中。(Icfb7f)
  • 解决了启动 material3 对话框时背景空白和对话框缺失的问题。(Ice597)
  • 修复了 FadingExpandingLabel 中文本跨多行时的问题。(I04eb7)
  • 更新了按钮上主要和次要标签之间的填充。(I99b7b)
  • ArcLarge 已从 20sp 减小到 18sp,并且 ArcLargeArcSmall 上的字母间距已更新。ConfirmationDialog/OpenOnPhoneDialog 现在使用默认的 ArcLarge,而不是将其覆盖为 18sp。(Id39a8)

依赖项更新

  • 此库现在面向 Kotlin 2.0 语言级别,并需要 KGP 2.0.0 或更高版本。(Idb6b5)

1.0.0-alpha35 版

2025 年 3 月 26 日

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

API 变更

  • 提供图标时,AlertDialog 顶部填充现在默认减少 - 这能最大程度地利用可用屏幕空间。(Ief06c)
  • PagerScaffoldDefaults.FadeOutAnimation 已重命名为 PagerScaffoldDefaults.FadeOutAnimationSpecAnimatedPage 上的 page 参数已重命名为 pageIndex。(I701f2)
  • 更新了 TransformingLazyColumnSurfaceTransformation 命名 - applyTransformation 拆分为 applyContainerTransformationapplyContentTransformation,并将 createBackgroundPainter 重命名为 createContainerPainterTransformationSpecResponsiveTransformationSpec 也进行了进一步的命名更新。(I1c534)
  • AppScaffoldbackgroundColor 已重命名为 containerColor。(I4e63f)

错误修复

  • 修复了 FadingExpandingLabel 中文本未始终正确展开的问题。(I0e773)
  • ArcLarge 已从 20sp 减小到 18sp,并且 ArcLargeArcSmall 上的字母间距已更新。ConfirmationDialog/OpenOnPhoneDialog 现在使用默认的 ArcLarge,而不是将其覆盖为 18sp。(Id39a8)
  • 更新了 DatePickerTimePicker 的标题动画,使淡出和淡入动画作为一个 Spring 动画运行。(I68963)
  • 通过避免在 AnimatedPage 可组合项中读取 currentPageOffsetFraction,优化了 PagerScaffold。(I433ef)
  • 所有类型比例尺默认已更新为使用比例数字,因为这被视为最常见用例,而默认使用表格数字会导致某些数字对之间有过多间距。TimePickerDatePicker 继续对表格数字应用 FontFeatureSetting=tnum。(I88929)
  • 纠正了 TimePickerDatePicker 的初始 RSB 输入焦点。(I1c773)
  • OpenOnPhoneDialog 上的默认文本更新为“检查您的手机”。(I00a3f)
  • ArcLargeArcMedium 的权重从 600 更新到 599,以解决权重 600 被视为粗体的问题。(I2a51d)
  • 更新了 SwipeToReveal 内容和操作按钮之间的填充,以及操作按钮图标和文本之间的填充。(Ic46cb)

1.0.0-alpha34 版

2025 年 3 月 12 日

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

API 变更

  • PagerScaffold 不再发出 Pager 组件 - 相反,这必须通过 content 可组合项提供。AnimatedPagesnapWithSpringFlingBehaviour 现在是公共的,可以与 Wear Foundation Pager 一起使用,以实现以前的 M3 PagerScaffold 行为。(请参阅更新的示例)。(Ia4724)
  • 更新了 PagerState,移除了 Compose Foundation PagerState 作为基类,并添加了 currentPagecurrentPageOffsetFractionpageCount 属性。更新了 GestureInclusion 接口,将方法重命名为 ignoreGestureStart。(I4ae07)
  • LevelIndicator 扫描角度参数现在使用 FloatRange(0, 360) 进行注释。(I7e636)
  • 我们添加了 CurvedModifier.clearAndSetSemantics,以提供关闭曲线语义的方法。CurvedText 继续将内容描述默认为文本,但 timeTextCurvedTexttimeTextSeparator 现在不再宣布其内容。(I4b568)
  • AppScaffold 添加了背景和默认内容颜色参数。(I56652)
  • HorizontalPager 对滑动手势的默认处理已重命名为 PagerDefaults.gestureInclusion。现在默认行为是仅忽略从第一页左边缘开始的滑动手势,并且仅在 Talkback 关闭时。在其他情况下,默认行为是滑动手势不会被分页器忽略,因此它们将不可用于滑动解除处理程序。(Iee486)
  • 为按钮、卡片和列表标题组件添加了 SurfaceTransformation 参数,以便它们在根据项目位置改变外观的容器(如 TransformingLazyColumn)中使用时可以应用不同的背景和内容转换。(Iabe3f)
  • 我们已将 Wear Compose Material3 API 中的“public const val”属性更新为“public val”,以避免值被内联。(Ib0f32)
  • SwipeToReveal 添加了边缘滑动区域支持。Foundation SwipeToReveal 的默认行为现在是当手势从边缘开始时不允许滑动。Material3 SwipeToReveal 的默认行为现在是当 SwipeDirection 设置为单向时,不允许手势从边缘开始滑动。(I32ef0)
  • 添加了 FadingExpandingLabel 可组合项,它允许文本逐行动画淡入。(Ic60fa)
  • TransformingLazyColumn 现在默认使用空的 contentPadding,而不是将第一个和最后一个项目居中。(I77ab7)
  • 从 Wear Compose Material3 库中移除了 SwipeToRevealrememberRevealState。(I8c0e0)

错误修复

  • Wear Compose 库已更新到 Kotlin 2.0 编译器。(I2de79)
  • Material3 已移除对非圆形 ScrollIndicatorPageIndicator 的支持。方形屏幕支持也不再是 Wear OS 要求的一部分,请参阅入门指南了解更多信息。(I9a852)
  • ConfirmationDialogDefaultsOpenOnPhoneDialogDefaults 中使用的 CurvedTextStyle 已更新为使用 ArcLarge 排版,大小为 18sp,字母间距为 1.8sp。(Ic9ced)
  • CardListHeaderRadioButtonCheckboxButtonSwitchButton 默认不再限制其内容的高度。如有必要,请使用 Modifier.height(IntrinsicSize.Min) 恢复之前的行为。(I80bb8)
  • 我们已将默认的 TimeTextScrollIndicator 颜色更新为包含更多灰色调,因为直接使用 OnBackground(白色)在与屏幕上的其他内容(如标题)竞争时,会带来过多的视觉比重。(I8b36f)
  • 我们已将骨架组件中 TimeTextScrollIndicator 动画的超时时间缩短至 2 秒。(I52021)
  • 我们已更新 Dialog 的动画,使其背景比例与滑动解除同步。(I925a9)
  • 添加了使用 edgeSwipeToDismiss 修饰符的 M3 SwipeToReveal 演示。(I02b07)
  • 我们为 TalkBack 下的 DatePickerTimePicker 添加了标题,以便用户知道要滚动以设置日期/时间。(Id738d)
  • AnimatedText 现在遵循减少动画设置。(Ib6578)
  • 使用 AppScaffold 显示 Dialog 内容的优化已得到改进,允许多个对话框叠加显示。(I1209c)

1.0.0-alpha33 版

2025 年 2 月 26 日

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

API 变更

  • 我们已从 SwipeToRevealScopeprimaryActionsecondaryAction 中移除了 label 参数。自定义操作语义应由开发者直接添加到 SwipeToReveal 组件的内容中。(Ia67f3)
  • 我们已从 IconToggleButtonDefaultsTextToggleButtonDefaults 中的尺寸、文本样式和颜色函数中移除了“Button”前缀。(I5471d)
  • 我们已移除实验性的 LocalMinimumInteractiveComponentEnforcement。(I4ad8a)
  • 我们已将 PickerGroupScope DSL 替换为一个可组合项。因此,我们从 PickerGroupScope 中移除了 pickerGroupItem 方法,而是添加了应用于将 Picker 添加到 PickerGroup@Composable PickerGroupItem。我们还将 PickerGroup 的“content”参数类型更新为 @Composable PickerGroupScope.() -> Unit。(Ic6aec)
  • 我们为分数类型的值添加了 LevelIndicator 重载,并为包含范围参数(适用于 Stepper 组件)的重载添加了 Stepper 前缀。(If4234)
  • 我们已将 TransformingLazyColumnTransformationSpec 添加到 API 中,它允许定义项目在通过 TLC 滚动时发生的精确转换。(I21856)
  • 我们已更新 IconButtonShapesIconToggleButtonShapesTextButtonShapesTextToggleButtonShapes,使其与 compose/material3 类保持一致。(I5a081)
  • 我们已向 ScalingLazyColumnTransformingLazyColumnScreenScaffold 添加了 overscrollEffect 参数。(I0cee8)
  • 我们已将 rememberRevealState 中的 swipeDirection 参数重命名为 revealDirection。(I7472f)
  • Wear Pager 现在有自己的 PagerScope,而不是使用 Compose PagerScope。(I9195b)
  • 我们已移除 LinearProgressIndicatorContent 可组合项,请直接使用 LinearProgressIndicator,以便默认情况下对值的更改进行动画处理。(I2c4ad)
  • 我们已移除 CircularProgressIndicatorStatic 可组合项,并添加了一个具有相同功能的公共 DrawScope 函数 drawCircularProgressIndicator。请直接使用 CircularProgressIndicator,以便默认情况下对更改进行动画处理,但如果需要自定义动画,请从 drawCircularProgressIndicator 构建您自己的可组合项。(Ie762f)
  • 我们已重新排列 DrawScope.drawCircularProgressIndicator 中的参数,以将 targetProgress 参数上移。(I8ab92)
  • OpenOnPhoneDialog API 已更新,以提高清晰度并与其他 Dialog 保持一致。show 参数已重命名为 visible,并且 curvedText 现在由调用者提供,而不是具有默认值。(Idec2d)
  • 我们已将 openOnPhoneCurvedText 重命名为 openOnPhoneDialogCurvedText。(I65bdd)
  • 我们已添加 ScrollIndicatorColors 用于为 ScrollIndicator 提供自定义颜色。(I9eb8c)
  • 允许配置用于在 TimeText 后面绘制背景的颜色。(I9f5d9)
  • 更新了 ArcLargeArcMediumArcSmall 排版为 CurvedTextStyle。(Iffc41)
  • 我们已移除 ScreenScaffoldDefaults.contentPaddingWithEdgeButton。(Ia923e)
  • 我们已将 errorDim 添加到 ColorScheme 中,用于高优先级错误或紧急操作,例如安全警报、失败的对话框覆盖或停止按钮。(I70998)

错误修复

  • 我们已将 wear.compose.material3 固定到 androidx.core.core 的 1.15.0 版本。(I132e9)
  • 我们已通过使用 AppScaffold 将对话框层叠在其他屏幕内容之上,从而提高了 Dialog 的性能。(I1b9a4)
  • 减小了 EdgeButton 的内部垂直填充。(I1a5bb)
  • 我们已为滑块按钮添加了 Button 语义。(I80cc6)

1.0.0-alpha32 版

2025 年 1 月 29 日

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

API 变更

  • CurvedTextStyle 中,我们已将字母间距拆分为顺时针字母间距和逆时针字母间距。这是必需的,因为顺时针字母从基线扇出,而逆时针字母扇入(因此需要更大的字母间距)。(I4b848)
  • 我们已更新 IconButtonShapesIconToggleButtonShapesTextButtonShapesTextToggleButtonShapes,以提高 Material3 库之间的一致性。此更改还引入了形状缓存以减少分配次数。(I049fc)
  • 我们已从 IconToggleButtonTextToggleButtonvariantAnimatedShape 方法中移除了 pressedShapeCornerSizeFraction 参数。(I58a65)
  • 我们正在引入对曲线文本渲染(包括 TimeText)的改进,这些改进与非圆形屏幕不兼容。非圆形屏幕支持也不再是 Wear OS 要求的一部分,请参阅入门指南了解更多信息。(I1cc1c)
  • 我们已更新 ButtonGroupButtonGroupScope,用 Modifier.weightModifier.minWidthModifier.enlargeOnPress 替换了基于 DSL 的 ButtonGroupItem。(I16c3c)
  • ButtonGroup API 中,我们已更新了新的基于修饰符的 ButtonGroupScopeenlargeOnPress 现在称为 animateWidth,并且它接受 InteractionSource 而不是 MutableInteractionSource,因为它不需要进行变异。我们还添加了公共常量 ButtonGroupDefaults.DefaultMinWidth,这是 ButtonGroup 中按钮的默认最小宽度。(Ie27ec)
  • 我们已将 ListHeaderDefaults.contentColor 更新为以小写字母开头,因为它是一个可组合属性。(I125a5)
  • 我们已向 SliderDefaults.DecreaseIconSliderDefaults.IncreaseIcon 添加了一个内容描述参数,并附带了合适的默认值。(I2e1a7)
  • 我们已将 PickerPickerGroup 中的 spacing 参数重命名为 verticalSpacing。(Ib75cc)
  • 我们已移除 ConfirmationDialogDefaults.successTextfailureText,因为 ConfirmationDialog 的调用者应提供更具上下文的字符串。还将 confirmationCurvedText 重命名为 confirmationDialogCurvedText。最后,将 Dialog 的 show 参数重命名为 visible,以与其他最近的对话框更新保持一致。(I10074)
  • IconButtondisabledImageOpacity 重命名为 DisabledImageOpacity。(I5f94a)

错误修复

  • 我们已修复 EdgeButton 动画中的一个错误,以便在每一帧中使用正确的尺寸。(Id3b58)
  • 修复了 animateContentSize 不适用于 Button 的问题。(Ib18a0)
  • 我们已将大标题类型比例更改为 18dp 的字体大小。(Ic9d52)
  • 我们已更新 AlertDialog 间距和图标大小。(Iac28c)
  • 修复了大屏幕断点(225dp 及以上的屏幕为大屏幕)中的不一致。(I36474)
  • 修复了按钮定位中的一个小错误。(I952c2)

1.0.0-alpha31 版

2025 年 1 月 15 日

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

API 变更

  • 我们已将所有 Wear Compose 库更新为“显式 API”模式。(Iebf9f)
  • 我们已更新 ScreenScaffoldEdgeButton API,以便在包含 EdgeButton 的屏幕上更容易指定内容填充。在新 API 中,EdgeButtonsize 只传递给 EdgeButton,而 ScreenScaffold 接受 edgeButtonSpacing 参数,用于 EdgeButton 和列表内容之间的间距。(I424fd)
  • DatePicker 中,我们已将参数 minDate 重命名为 maxDate,将 minValidDate 重命名为 maxValidDate。在 DatePickerColors 中,我们已将参数 selectedPickerContentColor 重命名为 activePickerContentColor,将 unselectedPickerContentColor 重命名为 inactivePickerContentColor (Iba17b)
  • 我们已将 ArcProgressIndicator 的默认值更新为 strokeWidth=6dp,并推荐直径为屏幕高度的 81.24%。(I6f248)
  • 我们已更新确认 API 以反映其作为对话框的用法。可组合项现在称为 ConfirmationDialog,并相应地更新了颜色和默认类的命名。我们还将 show 参数重命名为 visible,以与 Compose 其他动画 API 兼容。此外,我们还提供了 ConfirmationDialogContentSuccessConfirmationDialogContentFailureConfirmationDialogContent,以供开发者在需要自定义对话框进入/退出动画时使用。(Iaeb33)
  • 我们已将 CircularProgressIndicatorContent 更新为 CircularProgressIndicatorStaticCircularProgressIndicator 的非动画变体),以便现在可以将其用于构建具有自定义动画的 CircularProgressIndicator。(I1346f)
  • 我们已修复 ArcProgressIndicator 上的参数顺序,将修饰符参数放在首位。(I4656a)
  • 改进了 SwipeToReveal API,使其能够接收用于操作标签(次要操作除外)的文本槽参数,并从撤消操作中移除标签参数。(I5b3db)

错误修复

  • 我们已修复 ButtonCardIconButtonTextButton 中长按触觉反馈多次触发的错误。(Ia8b0f)
  • AlertDialog 的用户体验更改 - 在大屏幕上,确认和解除按钮现在更小。确认和解除按钮下方也增加了间距。(I4f066)
  • 我们已更改 SwipeToReveal 组件操作按钮标签的动画规范。(Ib87fb)
  • 更改了 SwipeToReveal,使其在显示文本的同时展开容器。(I44cf8)
  • 改进了 SwipeToReveal,使其在滑动超过主要操作提交的阈值时执行触觉反馈。(I23efe)
  • 我们已更新 SwipeToReveal,使其默认在文本溢出时显示省略号,适用于主要操作和撤消操作。(I71f5a)
  • 我们已修复导致 ButtonGroup 动画抖动的问题。(I63f8f)
  • 我们已为 AnimatedText 添加了文本语义。(I6063c)
  • 对话框现在在从组合中移除时会重置背景缩放(如果没有此修复,启动屏幕可能会保持在缩小状态)。(Id24ac)
  • 我们已为 Stepper 组件中的按钮添加了形状变形动画。(Id6ed3)

1.0.0-alpha30 版

2024 年 12 月 11 日

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

API 变更

  • TransformingLazyColumnscrollTransform 修饰符经过重构,这触发了 API 更改。(I0c6dc)
  • 我们已更新 IconToggleButtonShapesTextToggleButtonShapes,使其具有两个不同的形状参数 uncheckedPressedcheckedPressed。(I85dbd)
  • 在使用 minDatemaxDate 时,DatePicker 中现在会显示无效的月份/日期选项,并带有新的 invalidPickerContentColor。(If4541)
  • 我们已更新 Stepper API,以提供 increaseIcondecreaseIcon 槽位 - 这些槽位的内容可以像往常一样从 Icon 可组合项构建。(Id35da)
  • 我们已更新 dynamicColorScheme,移除了可选的 defaultColorScheme 参数,现在返回可为空的 ColorScheme。这意味着当未提供动态配色方案时,调用者必须显式处理回退情况。(I6d62e)
  • 我们已更新 ButtonDefaults 中的图标尺寸,以便与 CompactButton 配合使用。仅包含图标的 CompactButton 应使用 ButtonDefaults.SmallIconSize = 24.dp,而同时包含图标和文本的 CompactButton 应使用 ButtonDefaults.ExtraSmallIconSize = 20.dp。建议 CompactButton 包装其内容(而不是填充最大宽度),并且示例已更新以展示这一点。( I0582c)
  • 我们已添加 EdgeButtonDefaults,其中包含 4 种不同 EdgeButtonSizes 的推荐图标尺寸。此外,还更新了 EdgeButton 布局,使其底部内边距略大于顶部内边距,这改善了图标和文本内容的外观。( Id772a)
  • 我们已向 LinearProgressIndicator 添加了动画,并公开了 LinearProgressIndicatorContent,后者提供不带动画的视觉内容。( Idee99)
  • 我们添加了一个新的 CircularProgressIndicatorContent 可组合项,用于显示 CircularProgressIndicator 的视觉内容,不带动画。( Ie33d4)
  • TransformingLazyColumn 新增了组合局部 LocalTransformingLazyColumnItemScopeCardButtonListHeader 现在使用它在 TransformingLazyColumn 内放置时自动变形。调用者可以使用新的 TransformExclusion 包装器禁用自动变形。( I1652f)
  • 我们已将 ButtonDefaults.shape 的类型更新为 RoundedCornerShape。( Iccdf2)

错误修复

  • 我们修复了一个错误,以尊重 TimeText 背景上现有的 alpha 值。( I1eb60)
  • 我们已在排版中默认将 TextMotion 设置为 Animated,以避免在缩放操作期间文本字形捕捉到像素边界导致的文本抖动。( I626fa)
  • 我们已更新 ScrollIndicator 的外观,通过增加宽度和间隙大小来提高可见性。( Ied7cb)
  • 我们修复了在添加/移除/移动项目时 Modifier.scrollTransform 上的一个错误。( I6830f)
  • 我们修复了短按时圆形按钮动画问题(以前,最小动画持续时间并非总是被遵守)。( I757a7)
  • 我们已将 LevelIndicator 的扫角更新为 20%(即 72 度)。( Idde5c)
  • 我们修复了当 ScalingLazyColumnAutoCenteringParams 一起使用时 ScrollIndicator 的定位问题。( I387dd)
  • 我们已更新 ListHeaderListSubHeader 的颜色和排版。以及 CheckboxButtonSwitchButton 上切换控件的颜色。( I39817)
  • 我们修复了 LazyColumnScalingLazyColumn 中使用 ContentPaddingScrollIndicator 的定位问题。( I2bc51)
  • 我们修复了 OpenOnPhoneDialog 进度动画中出现的一个错误,通过使用新的 CircularProgressIndicatorContent。( I3e443)
  • 我们已更新 HorizontalPagerScaffoldVerticalPagerScaffold,在启用减少运动时禁用动画。( Iaaf68)
  • 我们为圆形进度指示器实现了单独的动画,当进度超过 100% 时。( I47135)
  • 我们修复了 EdgeButton 在 Pager 组件中可能以不正确的形状绘制的错误。( I91db9)

版本 1.0.0-alpha29

2024 年 11 月 13 日

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

API 变更

  • 我们已更新 TimeText 以提供显示时间的默认内容。( Id23b3)
  • 我们已通过移除不再需要的 orientation 参数来简化 PagerStateScrollInfoProvider。新行为是 TimeText 在水平和垂直分页时都保持在原位。( I71767)
  • 当 Vibrator API 指示支持触觉反馈时,LocalHapticFeedback 现在提供默认的 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 material3 Colors 类中 copy() 的可见性更改为公共。( I0287f)

错误修复

  • 点击时为 IconToggleButtonTextToggleButton 添加了最小动画持续时间。( Ieb333)
  • IconButtonTextButton 形状动画添加了最小持续时间。( Iebcee)
  • 修正了 DatePicker 的重复选项状态。( I3587c)
  • 为警报和确认对话框添加了动画。( I173b1)

版本 1.0.0-alpha27

2024 年 10 月 16 日

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

API 变更

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

错误修复

  • 我们已更新卡片组件的排版和内边距。( I3ae48)
  • 我们已根据 UX 规范,将 AlertDialog 中确认/取消按钮与其余内容之间的内边距从 8dp 更改为 12dp。( Ie55f0)
  • 我们已更新 Slider 组件的颜色不透明度。( Idb383)

版本 1.0.0-alpha26

2024 年 10 月 2 日

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

API 变更

  • 我们已更新 HorizontalPageIndicator 的 API 和外观,并添加了用于 VerticalPagerVerticalPageIndicator。( 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,它们(作为 token)对使用该库的开发者而言是私有的。( I1594a, b/347649765)
  • 我们已将二进制分段圆形进度指示器的 progress 参数重命名为 segmentValue。( Ib72d9)
  • 我们已更新 Slider 的颜色和布局。( 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 高度,我们已移除了在 Column 中使用 EdgeButton 的支持。( Ie353d)
  • 我们已为 Wear Compose LazyColumn 添加了对 ScreenScaffold 的支持(并添加了 LazyColumnStateScrollInfoProvider 实现)。( Ib8d29)
  • 我们已将 LocalTextMaxLinesLocalTextAlignLocalTextOverflow 合并到一个 LocalTextConfiguration 组合局部变量中,以提供更具可扩展性的未来解决方案。( I5edbc)
  • 我们添加了 arc-large 作为附加的字体排版,用于屏幕顶部或底部的短标题文本字符串,例如在确认覆盖层中。( I60e3e)
  • 我们已为 Button 添加了推荐的大图标和超大图标尺寸以及内容内边距的默认值。( I84675)

错误修复

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

版本 1.0.0-alpha24

2024 年 9 月 4 日

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

API 变更

  • 我们已将 Motion scheme 添加到 Material3 主题中。库中的组件将使用它来应用动画规范,例如用于富有表现力的动画的弹簧。( I54ff3)
  • 我们已将 AppScaffoldScreenScaffold 组件添加到 Material3 库中,其中包括协调 TimeTextScrollIndicator 的分层和过渡的功能。AppScaffold 提供了一个位于所有屏幕顶层的支架组件。因此,将 TimeText 添加到 AppScaffold 允许它在屏幕之间滑动时保持在原位。屏幕本身可以覆盖或隐藏时间文本。ScreenScaffoldScrollIndicator 提供了一个槽位,并在滚动时自动为滚动指示器设置动画,包括在不活动后隐藏滚动指示器的超时。( I047d6)
  • 我们已添加具有全新 Material3 设计的 ScrollIndicator。它具有基于初始列表内容的固定拇指大小,以避免在将惰性内容加载到列表中时出现大小变化。( Ic228d)
  • 我们已更改 ScrollAway API,使 ScreenStage 成为值类而不是枚举类,以便在未来需要时添加更多阶段。( I48c93)
  • 我们添加了 EdgeButton,这是一种独特的 Wear 专用按钮,其形状遵循屏幕底部的弧度。( I16369)
  • 我们已为 ScreenScaffold 添加了一个新槽位,用于底部按钮(例如 EdgeButton),该按钮将根据滚动内容显示和调整大小。( I032eb)
  • 我们已添加 Modifier.scrollTransformModifier.targetMorphingHeight,以向 LazyColumn 中的项目添加 Material3 运动效果。( 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 和子 Checkbox 控件来简化以前的 API。( Ia8f70)
  • 我们添加了 SwitchButtonSplitSwitchButton - 这些组件通过组合(Split)ToggleButton 和子 Switch 控件来简化以前的 API。( I0d349)
  • 我们已更新 AnimatedText 文档,以解释过冲行为。( Iff30a)
  • 我们已添加 ButtonGroup,用于组合 2 或 3 个按钮,使按钮按下时产生协调动画。( Ie27db)
  • 我们已为 IconButtonTextButton 添加了可选的形状动画,当按下时。( Iffca5)
  • 我们已为 ButtonIconButtonTextButtonCompactButtonEdgeButton 添加了额外的颜色变体 FilledVariant。( I65fc3)
  • 我们已为 ImageWithScrimPainter 添加了 forcedSize 参数,以便 Button 图像背景现在默认保持其组件大小。将 forcedSize = null 则采用 Painter.instrinsicSize。( Ic57af)
  • 我们已为 Buttons 添加了长按功能。( Ib613d)
  • 长按支持也已添加到 IconButtonTextButton。( I38891)
  • 长按支持已添加到 Cards。( I305d5)
  • 我们已添加 LocalTextMaxLinesLocalTextAlignLocalTextOverflow 作为 CompositionLocals,并将其用作 Text 上的参数默认值。现在,CheckboxButtonSwitchButtonRadioButton 等组件可以使用这些组合局部变量来实现 UX 指导,但开发者在必要时可以直接覆盖 Text 上的参数。( 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 - 除了颜色变化,其勾选标记现在与 Checkbox 所使用的勾选标记匹配。( 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 包含这些提交

错误修复

  • 我们已调整 Ripple 按下和聚焦状态的 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)
  • 我们已将 RadioButton 的参数名称从 onSelected 更新为 onSelect。( 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 作为选择控件(如 Radio 控件)的容器。这与现有的 ToggleButton 不同,RadioButton 是可选择的(并在选择组中操作),而 ToggleButton 是可切换的(并且是独立的)。( I61275)
  • 为与 Compose Material3 库保持一致,我们正在从 Wear Compose Material3 库中移除 LocalContentAlpha。( I49a0a)
  • Wear Material 和 Wear Material3 组件在其 API 中公开 MutableInteractionSource 的已更新为现在公开一个可为空的 MutableInteractionSource,其默认值为 null。这里没有语义上的变化:传递 null 意味着您不希望提升 MutableInteractionSource,如果需要,它将在组件内部创建。更改为 null 允许某些组件永远不分配 MutableInteractionSource,并允许其他组件仅在需要时才懒惰地创建实例,这提高了这些组件的性能。如果您不使用传递给这些组件的 MutableInteractionSource,建议您改为传递 null。还建议您在自己的组件中进行类似的更改。( Ib90fc, b/298048146)
  • wear:compose-materialwear:compose-material3 库中添加了新的 ripple API,它取代了已弃用的 rememberRipple。还添加了一个临时 CompositionLocalLocalUseFallbackRippleImplementation,以将 Material 组件恢复为使用已弃用的 rememberRipple/RippleTheme API。这将在下一个稳定版本中移除,仅作为临时迁移辅助工具,适用于您提供自定义 RippleTheme 的情况。有关迁移信息和此更改的更多背景信息,请参阅 developer.android.com。( af92b21)
  • 我们对 HorizontalPageIndicator API 及其文档进行了少量改进。( I60efc)
  • 我们已将 ColorScheme 更新为不可变,从而降低了单个颜色更新的效率,但提高了颜色更常见用法的效率。此更改的原因是,大多数应用程序不会将更新单个颜色作为主要用例。这仍然是可能的,但它会比以前进行更多的重组,反过来,我们显著减少了 Material 代码中所有状态订阅的数量,并将影响更标准用例的初始化和运行时成本。( Ibc2d6)
  • 更新了 ToggleButtonSplitToggleButton API,以允许自定义禁用颜色。此外,现在使用 Material Design 令牌作为颜色和排版值。( If087c)
  • 更新了 Button 图像背景颜色以使用 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 变更

  • 我们已将 Foundation 级别的 SwipeToDismissBox 重命名为 BasicSwipeToDismissBox。这使得 Foundation 级别的组件与 Material3 级别的 SwipeToDismissBox 之间的区别更加清晰。后者从 MaterialTheme 中提取颜色用于 scrims,并将其余实现委托给 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 添加了一个可选的 Subtitle 字段。( 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 变更

  • 更新 Buttons 代码以使用 Material3 设计令牌。( I92fe4)
  • 声明 Wear Material 3 Stepper 和 Slider API 为实验性,因为用户界面的细节仍在最终确定中。( I84d54)
  • 我们已从圆形 TextButtonTextToggleButton 中移除了 ExtraSmall 尺寸,因为该尺寸仅适用于 IconButton。( Ibc7d5)

错误修复

  • 我们已更新 TextToggleButton 的排版指南,将 LabelLarge 用于 LargeButtonSize。( Ib10fa)
  • 我们已更新 TextButton 的排版指南,将 LabelLarge 用于 LargeButtonSize。( I8f3a7)
  • 我们已将 Card 的最小触摸目标设置为 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)
  • 我们已为 Material3 添加了 IconToggleButtonTextToggleButton,这是一种分别用于图标和文本的圆形切换按钮,只有一个槽位。对于不同尺寸的 ToggleButton,我们建议使用 Modifier.touchTargetAwareSizeTextButtonDefaults 中提供的 ExtraSmallButtonSizeSmallButtonSizeDefaultButtonSizeLargeButtonSizeIcon。 ( 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 文件以注释兼容性抑制。( I8e87a, b/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 组件添加到 Wear OS Material 3 的 Compose 库中。这与之前的 Material 版本类似,但根据开发者反馈,默认省略了范围语义。在需要范围语义的情况下,我们提供了 Modifier.rangeSemantics。( Ic39fd)
  • 我们已将 curvedText 添加到 Wear OS Material 3 的 Compose 库中。( Ia8ae3)

错误修复

  • 我们已更新 wear.compose.foundationwear.compose.material3 的 API 依赖项。( I72004, b/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.touchTargetAwareSize 以及 TextButtonDefaults 中提供的 ExtraSmallButtonSizeSmallButtonSizeDefaultButtonSizeLargeButtonSizeIcon。默认的 TextButton 没有边框和透明背景,用于低强调操作。对于需要高强调的操作,请使用 filledTextButtonColors;对于中等强调的轮廓 TextButton,将边框设置为 ButtonDefaults.outlinedButtonBorder;对于轮廓和填充之间的中间选项,使用 filledTonalTextButtonColors。( I667e4)
  • 我们已将 CardOutlinedCardAppCardTitleCard 添加到 Wear Compose Material3 库中。AppCardTitleCard 也可以使用 CardDefaults.outlinedCardColorsCardDefaults.outlinedCardBorder 获得轮廓外观。( I80e72)

API 变更

  • 我们已将 Button label 参数移至末尾,以支持尾随 lambda 语法,并移除了 role 参数(因为这可以使用 Modifier.semantics 覆盖)。ButtonColors 构造函数现在是公共的。( Ie1b6d)

版本 1.0.0-alpha04

2023 年 5 月 10 日

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

新功能

  • 我们已为 Material3 添加了 IconButton,这是一个带有图标/图像单槽的圆形按钮。有四种变体:IconButtonFilledIconButtonFilledTonalIconButtonOutlinedIconButton。对于不同尺寸的 IconButton,我们建议使用 Modifier.touchTargetAwareSizeIconButtonDefaults 中提供的 ExtraSmallButtonSizeSmallButtonSizeDefaultButtonSizeLargeButtonSizeIcon。我们还提供了 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(为与 Compose Material 3 库保持一致,已重命名为 Button)。默认 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 包含这些提交。

错误修复

  • 我们已为 Wear Compose Material 3 添加了一个 DefaultTextStyle,它将 PlatformTextStyle.includeFontPadding 默认设置为 true(当前设置)。这将允许我们在未来与 Compose 库同步默认关闭字体内边距(有关背景信息,请参阅修复 Compose 文本中的字体内边距)。( I7e461)

版本 1.0.0-alpha01

2023 年 3 月 22 日

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

新功能

  • Material 3 是 Material Design 的下一代演进,包含更新的主题和重新设计的组件。Wear Compose 上的 Material 3 旨在与 Android 上的 Material 3 Compose 库保持一致。这个第一个 alpha 版本包含以下早期功能实现:

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

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