Wear Compose Material 3
最近更新时间 | 稳定版 | 候选版 | 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. }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
Wear Compose Material 3 版本 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()
中移除了iconContentDescription
和contentDescription
参数。此外,ConfirmationDialogDefaults
现在在SuccessIcon
和FailureIcon
可组合项上具有修饰符参数。(Id2ae2)
bug 修复
- 更改了应用
SurfaceTransformation
参数效果的顺序。以前,对 Wear Material3 组件应用的转换是按以下顺序完成的:背景绘制程序、容器转换、内容转换。现在,前 2 个元素被反转,我们会在它们之间应用传入的任何修饰符,因此它会受到容器转换的影响。这修复了使用转换参数将占位符闪烁效果与 TLC 中的元素搭配使用等情况。(I786cf) - 添加了
RevealState.Saver
,以便在重新创建 activity 或进程时恢复SwipeToReveal
的状态。rememberRevealState
函数现在默认使用此 Saver。(Ie0ecb) SwipeToReveal
主要和次要操作按钮应默认为ButtonDefault.Height
(修复了这些按钮会填充较高按钮的最大高度的 bug)。(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 包含这些提交内容。
bug 修复
- 更新了 foundation、material 和 material3 库的基准配置文件。(I53f06)
- 修复了
TransformingLazyColumn
中的一个 bug,该 bug 会导致在移除底部项时项的大小发生变化。(Idacab) - 修复了
TransformingLazyColumn
存在的 bug,即列表卡在列表顶部或底部的问题。(I49d00) - TalkBack 下的
OpenOnPhoneDialog
应读出弯曲文本,而不是图标内容说明。(I4efe8) - 修复了
SwipeToReveal
中的一个 bug,该 bug 会在hasPartiallyRevealedState
设置为 false 时在RevealState.currentValue
中报告错误的锚点。(I9c7cf) SwipeToReveal
撤消按钮现在默认设为ButtonDefaults.Height
。(I1f6c8)- 通过不再使用画布绘制 scrim,
BasicSwipeToDismissBox
性能得到了提升。(I68f2c) - 修复了滑块中的无障碍功能 bug,该 bug 会导致更新后读出的百分比与值不符 (I91146)
- 修复了
placeholderShimmer
实现中的 bug。(Iee39b - 通过优化
ScrollProgress
计算,TransformingLazyColumn
性能提高了 30%。(I4c4cb)
版本 1.5.0-beta01
2025 年 5 月 7 日
发布了 androidx.wear.compose:compose-*:1.5.0-beta01
。版本 1.5.0-beta01 包含这些提交内容。
Compose for Wear OS 的 1.5.0-beta01 版本表明,此版本是一个功能完备且 API 已锁定的库(标记为实验性的除外)。
Wear Compose 1.5.0-beta01 包含 Wear Compose Material3 库,该库支持名为 Material 3 Expressive 的新界面设计系统。建议从 Material 升级到 Material3,以便在应用中采用新的视觉设计,并受益于以下新组件:
MaterialTheme
,获取更新后的扩展配色方案、排版和形状,为您的设计增添深度和多样性。- 动态配色主题,可自动为您的应用生成配色方案,以匹配表盘颜色。
- 默认情况下,新组件会自动适应更大的屏幕尺寸
- 形状变形 -
IconButton
、TextButton
、IconToggleButton
和TextToggleButton
等圆形按钮组件支持在按下或选中时呈现动画效果的变体。 EdgeButton
- 一种新的贴边按钮,采用专为屏幕底部设计的特殊形状。- 基架 - 引入
AppScaffold
和ScreenScaffold
来布局屏幕结构,并协调ScrollIndicator
和TimeText
动画。 - 按钮 - 支持多种体育场形按钮,包括灵活的单槽容器,以及带有图标和标签的多槽变体。需要切换按钮时,提供
CheckboxButton
和SwitchButton
,而RadioButton
是可用的选择按钮(还提供切换按钮和选择按钮的“分屏”变体)。 ButtonGroup
- 实现一排富有表现力的按钮组,这些按钮会在被触摸时发生形状变化。AlertDialog
变体支持“确定/取消”按钮或EdgeButton
。ConfirmationDialog
可用于显示带有超时设置的消息,支持针对成功、失败和在手机上打开等不同变体显示特殊动画。- 选择器 - 支持
TimePicker
和DatePicker
变体,以及用于构建您自己的选择器屏幕的 Picker 和PickerGroup
组件。 ProgressIndicators
- 支持圆形和线性进度指示器(CircularProgressIndicator
具有分段和不确定变体)。- 卡片 - 提供多种卡片变体,包括
TitleCard
,可为包含标题、时间、副标题或内容槽位的卡片提供特定布局。您还可以为TitleCard
设置图片背景,以强化卡片中信息的含义。 - 分页器 -
HorizontalPagerScaffold
、VerticalPagerScaffold
和AnimatedPage
组件会协调HorizontalPageIndicator
和VerticalPagerIndicator
动画。HorizontalPager
和VerticalPager
已在 Wear Compose Foundation 库中发布。 - 占位符 - 在没有临时内容可用的情况下,在组件上方绘制框架形状。
- 滑块和步进控件 - 滑块和步进控件都允许用户从一系列值中进行选择。滑块更紧凑,并且可以分段,而步进器是一个全屏组件,通常与
StepperLevelIndicator
搭配使用。 SwipeToReveal
- 用于在用户从右向左滑动可组合项时向其添加其他操作。
此外,Wear Compose Foundation 1.5.0-beta01 还包含以下新组件:
TransformingLazyColumn
- 支持缩放和变形动画的延迟垂直滚动列表- 分层焦点组 - 用于为应用中的可组合项添加注解,以跟踪组合的活动部分并协调焦点。
- 分页器 -
HorizontalPager
和VerticalPager
组件,基于 Compose Foundation 组件构建,并进行了 Wear 专用增强,以提升性能并遵循 Wear OS 准则。
API 变更
- 更新了分层焦点 API:将
Modifier.hierarchicalFocus
重命名为Modifier.hierarchicalFocusGroup
并移除了回调参数;移除了带有FocusRequester
参数的Modifier.hierarchicalFocusRequester
重载;创建了新的CompositionLocal
LocalScreenIsActive
,以便组件可以通知和检查哪个屏幕是活动屏幕。(I5ff7c)。 - 废弃了 Wear Compose Foundation 中的
SwipeToReveal
,改用 Wear Compose Material 和 Wear Compose Material3 中的SwipeToReveal
API。请将 Wear FoundationSwipeToReveal
导入替换为 Wear Compose Material/ Wear Compose Material3 导入,以便继续使用这些 API。(Ia147d)。 - Wear Compose Material3 对 Foundation 的
SwipeToReveal
依赖项已移至 material3 软件包,例如RevealValue
、RevealDirection
、RevealActionType
、RevealState
、rememberRevealState
。开发者应将这些类和函数的导入从androidx.wear.compose.foundation
更改为androidx.wear.compose.material3
。(I640e6)。 - 更新了 Wear Compose Material3
SwipeToReveal
API,具体如下:向SwipeToReveal
可组合项添加了primaryAction
、onFullSwipe
、secondaryAction
、undoPrimaryAction
、undoSecondaryAction
和hasPartiallyRevealedState
参数;从RevealState
中移除了自定义positionalThreshold
和animationSpec
的功能;从RevealState
中移除了lastActionType
、revealThreshold
和宽度;将RevealState
构造函数更改为接受RevealDirection
而非锚点;移除了createRevealAnchors
、锚点和bidirectionalAnchors
函数;将SwipeToRevealScope
函数primaryAction
、secondaryAction
、undoPrimaryAction
和undoSecondaryAction
重命名为PrimaryActionButton
、SecondaryActionButton
、UndoActionButton
并将其转换为可组合项函数;将RevealActionType
标记为内部函数。(I885d0)。 - 进一步更新了
SwipeToReveal
API,具体如下:将onFullSwipe
重命名为onSwipePrimaryAction
;重命名了SwipeToRevealNonAnchoredSample
,以指明使用hasPartiallyRevealedState
参数;移除了actionButtonHeight
,因为默认值是按钮的默认高度,并且可以使用修饰符设置更大的高度;从SwipeToRevealDefaults
中移除了SmallActionButtonHeight
;将RevealValue
和RevealDirection
构造函数中的值参数设为私有。(I465ce)。
bug 修复
- 修复了
ScreenScaffold
的EdgeButton
处理,以便在移除TransformingLazyColumn
项后,EdgeButton
会以动画形式进入到位。(I6d366)。 - 将 Wear Compose 对 Compose 库的依赖项更新为版本 1.8.0。(I2ef3f)。
- 更新了未确定
CircularProgressIndicator
的动作,使其不再暂时回归。(Ieddb1)。 - 修复了
SwipeDismissableNavHost
bug:在滑回后焦点无法正确切换,导致旋转输入失败(适用于使用预测性返回的 API 36 及更高版本)。(Ieddb1)。 - 修订了 Hierarchical Focus API 的文档 (Idf2ff)。
- 更新了按钮和卡片的文档,说明了
containerPainter
和disabledContainerPainter
如何替换containerColor
和disabledContainerColor
(I4a453)。 - 还原了上一个版本中对
TimeText
所做的更改,该更改会将BroadcastReceiver
移至工作器线程,因为这会导致在导航期间管理自己的线程的应用出现问题。(I34d02)。 - 更新了选择器示例,以移除不必要的 remember 调用,改为在选择器中使用
rememberUpdatedState
来记住最新的contentDescription
lambda 函数。(Icb5b1)。 - 更新了
TimePicker
和DatePicker
中的文本样式,以便字体更改不再导致截断。(I26194)。 ListHeader
和ListSubHeader
现在将文本对齐方式分别默认设置为居中对齐和左对齐。(I78339)。- 更新了 Foundation 和 Material 滑动以显示示例和演示,以宣布自定义无障碍功能操作(自定义操作必须作为内容的语义添加,而不是添加到
SwipeToReveal
可组合项本身)。(Ie92a3)。 - 根据
EdgeButton
内容的大小更新了对其设置的默认MaxLines
,现在超小号为 1,小号和中号为 2,大号为 3。(Ie35f6)。 - 简化了
LocalReduceMotion
,以便仅注册一次观察器,从而提升性能。(Ib1979)。 - 最大限度地减少了
ScrollIndicator
中的重新绘制次数,以提高性能。(Ia7a67)。 - 修复了
TransformingLazyColumn
中的以下 bug:当 EdgeButton 达到其完整高度时,列表中的顶部可见项无法正确缩放。(I30580)。
Wear Compose Material 3 版本 1.0
版本 1.0.0-alpha37
2025 年 4 月 23 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha37
。版本 1.0.0-alpha37 包含这些提交内容。
API 变更
- 从公共 API Surface 中移除了
scrollTransform
。如果您需要获得相同的功能,请组合使用transformedHeight
和graphicsLayer
修饰符。(Ie181d) - 将
ImageButton
和ImageCard
可组合项分别替换为了Button
和Card/TitleCard
重载。将imageButtonColors
重命名为buttonWithContainerPainterColors
,将imageCardColors
重命名为cardWithContainerPainterColors
。添加了公开的ButtonDefaults.scrimBrush
和CardDefaults.scrimBrush
。将按钮imageBackgroundGradientStartColor
和imageBackgroundGradientEndColor
重命名为scrimGradientStartColor
和scrimGradientEndColor
。将CardDefaults.ImageContentPadding
重命名为CardDefaults.CardWithContainerPainterContentPadding
(I7b8b6) Picker
和PickerGroup
现在将contentDescription
视为 lambda,以避免不必要的重组。(I002dd)
bug 修复
- 修复了以下问题:如果宽度不等于高度,不确定
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
替换为ImageButton
、ButtonDefaults.imageButtonColors
、ButtonDefaults.containerPainter
和ButtonDefaults.disabledContainerPainter
。并对卡片进行了类似的更改。从ButtonColors
和CardColors
中移除了画家。(I8c6a1) - 更新了占位符,以简化 API。我们现在提供了两个修饰符,
Modifier.placeholderShimmer
用于在组件级别应用闪烁效果,Modifier.placeholder
用于在未加载的内容上应用遮罩 (Iaee7a)
bug 修复
- 将滚动回弹集成到
ScrollIndicator
中。(Icfb7f) - 解决了启动 Material3 对话框时出现的空白背景和缺少对话框的问题。(Ice597)
- 修复了
FadingExpandingLabel
中当文本跨多行时出现的问题。(I04eb7) - 更新了按钮上主要标签和辅助标签之间的内边距。(I99b7b)
ArcLarge
已从20sp
降至18sp
,ArcLarge
和ArcSmall
上的字母间距也已更新。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.FadeOutAnimationSpec
。AnimatedPage
上的页面参数已重命名为pageIndex
。(I701f2)- 更新了
TransformingLazyColumn
的SurfaceTransformation
命名 -applyTransformation
已拆分为applyContainerTransformation
和applyContentTransformation
,并将createBackgroundPainter
重命名为createContainerPainter
。对TransformationSpec
和ResponsiveTransformationSpec
进行了进一步的命名更新。(I1c534) AppScaffold backgroundColor
已重命名为containerColor
。(I4e63f)
bug 修复
- 修复了
FadingExpandingLabel
中文本未始终正确展开的问题。(I0e773) ArcLarge
已从 20sp 缩减为 18sp,ArcLarge
和ArcSmall
上的字母间距也已更新。ConfirmationDialog/OpenOnPhoneDialog
现在使用默认的ArcLarge
,而不是将其替换为 18sp。(Id39a8)- 更新了
DatePicker
和TimePicker
的标题动画,以便淡出和淡入动画作为一个弹簧动画。(I68963) - 通过避免在
AnimatedPage
可组合项中读取currentPageOffsetFraction
,优化了PagerScaffold
。(I433ef) - 所有类型的刻度都已更新为默认使用比例数字,因为这被视为最常见的用例,而默认使用表格数字会导致某些数字对之间的间距过大。
TimePicker
和DatePicker
继续对表格数字应用FontFeatureSetting=tnum
。(I88929) - 更正了
TimePicker
和DatePicker
的初始 RSB 输入焦点。(I1c773) - 将
OpenOnPhoneDialog
上的默认文本更新为“检查手机”。(I00a3f) - 将
ArcLarge
和ArcMedium
的粗体设置从 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
可组合项提供此组件。AnimatedPage
和snapWithSpringFlingBehaviour
现已公开,可与 Wear FoundationPager
搭配使用,以实现之前的 M3PagerScaffold
行为。(请参阅更新后的示例)。(Ia4724)- 更新了
PagerState
,移除了 Compose FoundationPagerState
作为基类,并添加了currentPage
、currentPageOffsetFraction
和pageCount
属性。更新了GestureInclusion
接口,将方法重命名为ignoreGestureStart
。(I4ae07) LevelIndicator
扫描角度参数现在带有FloatRange(0, 360)
注解 (I7e636)- 我们添加了
CurvedModifier.clearAndSetSemantics
,以提供一种关闭曲线语义的方法。CurvedText
仍会默认将内容描述设为文本,但timeTextCurvedText
和timeTextSeparator
现在不会读出其内容。(I4b568) - 向
AppScaffold
添加了背景和默认内容颜色参数。(I56652) HorizontalPager
对滑动手势的默认处理已重命名为PagerDefaults.gestureInclusion
。默认行为现在是仅忽略从第一个页面的左边缘开始的滑动手势,并且仅在 TalkBack 处于关闭状态时才会这样做。在其他情况下,默认行为是页面浏览器不会忽略滑动手势,因此滑动手势将不适用于滑动关闭处理脚本。(Iee486)- 向按钮、卡片和列表标题组件添加了
SurfaceTransformation
参数,以便在根据其位置更改项外观的容器(例如TransformingLazyColumn
)中使用时,这些组件可以应用不同的背景和内容转换。(Iabe3f) - 我们已将 Wear Compose Material3 API 中的“public const val”属性更新为“public val”,以避免值被内嵌。(Ib0f32)
- 向
SwipeToReveal
添加了对边缘滑动区域的支持。FoundationSwipeToReveal
的默认行为现在是禁止在手势从边缘开始时滑动。现在,当手势从边缘开始且SwipeDirection
设置为单向时,Material3SwipeToReveal’
的默认行为是禁止滑动。(I32ef0) - 添加了
FadingExpandingLabel
可组合项,可让文本逐行以动画效果淡出。(Ic60fa) TransformingLazyColumn
现在默认使用空contentPadding
,而不是将第一个和最后一个项放置在中心。(I77ab7)- 从 Wear Compose Material3 库中移除了
SwipeToReveal
的rememberRevealState
。(I8c0e0)
bug 修复
- Wear Compose 库已更新为 Kotlin 2.0 编译器。(I2de79)
- Material3 已移除对非圆形
ScrollIndicator
和PageIndicator
的支持。方形屏幕支持也不再是 Wear OS 要求的一部分,如需了解详情,请参阅入门指南。(I9a852) ConfirmationDialogDefaults
和OpenOnPhoneDialogDefaults
中使用的CurvedTextStyle
已更新为使用大小为18sp
且字母间距为1.8sp
的ArcLarge
排版。(Ic9ced)- 默认情况下,
Card
、ListHeader
、RadioButton
、CheckboxButton
、SwitchButton
不再限制其内容的高度。如有必要,请使用Modifier.height(IntrinsicSize.Min)
恢复之前的行为。(I80bb8) - 我们更新了默认的
TimeText
和ScrollIndicator
颜色,以添加更多灰色调,因为使用OnBackground
(白色)时,视觉效果会过于突出,与屏幕上的其他内容(例如标题)相竞争。(I8b36f) - 我们已将在 Scaffold 组件中为
TimeText
和ScrollIndicator
设置的动画超时时间缩短至 2 秒。(I52021) - 我们更新了对话框的动作,以便对话框背景的缩放与滑动关闭同步。(I925a9)
- 添加了使用
edgeSwipeToDismiss
修饰符的 M3SwipeToReveal
演示。(I02b07) - 我们在 TalkBack 下为
DatePicker
和TimePicker
添加了标题,以便告知用户滚动屏幕以设置日期/时间。(Id738d) AnimatedText
现在会遵循“减少动作”设置。(Ib6578)- 改进了使用
AppScaffold
显示对话框内容的优化,以允许多个对话框彼此叠加显示 (I1209c)
版本 1.0.0-alpha33
2025 年 2 月 26 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha33
。版本 1.0.0-alpha33 包含这些提交内容。
API 变更
- 我们已从
SwipeToRevealScope
的primaryAction
和secondaryAction
中移除标签参数。自定义操作语义应由开发者直接添加到SwipeToReveal
组件的内容中。(Ia67f3) - 我们已从
IconToggleButtonDefaults
和TextToggleButtonDefaults
中的大小、文本样式和颜色函数中移除“Button”前缀 (I5471d) - 我们移除了实验性
LocalMinimumInteractiveComponentEnforcement
(I4ad8a) - 我们已将
PickerGroupScope
DSL 替换为可组合项。因此,我们从PickerGroupScope
中移除了pickerGroupItem
方法,改为添加了@Composable PickerGroupItem
,应将其用于向PickerGroup
添加 Picker。我们还将PickerGroup
“content”参数的类型更新为@Composable PickerGroupScope.() -> Unit
。(Ic6aec) - 我们为小数值添加了
LevelIndicator
重载,并为包含范围参数(适合与步进控件组件搭配使用)的重载添加了 Stepper 前缀。(If4234) - 我们向 API 添加了
TransformingLazyColumn
的TransformationSpec
,以便定义在项滚动浏览 TLC 时发生的确切转换。(I21856) - 我们更新了
IconButtonShapes
、IconToggleButtonShapes
、TextButtonShapes
和TextToggleButtonShapes
,使其与 compose/material3 类保持一致 (I5a081) - 我们向
ScalingLazyColumn
、TransformingLazyColumn
和ScreenScaffold
添加了overscrollEffect
参数。(I0cee8) - 我们已将
rememberRevealState
中的swipeDirection
参数重命名为revealDirection
。(I7472f) - Wear Pager 现在有自己的
PagerScope
,而不是使用 ComposePagerScope
。(I9195b) - 我们已移除
LinearProgressIndicatorContent
可组合项,请直接使用LinearProgressIndicator
,以便默认对值进行动画处理。(I2c4ad) - 我们移除了
CircularProgressIndicatorStatic
可组合项,并添加了一个具有相同功能的公共DrawScope
函数drawCircularProgressIndicator
。请直接使用CircularProgressIndicator
,以便默认对更改应用动画效果,但如果需要自定义动画,请使用drawCircularProgressIndicator
构建自己的可组合项。(Ie762f) - 我们对
DrawScope.drawCircularProgressIndicator
中的参数进行了重新排序,以将targetProgress
参数上移。(I8ab92) - 更新了
OpenOnPhoneDialog
API,使其更加清晰,并与其他对话框保持一致。show
参数已重命名为visible
,并且curvedText
现在由调用方提供,而不是使用默认值。(Idec2d) - 我们已将
openOnPhoneCurvedText
重命名为openOnPhoneDialogCurvedText
(I65bdd) - 我们添加了
ScrollIndicatorColors
,以便向ScrollIndicator
提供自定义颜色。(I9eb8c) - 允许配置用于在
TimeText
后面绘制背景的颜色。(I9f5d9) - 将
ArcLarge
、ArcMedium
和ArcSmall
的排版更新为CurvedTextStyle
(Iffc41) - 我们已移除
ScreenScaffoldDefaults.contentPaddingWithEdgeButton
。(Ia923e) - 我们在
ColorScheme
中添加了errorDim
,用于显示高优先级错误或紧急操作,例如安全提醒、失败的对话框叠加层或停止按钮。(I70998)
bug 修复
- 我们已将
wear.compose.material3
固定到androidx.core.core
1.15.0 版 (I132e9) - 我们使用
AppScaffold
将对话框叠加在其他屏幕内容上,从而提升了对话框的性能 (I1b9a4) - 减少了
EdgeButton
的内部垂直内边距。(I1a5bb) - 我们已向滑块按钮添加按钮语义。(I80cc6)
版本 1.0.0-alpha32
2025 年 1 月 29 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha32
。版本 1.0.0-alpha32 包含这些提交内容。
API 变更
- 在
CurvedTextStyle
中,我们将字间距拆分为顺时针字间距和逆时针字间距。这是因为顺时针方向的字母从基准线向外展开,而逆时针方向的字母向内展开(因此需要更大的字母间距)(I4b848) - 我们更新了
IconButtonShapes
、IconToggleButtonShapes
、TextButtonShapes
和TextToggleButtonShapes
,以提高 Material3 库之间的一致性。此变更还引入了形状缓存,以减少分配次数。(I049fc) - 我们从
IconToggleButton
和TextToggleButton
中的variantAnimatedShape
方法中移除了pressedShapeCornerSizeFraction
参数 (I58a65) - 我们对与非圆形屏幕不兼容的曲线文本渲染(包括
TimeText
)进行了改进。非圆形屏幕支持也不再是 Wear OS 要求的一部分,如需了解详情,请参阅入门指南。(I1cc1c) - 我们更新了
ButtonGroup
的ButtonGroupScope
,将基于 DSL 的ButtonGroupItem
替换成了Modifier.weight
、Modifier.minWidth
和Modifier.enlargeOnPress
。(I16c3c) - 在
ButtonGroup
API 中,我们更新了基于修饰符的新ButtonGroupScope
:enlargeOnPress
现在称为animateWidth
,它接受InteractionSource
,而不是MutableInteractionSource
,因为它不需要进行更改。我们还添加了公共常量ButtonGroupDefaults.DefaultMinWidth
,它是ButtonGroup
中按钮的默认最小宽度。(Ie27ec) - 我们更新了
ListHeaderDefaults.contentColor
,使其以小写字母开头,因为它是可组合项属性 (I125a5) - 我们向
SliderDefaults.DecreaseIcon
和SliderDefaults.IncreaseIcon
添加了内容说明参数,并提供了适当的默认值 (I2e1a7) - 我们已将
Picker
和PickerGroup
中的spacing
参数重命名为verticalSpacing
(Ib75cc) - 我们移除了
ConfirmationDialogDefaults.successText
和failureText
,因为ConfirmationDialog
的调用方预计会提供包含更多上下文的字符串。还将confirmationCurvedText
重命名为confirmationDialogCurvedText
。最后,将对话框show
参数重命名为 visible,以与对话框的其他近期更新保持一致。(I10074) IconButton
将disabledImageOpacity
重命名为DisabledImageOpacity
。(I5f94a)
bug 修复
- 我们修复了
EdgeButton
动画中的 bug,以便在每个帧中使用正确的大小 (Id3b58) - 修复了
animateContentSize
无法与Button
搭配使用的问题。(Ib18a0) - 我们已将标题大号类型比例更改为字号
18dp
(Ic9d52) - 我们更新了
AlertDialog
间距和图标大小 (Iac28c) - 我们修复了大屏幕断点(225dp 及以上的屏幕属于大屏幕)中的不一致问题 (I36474)
- 修复了按钮定位方面的一个小 bug (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)
- 我们更新了
ScreenScaffold
和EdgeButton
API,以便更轻松地在包含EdgeButton
的屏幕上指定内容内边距。在新 API 中,EdgeButton
的size
仅传递给EdgeButton
,并且ScreenScaffold
接受edgeButtonSpacing
参数,用于设置EdgeButton
和列表内容之间的间距。(I424fd) - 在
DatePicker
中,我们已将参数minDate
重命名为maxDate
,并将minValidDate
重命名为maxValidDate
。在DatePickerColors
中,我们将参数selectedPickerContentColor
重命名为activePickerContentColor
,将unselectedPickerContentColor
重命名为inactivePickerContentColor
(Iba17b) - 我们已将
ArcProgressIndicator
默认值更新为strokeWidth=6dp
,并建议将屏幕高度的diameter = 81.24%
设为 100% (I6f248) - 我们更新了 Confirmation API,以反映其作为对话框的用法。该可组合项现在称为
ConfirmationDialog
,并且颜色和默认类的命名也进行了相关更新。我们还将show
参数重命名为visible
,以便与其他 Compose 动画 API 兼容。此外,我们还提供了ConfirmationDialogContent
、SuccessConfirmationDialogContent
、FailureConfirmationDialogContent
,以便开发者在需要自定义片头/片尾动画时使用。(Iaeb33) - 我们已将
CircularProgressIndicatorContent
更新为CircularProgressIndicatorStatic
(CircularProgressIndicator
的非动画变体),以便它现在可用于使用自定义动画构建CircularProgressIndicator
。(I1346f) - 我们修复了
ArcProgressIndicator
的参数顺序,将修饰符参数放在前面 (I4656a) - 改进了
SwipeToReveal
API,以接收操作标签(辅助操作除外)的文本槽参数,并从撤消操作中移除标签参数 (I5b3db)
bug 修复
- 我们修复了以下 bug:在
Button
、Card
、IconButton
、TextButton
中,LongPress
触感反馈会触发多次 (Ia8b0f) AlertDialog
的用户体验变更 - 在大屏设备上,确认和关闭按钮现在更小。我们还增加了“确认”和“关闭”按钮下方的间距。(I4f066)- 我们更改了
SwipeToReveal
组件的操作按钮标签的动画规范。(Ib87fb) - 更改了
SwipeToReveal
,以便在显示文本的同时展开容器。(I44cf8) - 改进了
SwipeToReveal
,以便在滑动超过提交主要操作的阈值时执行触感反馈。(I23efe) - 我们更新了
SwipeToReveal
,默认情况下,主要操作和撤消操作会在文字溢出时显示省略号。(I71f5a) - 我们修复了导致
ButtonGroup
动画出现抖动的问题。(I63f8f) - 我们向
AnimatedText
添加了文本语义 (I6063c) - 对话框现在会在从组合项中移除后重置背景缩放(如果没有此修复,启动画面可能会保持缩小状态)(Id24ac)
- 我们为步进控件组件中的按钮添加了形状变形动画 (Id6ed3)
版本 1.0.0-alpha30
2024 年 12 月 11 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha30
。版本 1.0.0-alpha30 包含这些提交内容。
API 变更
- 重构了
TransformingLazyColumn
的scrollTransform
修饰符,这触发了 API 更改。(I0c6dc) - 我们更新了
IconToggleButtonShapes
和TextToggleButtonShapes
,使其具有两个不同的形状参数uncheckedPressed
和checkedPressed
(I85dbd) - 现在,使用
minDate
或maxDate
时,无效的月份/日期选项会显示在DatePicker
中,并带有新的invalidPickerContentColor
。(If4541) - 我们更新了
Stepper
API,以提供increaseIcon
和decreaseIcon
槽 - 您可以照常通过图标可组合项构建这些槽的内容。(Id35da) - 我们更新了
dynamicColorScheme
,移除了可选的defaultColorScheme
参数,现在会返回可为 null 的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
新提供了本地组合LocalTransformingLazyColumnItemScope
,Card
、Button
和ListHeader
现在会在放置在TransformingLazyColumn
中时使用该组合自动进行变形。调用方可以使用新的TransformExclusion
封装容器停用自动变形。(I1652f)- 我们已将
ButtonDefaults.shape
的类型更新为RoundedCornerShape
(Iccdf2)
bug 修复
- 我们修复了一个 bug,以尊重
TimeText
背景的现有 Alpha (I1eb60) - 我们在排版中默认将
TextMotion
设置为Animated
,以避免由于在缩放操作期间将字母字形贴靠到像素边界而导致文本抖动。(I626fa) - 我们更新了
ScrollIndicator
的外观,增加了宽度和间距大小,以提高可见度。(Ied7cb) - 我们修复了添加/移除/移动项时
Modifier.scrollTransform
出现的 bug。(I6830f) - 我们修复了短按圆形按钮时出现的动画问题(之前,系统并不总是遵循最短动画时长)。(I757a7)
- 我们已将
LevelIndicator
的扫描角度更新为 20%(即 72 度)。(Idde5c) - 我们修复了将
ScalingLazyColumn
与AutoCenteringParams
搭配使用时的ScrollIndicator
定位问题。(I387dd) - 我们更新了
ListHeader
和ListSubHeader
的颜色和排版。此外,还要调整CheckboxButton
和SwitchButton
上的切换开关控件的颜色。(I39817) - 我们使用
ContentPadding
修复了LazyColumn
和ScalingLazyColumn
中的ScrollIndicator
定位问题。(I2bc51) - 我们使用了新的
CircularProgressIndicatorContent
,修复了OpenOnPhoneDialog
进度动画中出现的 bug。(I3e443) - 我们更新了
HorizontalPagerScaffold
和VerticalPagerScaffold
,以便在启用“减少动作”时停用动画 (Iaaf68) - 我们为圆形进度指示器实现了单独的动画,以便在进度超过 100% 时显示。(I47135)
- 我们修复了以下 bug:在 Pager 组件中,
EdgeButton
可能会以不正确的形状绘制 (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
参数,从而简化了PagerState
的ScrollInfoProvider
。新行为是,TimeText
在水平和垂直分页时都保持原位。(I71767) - 当 Vibrator API 指示支持触感反馈时,
LocalHapticFeedback
现在会提供默认的HapticFeedback
实现。以下内容已添加到HapticFeedbackType
:Confirm
、ContextClick
、GestureEnd
、GestureThresholdActivate
、Reject
、SegmentFrequentTick
、SegmentTick
、ToggleOn
、ToggleOff
、VirtualKey
。现在,在提供长按处理程序后,Wear Compose 长按可点击组件(例如Button
、IconButton
、TextButton
和Card
)会执行LONG_PRESS
触感反馈。(I5083d)
bug 修复
- 我们更新了确认动作。(I04bff)
- 我们已将 Compose 库的最低 API 依赖项更新为 1.7.4。(I88b46)
- 为
OpenOnPhone
对话框添加了新动作。(I1e10a) - 修复了
LevelIndicator
中的一个 bug,现在它会在等级为零时正确显示。(Ie95a4) - 我们更新了
HorizontalPageIndicator
和VerticalPageIndicator
动画。(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 的AlertDialogContent
和Dialog
可组合项,以便您在必要时添加自定义内容(例如在保留推荐内容布局的同时自定义AlertDialog
动画)。此外,我们还向AlertDialogDefaults
的EdgeButton
、ConfirmButton
和DismissButton
成员添加了Modifier
和Color
参数。(I4eb71) - 我们对
Placeholder
API 进行了以下更新:将PlaceholderState.startPlaceholderAnimation
重命名为PlaceholderState.animatePlaceholder
、将PlaceholderState.isShowContent
重命名为PlaceholderState.isHidden
,并将PlaceholderDefaults.shape
重命名为PlaceholderDefaults.Shape
;将painterWithPlaceholderOverlayBackgroundBrush
中的painter
参数重命名为originalPainter
;将PlaceholderState.placeholderProgression
的公开范围更改为内部范围,并将其重命名为placeholderShimmerProgression
;向PlaceholderDefaults
添加了占位符动画时长常量。(Ie5a59) - 我们已更新
EdgeButton
API,具体如下:将ScreenScaffold
上的参数从bottomButton
重命名为edgeButton
;将EdgeButtonSize
设为值类。(Ieef15) - 我们已将 Wear Material3 Colors 类中的
copy()
的公开范围更改为“公开”(I0287f)
bug 修复
- 为
IconToggleButton
和TextToggleButton
添加了点击时的动画时长下限 (Ieb333) - 为
IconButton
和TextButton
形状动画添加了最短时长 (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
后,我们更新了ScreenScaffold
和ScrollIndicator
。(I0608b) EdgeButton
的preferredHeight
参数已重命名为buttonSize
,其值只能从新引入的EdgeButtonSize
值类中的 4 个常量中选择。(Icdd70)- 我们已将
ListSubheader
的命名更改为ListSubHeader
,并为ListHeader
和ListSubHeader
添加了可公开访问的默认值。(I96730) - 我们为 Wear 添加了新的
HorizontalPagerScaffold
和VerticalPagerScaffold
组件,它们可提供新的动画,并协调时间文本和页面指示器组件。(Iff7d0) - 我们为
HorizontalPagerScaffold
和VerticalPagerScaffold
添加了旋转支持,让用户能够使用旋转输入设备浏览页面浏览器。(I9770d) - 我们对
MotionScheme
API 进行了更改,以简化使用并提高一致性。移除了内嵌的 remember 函数,并将内置的 Motion 方案移到了专用的 MotionScheme 伴生对象。将standardMotionScheme
和expressiveMotionScheme
重命名为“标准”和“富有表现力”。(I5fd45) - 我们添加了对基于系统颜色的动态配色方案的支持。(I073e9)
- 我们已将步进器更新为最新的用户体验规范。(I622bb)
bug 修复
- 我们更新了卡片组件的排版和内边距。(I3ae48)
- 我们根据用户体验规范,将
AlertDialog
中“确认/关闭”按钮与其余内容之间的内边距从 8dp 更改为 12dp (Ie55f0) - 我们更新了滑块组件的颜色不透明度。(Idb383)
版本 1.0.0-alpha26
2024 年 10 月 2 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha26
。版本 1.0.0-alpha26 包含这些提交内容。
API 变更
- 我们更新了
HorizontalPageIndicator
的 API 和外观,并添加了VerticalPageIndicator
以便与VerticalPager
搭配使用 (Ic9309) AlertDialog
现在支持从按钮堆叠变体中省略默认底部按钮,适用于不需要 EdgeButton 的自定义布局。(I34fa9)- 我们为 Wear Material 3 添加了
SwipeToReveal
组件 (Ic38b2) - 我们在
SwipeToReveal
中添加了对双向滑动的支持,以应对当前屏幕不支持滑动关闭的极少数情况。默认情况下,仍仅在从右向左滑动时执行滑动展开操作,强烈建议遵循默认行为,以免与滑动关闭操作发生冲突。(Ifac04) - 我们已将
EdgeButton
的buttonHeight
参数重命名为preferredHeight
。(I4fab3) - Kotlin 版本已更新为 1.9 (I1a14c)
- 我们已将
OpenOnPhoneDialogDefaults.Icon
重命名为OpenOnPhoneDialogDefaults.OpenOnPhoneIcon
,以免与Icon
冲突(I0f391) - 我们在
LazyColumn
中添加了对ScrollIndicator
的支持。(Ia546a) - 我们更新了
TextToggleButton
和IconToggleButton
的默认值。(I7aaa9) - 我们简化了
Picker
和PickerGroup
API。(Id0653) - 我们添加了
CardDefaults.Shape
和CardDefaults.Height
,这两个令牌原本对使用该库的开发者而言是私有的。(I1594a、b/347649765) - 我们已将二进制分段圆形进度指示器的进度参数重命名为
segmentValue
。(Ib72d9) - 我们更新了滑块的颜色和布局。(Ic3eec)
bug 修复
- 我们更新了
openOnPhone
图标动画 (I66f85) - 我们现在在
Slider
、TimePicker
和DatePicker
中使用 Google Symbols 图标。(I46c7c) - 我们更新了
Confirmation
和OpenOnPhoneDialog
中的内边距。(Iaa82e)
版本 1.0.0-alpha25
2024 年 9 月 18 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha25
。版本 1.0.0-alpha25 包含这些提交内容。
API 变更
- 我们添加了不确定性圆形进度指示器。(I427a7)
- 我们为
CircularProgressIndicator
和SegmentedCircularProgressIndicator
添加了对进度溢出(进度大于 100%)的支持。当进度超过 1.0 时,系统会使用新的overflowTrack
颜色来指示这一点。(Iaaa3d) - 圆形
IconToggleButton
和TextToggleButton
现在支持新的形状动画变体,其中不同的形状代表已选中、未选中和按下状态。系统仍支持之前针对刚按下状态的动画形状变体。(I29f03) - 由于需要在
ScreenScaffold
中明确指定EdgeButton
高度,因此我们已移除对将EdgeButton
与Column
搭配使用的支持。(Ie353d) - 我们添加了对 Wear Compose
LazyColumn
的ScreenScaffold
支持(并为LazyColumnState
添加了ScrollInfoProvider
实现)。(Ib8d29) - 我们已将
LocalTextMaxLines
、LocalTextAlign
和LocalTextOverflow
合并为单个LocalTextConfiguration
本地组合,以便今后提供更可扩缩的解决方案。(I5edbc) - 我们添加了 arc-large 作为额外的类型尺寸,专用于屏幕顶部或底部的简短标题文本字符串,例如确认叠加层中。(I60e3e)
- 我们在 Button 中添加了默认值,以提供建议的大型和超大型图标大小和内容内边距。(I84675)
bug 修复
- 我们更新了
IconButton
和TextButton
的颜色。(I48324) - 我们已将基本按钮重载更改为垂直居中,以与其他重载保持一致。如需恢复之前的行为,请使用
RowScope
中的Modifier.align
。(I66e57)
版本 1.0.0-alpha24
2024 年 9 月 4 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha24
。版本 1.0.0-alpha24 包含这些提交内容。
API 变更
- 我们在 Material3 主题中添加了动效方案。库中的各个组件将使用此属性来应用动画规范,例如弹簧来实现富有表现力的动作。(I54ff3)
- 我们已向 Material3 库添加了
AppScaffold
和ScreenScaffold
组件,其中包括用于协调TimeText
和ScrollIndicator
的层次结构和转场功能。AppScaffold
提供了位于所有屏幕之上的顶级框架组件。因此,向AppScaffold
添加TimeText
可让其在屏幕之间滑动时保持原位。屏幕本身可以替换或隐藏时间文本。ScreenScaffold
为ScrollIndicator
提供一个槽,并在滚动时自动为滚动指示器添加动画效果,包括在闲置后超时隐藏滚动指示器。(I047d6) - 我们添加了采用新 Material3 设计的
ScrollIndicator
。滑块的大小固定为初始列表内容的大小,以避免在延迟加载内容到列表时出现大小变化。(Ic228d) - 我们更改了
ScrollAway
API,使ScreenStage
成为值类而非枚举类,以便日后根据需要添加其他阶段。(I48c93) - 我们添加了
EdgeButton
,这是一个独特的 Wear 专用按钮,其形状会沿着屏幕底部的曲线 (I16369) - 我们在
ScreenScaffold
中为底部按钮(例如EdgeButton
)添加了一个新槽位,该槽位将根据滚动内容显示和调整大小 (I032eb) - 我们添加了
Modifier.scrollTransform
和Modifier.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) - 我们向
TimeText
的text
函数添加了一个权重参数。如果 TimeText 由多个文本元素组成,则可以通过此属性控制空格的分配方式。(I36700) - 我们添加了
RadioButton
和SplitRadioButton
,这些组件通过组合 (Split)SelectableButton
和子单选按钮控件 (If7ae8) 简化了之前的 API - 我们添加了
CheckboxButton
和SplitCheckboxButton
,这些组件通过组合 (Split)ToggleButton
和子复选框控件 (Ia8f70) 简化了之前的 API - 我们添加了
SwitchButton
和SplitSwitchButton
,这些组件通过组合(Split)ToggleButton
和子开关控件来简化了以前的 API (I0d349) - 我们更新了
AnimatedText
文档,以说明超出行为。(Iff30a) - 我们添加了
ButtonGroup
来组合 2 个或 3 个按钮,以便按下按钮时产生协调的动画。(Ie27db) - 我们为
IconButton
和TextButton
添加了可选的形状动画,以便在按下时显示。(Iffca5) - 我们为
Button
、IconButton
、TextButton
、CompactButton
和EdgeButton
添加了额外的颜色变体FilledVariant
(I65fc3) - 我们向
ImageWithScrimPainter
添加了forcedSize
参数,这样按钮图片背景现在默认会保持其组件大小。设置forcedSize = null
时,系统会改用Painter.instrinsicSize
。(Ic57af) - 我们为按钮添加了长按功能 (Ib613d)
IconButton
和TextButton
还添加了长按支持。(I38891)- 为卡片添加了长按支持。(I305d5)
- 我们已将
LocalTextMaxLines
、LocalTextAlign
、LocalTextOverflow
添加为CompositionLocals
,并将其用作Text
的参数默认值。现在,CheckboxButton
、SwitchButton
、RadioButton
等组件可以使用组合本地变量来实现用户体验指南,但开发者可以根据需要替换这些参数。(Iab841) - 我们添加了
Placeholder
,以帮助在数据加载之前遮盖按钮和卡片等组件的内容。(I1a532) - 我们添加了
IconToggleButtonColors
和TextToggleButtonColors
,以替换现已移除的ToggleButtonColors
。(Ie0bf1)
bug 修复
- 我们更新了
Button
、FilledTonalButton
、OutlinedButton
、ChildButton
、CompactButton
,以使用新的CompositionLocals
LocalTextMaxLines
、LocalTextAlign
、LocalTextOverflow
来实现用户体验指南 - 开发者可以根据需要直接在 Text 上替换这些参数 (Ie51f7) - 我们已将
LevelIndicator
的默认描边宽度更改为6dp
,以将其与描边宽度为4dp
的ScrollIndicator
区分开来。(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 变更
- 我们更新了
ToggleButton
和RadioButton
API,以便配置已停用的颜色。(If13a7) - 我们为 Material3 添加了新的
CircularProgressIndicator
。(Ib3bd7)
bug 修复
- 我们修复了一个 bug,该 bug 会导致可选择的按钮在已选中时读出“点按两次即可切换”。(I7ed88)
版本 1.0.0-alpha22
2024 年 5 月 1 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha22
。版本 1.0.0-alpha22 包含这些提交内容。
API 变更
bug 修复
- 更新了所有集成演示,以使用新的
rotaryScrollable
修饰符。(I25090)
版本 1.0.0-alpha21
2024 年 4 月 17 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha21
。版本 1.0.0-alpha21 包含这些提交内容。
- 由于上一个版本存在导致源代码 jar 文件缺失的技术问题,因此触发了此版本。此版本没有任何新提交。
版本 1.0.0-alpha20
2024 年 4 月 3 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha20
。版本 1.0.0-alpha20 包含这些提交内容。
bug 修复
- 我们调整了按压状态和聚焦状态的涟漪 Alpha 值,以提高对比度。(I59f0a)
- 我们在
Button
、ToggleButton
和RadioButton
中为主标签和辅标签添加了间距,以适应对排版样式和行高所做的最新更改。(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) - 对
RadioButton
和SplitRadioButton
进行令牌化,并重构现有方法,通过添加缓存的颜色实例并将RadioButtonColors
和SplitRadioButtonColors
的方法设为内部方法,从而减少CompositionLocal
查找次数。(I02b33)
版本 1.0.0-alpha18
2024 年 2 月 21 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha18
。版本 1.0.0-alpha18 中包含这些提交内容。
API 变更
- 我们通过在内部创建缓存实例并减少
CompositionLocal
的使用,重构了CardColors
、ToggleButtonColors
和SplitToggleButtonColors
的默认模式。(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
的使用,重构了ButtonColors
、IconButtonColors
和TextButtonColors
的默认模式。(I5f51c) - 我们移除了组件专用颜色类中的
rememberUpdatedState
开销,并将颜色类中的访问器方法标记为内部方法。(If6571)
bug 修复
- 我们更新了
Modifier.minimumInteractiveComponentSize
以使用Modifier.node
。(Iba6b7)
版本 1.0.0-alpha16
2024 年 1 月 24 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha16
。版本 1.0.0-alpha16 中包含这些提交内容。
新功能
- 我们添加了
CompactButton
,它可以使用与 Button 相同的填充、填充色调和轮廓颜色。I05df0
API 变更
- 我们添加了
RadioButton
/SplitRadioButton
作为选择控件(例如单选按钮控件)的容器。这与现有的ToggleButton
不同,因为RadioButton
可选择(并在选择组内运行),而ToggleButton
可切换(且独立)。(I61275) - 为了与 Compose Material 3 库保持一致,我们将从 Wear Compose Material 3 库中移除
LocalContentAlpha
。(I49a0a) - 在其 API 中公开
MutableInteractionSource
的 Wear Material 和 Wear Material3 组件已更新,现在公开的可为 null 的MutableInteractionSource
,默认为 null。这里没有任何语义上的更改:传递 null 表示您不希望提取MutableInteractionSource
,并且它将在需要时在组件内创建。更改为 null 后,某些组件将永远不会分配MutableInteractionSource
,而其他组件仅在需要时才会延迟创建实例,从而提高这些组件的性能。如果您不使用传递给这些组件的MutableInteractionSource
,建议您改为传递 null。我们还建议您在自己的组件中进行类似的更改。(Ib90fc、b/298048146) - 在
wear:compose-material
和wear:compose-material3
库中添加了新的涟漪 API,该 API 取代了已废弃的rememberRipple
。此外,还添加了一个临时的CompositionLocal
LocalUseFallbackRippleImplementation
,以将 Material 组件还原为使用已废弃的rememberRipple/RippleTheme
API。此方法将在下一个稳定版本中移除,仅在您提供自定义RippleTheme
的情况下作为临时迁移辅助工具。如需了解迁移信息以及此次变更的更多背景信息,请访问 developer.android.com。 (af92b21) - 我们对
HorizontalPageIndicator
API 及其文档进行了细微改进。(I60efc) - 我们已将
ColorScheme
更新为不可变,这会降低单个颜色更新的效率,但会提高颜色的常规用法效率。之所以做出这项更改,是因为大多数应用不会将更新单个颜色作为主要用例。这仍然可行,但会比以前进行更多重组,进而显著减少通过所有 Material 代码进行的状态订阅量,并会影响更多标准用例的初始化和运行时开销。(Ibc2d6) - 更新了
ToggleButton
和SplitToggleButton
API,以允许自定义停用颜色。此外,Material Design 令牌现在用于颜色和排版值。(If087c) - 更新了按钮图片背景颜色,以使用 Material Design 令牌。(Iba215)
- 我们移除了点击处理,将
Checkbox
、Switch
和RadioButton
组件更改为仅显示。这些组件预计将在处理点击的(Split)ToggleButton
中使用,因此现在更明确地将这些组件标记为仅用于显示(不适合在 Wear 上单独使用)。(I2322e)
bug 修复
- 我们在 Wear Compose Material 3 中添加了用于时长和缓动效果的动作值的令牌。(I437cd)
- 我们修复了
ToggleButton
、SplitToggleButton
、Checkbox
、Switch
和RadioButton
中的 bug,以免重复播放无障碍功能播报(之前,语义角色重复了)。(Ica281) - 我们移除了
CompactButton
的 materialcore 层,以提高性能。(7902858)
版本 1.0.0-alpha15
2023 年 11 月 15 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha15
。版本 1.0.0-alpha15 中包含这些提交内容。
API 变更
- 我们已将“基础”级别
SwipeToDismissBox
重命名为BasicSwipeToDismissBox
。这样可以更清晰地区分 Foundation 级组件和 Material3 级SwipeToDismissBox
。后者会从MaterialTheme
中提取颜色以用于遮罩,并将其余实现委托给BasicSwipeToDismissBox
。(Ibecfc)
bug 修复
- 我们移除了 Material3 按钮的 material-core 层,以提高性能。(I55555)
版本 1.0.0-alpha14
2023 年 10 月 18 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha14
。版本 1.0.0-alpha14 中包含这些提交内容。
API 变更
- 我们已从 Material3
HorizontalPageIndicator
中移除indicatorStyle
参数,改为采用设备屏幕形状(线性或圆形)。(I83728) - 我们添加了新的
SplitToggleButtonColors
类,将SplitToggleButton
的颜色与ToggleButton
的颜色分离开来。(I78bee)
版本 1.0.0-alpha13
2023 年 10 月 4 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha13
。版本 1.0.0-alpha13 中包含这些提交内容。
API 变更
版本 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) - 我们已将
CheckboxColors
、RadioButtonColors
、SwitchColors
的构造函数设为公开。(I82b73)
版本 1.0.0-alpha11
2023 年 9 月 6 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha11
。版本 1.0.0-alpha11 中包含这些提交内容。
bug 修复
- 我们将 Material3 卡片的排版更新为
TitleMedium
。(I597bd) - 我们更新了 Material3
ListHeader
和ListSubheader
的排版和对齐方式。(Ib5ceb)
版本 1.0.0-alpha10
2023 年 8 月 23 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha10
。版本 1.0.0-alpha10 中包含这些提交内容。
新功能
- 在 Wear Material3 库中添加了
HorizontalPageIndicator
。(Ifee99)
API 变更
- 更新了按钮代码,以使用 Material3 设计令牌。(I92fe4)
- 将 Wear Material 3 步进器和滑块 API 声明为实验性 API,因为界面细节仍在最终确定中。(I84d54)
- 我们已从第
TextButton
轮和第TextToggleButton
轮中移除ExtraSmall
大小,因为该大小仅适用于IconButton
。(Ibc7d5)
bug 修复
- 我们更新了 TextToggleButton 的排版指南,以便使用 LabelLarge 作为 LargeButtonSize 的值 (Ib10fa)
- 我们更新了 TextButton 排版指南,以便使用 LabelLarge 作为 LargeButtonSize 的字体 (I8f3a7)
- 为方便用户访问,我们已将卡片的最小触摸目标设置为 48dp。(Ieb9b1)
- 添加了包含图片的 AppCard 演示,移除了包含背景的 AppCard 演示 (Id735f)
- 修复了圆形按钮中修饰符未正确链接的 bug。(I5e162)
版本 1.0.0-alpha09
2023 年 8 月 9 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha09
。版本 1.0.0-alpha09 中包含这些提交内容。
新功能
- 我们为 material3 添加了
ToggleButton
(I6bed6)
API 变更
- 我们已将
FloatRange
注解作为 API 限制条件启用,如之前在注释中所述。(Icb401) - 我们更新了 Wear Material3 的排版,以符合最新的 Material3 准则。(I1bad6)
bug 修复
版本 1.0.0-alpha08
2023 年 7 月 26 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha08
。版本 1.0.0-alpha08 中包含这些提交内容。
新功能
- 我们为 Material3 添加了以下选择控件:
Switch
、Checkbox
、RadioButton
。(Ib918c) - 我们向 Material3 添加了
IconToggleButton
和TextToggleButton
,这两个圆形切换按钮分别有一个用于图标和文本的槽位。对于不同大小的ToggleButton
,我们建议使用Modifier.touchTargetAwareSize
并采用相应切换按钮中提供的大小。(I9f015) - 我们向 Material3 组件添加了
ListHeader
和ListSubheader
。(Ibaefe) - 我们添加了 Material3
SwipeToDismissBox
,它会调用新的 FoundationSwipeToDismissBox
并提供其主题中的默认颜色值。(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)
bug 修复
- 现在,按钮会根据需要调整其高度,以容纳因无障碍功能而增大字体的文本内容 (Iaf302)
- 我们更新了多个按钮演示,以解决无障碍问题。(I61ce9)
Stepper
和InlineSlider
现在支持长按多次点击,这样您就可以通过按住 + 或 - 按钮来快速增加/减少Stepper
和InlineSlider
的值 (I27359)
版本 1.0.0-alpha07
2023 年 6 月 21 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha07
。版本 1.0.0-alpha07 中包含这些提交内容。
新功能
- 我们已将
Stepper
组件添加到 Compose for Wear OS Material 3 库中。这与之前的 Material 版本类似,但根据开发者反馈,默认会省略范围语义。我们在需要范围语义的情况下提供Modifier.rangeSemantics
。(Ic39fd) - 我们已将
curvedText
添加到 Compose for Wear OS Material 3 库中。(Ia8ae3)
bug 修复
- 我们已将
wear.compose.foundation
更新为wear.compose.material3
的 API 依赖项 (I72004、b/285404743)
版本 1.0.0-alpha06
2023 年 6 月 7 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha06
。版本 1.0.0-alpha06 中包含这些提交内容。
bug 修复
- 我们更新了
TextButton
,以使用toDisabledColor
扩展函数来获取正确的停用 Alpha 值。(I814c8)
版本 1.0.0-alpha05
2023 年 5 月 24 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha05
。版本 1.0.0-alpha05 中包含这些提交内容。
新功能
- 我们向 Material3 添加了
TextButton
,这是一个圆形按钮,有一个用于文本的槽位。对于不同大小的TextButton
,我们建议使用TextButtonDefaults
中提供的Modifier.touchTargetAwareSize
和ExtraSmallButtonSize
、SmallButtonSize
、DefaultButtonSize
和LargeButtonSizeIcon
。默认的TextButton
没有边框,并且具有透明背景,适用于强调度较低的操作。对于需要高强调度的操作,请使用filledTextButtonColors
;对于中等强调度的轮廓TextButton
,请将边框设置为ButtonDefaults.outlinedButtonBorder
;对于介于轮廓和填充之间的中间效果,请使用filledTonalTextButtonColors
。(I667e4) - 我们已将
Card
、OutlinedCard
、AppCard
和TitleCard
添加到 Wear Compose Material3 库中。您还可以使用CardDefaults.outlinedCardColors
和CardDefaults.outlinedCardBorder
为AppCard
和TitleCard
设置轮廓外观(I80e72)
API 变更
- 我们已将按钮标签参数移至末尾以支持尾随 lambda 语法,并移除了角色参数(因为此参数可以使用
Modifier.semantics
替换)。ButtonColors
构造函数现在是公共的。(Ie1b6d)
版本 1.0.0-alpha04
2023 年 5 月 10 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha04
。版本 1.0.0-alpha04 中包含这些提交内容。
新功能
- 我们在 Material3 中添加了
IconButton
,这是一个圆形按钮,有一个用于放置图标/图片的槽位。有四种变体:IconButton
、FilledIconButton
、FilledTonalIconButton
和OutlinedIconButton
。对于不同大小的IconButton
,我们建议使用IconButtonDefaults
中提供的Modifier.touchTargetAwareSize
和ExtraSmallButtonSize
、SmallButtonSize
、DefaultButtonSize
和LargeButtonSizeIcon
。我们还提供了IconButtonDefaults.iconSizeFor
,用于确定给定按钮大小的建议图标大小。(I721d4)
版本 1.0.0-alpha03
2023 年 4 月 19 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha03
。版本 1.0.0-alpha03 中包含这些提交内容。
API 变更
- 我们添加了 Material 3 按钮组件,这是我们的体育馆形按钮,在 Wear Compose Material 库中以前称为条状标签(已重命名为按钮,以与 Compose Material 3 库保持一致)。默认按钮具有填充的背景,并且有
FilledTonal
(柔和的背景)、轮廓(透明且带有细边框)和子按钮(透明背景且无边框,用于显示最不显眼的辅助操作)等按钮变体。适用于简单图标和文本内容的圆形按钮将在未来的版本中推出。Ia6942
版本 1.0.0-alpha02
2023 年 4 月 5 日
发布了 androidx.wear.compose:compose-material3:1.0.0-alpha02
。版本 1.0.0-alpha02 中包含这些提交内容。
bug 修复
- 我们向 Wear Compose Material 3 添加了一个
DefaultTextStyle
,该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 版本包含以下对象的早期功能性实现:
我们将继续并行开发 Wear Material (
androidx.wear.compose:compose-material
) 和 Wear Material 3 (androidx.wear.compose:compose-material3
)。未来的 material3 版本将扩展 widget 集,以包含 Compose for Wear OS 中的其他熟悉的组件,例如按钮、选择器和滑块。Wear Material 库和 Wear Material 3 库是互斥的,不应在同一应用中混用,这主要是因为它们引用不同的主题,这会导致意外的不一致性。