Wear Compose
最新更新 | 稳定版 | 候选版本 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 9 月 4 日 | 1.4.0 | - | - | 1.5.0-alpha01 |
声明依赖项
要添加对 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-alpha24
2024 年 9 月 4 日
androidx.wear.compose:compose-material3:1.0.0-alpha24
已发布。版本 1.0.0-alpha24 包含这些提交。
API 更改
- 我们在 Material3 主题中添加了一个 Motion 方案。库中的组件将使用它来应用动画规范(例如弹簧),以实现富有表现力的运动。(I54ff3)
- 我们在 Material3 库中添加了
AppScaffold
和ScreenScaffold
组件,这些组件包括协调TimeText
和ScrollIndicator
的分层和过渡的功能。AppScaffold
提供了位于所有屏幕顶部的脚手架组件的顶层。因此,将TimeText
添加到AppScaffold
使其在屏幕之间滑动时保持原位。屏幕本身可以覆盖或隐藏时间文本。ScreenScaffold
为ScrollIndicator
提供了一个插槽,并在滚动时自动为滚动指示器设置动画,包括在不活动后隐藏滚动指示器的超时。(I047d6) - 我们添加了
ScrollIndicator
,它具有新的 Material3 设计。它具有基于初始列表内容的固定拇指大小,以避免在将惰性内容加载到列表中时出现大小变化。(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
和子单选按钮控件来简化以前的 API。(If7ae8) - 我们添加了
CheckboxButton
和SplitCheckboxButton
- 这些组件通过组合 (Split)ToggleButton
和子复选框控件来简化以前的 API。(Ia8f70) - 我们添加了
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
等组件可以使用组合本地值来实现 UX 指导,但如果需要,开发人员可以覆盖这些参数。(Iab841) - 我们添加了
Placeholder
以帮助在加载数据之前屏蔽按钮和卡片等组件的内容。(I1a532) - 我们添加了
IconToggleButtonColors
和TextToggleButtonColors
来替换现已删除的ToggleButtonColors
。(Ie0bf1)
错误修复
- 我们已更新
Button
、FilledTonalButton
、OutlinedButton
、ChildButton
、CompactButton
以使用新的CompositionLocals
LocalTextMaxLines
、LocalTextAlign
、LocalTextOverflow
来实现 UX 指导 - 如果需要,开发人员可以直接在 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)
错误修复
- 我们修复了一个错误,该错误导致可选择按钮在已选中时宣布双击切换。(I7ed88)
版本 1.0.0-alpha22
2024 年 5 月 1 日
androidx.wear.compose:compose-material3:1.0.0-alpha22
已发布。版本 1.0.0-alpha22 包含 这些提交。
API 更改
错误修复
- 更新所有集成演示以使用新的
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)
- 我们已在
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) - 我们已将参数名称从
onSelected
更新为onSelect
,适用于RadioButton
。(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)
错误修复
- 我们已更新
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。还建议您在您自己的组件中进行类似的更改。(Ib90fc,b/298048146) - 在
wear:compose-material
和wear:compose-material3
库中添加了新的波纹 API,它取代了已弃用的rememberRipple
。还添加了一个临时的CompositionLocal
,LocalUseFallbackRippleImplementation
,以将 Material 组件恢复为使用已弃用的rememberRipple/RippleTheme
API。这将在下一个稳定版本中删除,并且仅旨在作为您提供自定义RippleTheme
情况下的临时迁移辅助工具。有关迁移信息和此更改背后的更多背景信息,请参阅 developer.android.com。(af92b21) - 我们对
HorizontalPageIndicator
api 及其文档进行了细微改进。(I60efc) - 我们已更新
ColorScheme
以使其不可变,这使得单个颜色更新效率降低,但使更常见的颜色使用效率更高。此更改背后的原因是,大多数应用程序不会将更新单个颜色作为主要用例。这仍然是可能的,但它将比以前重新组合更多,反过来,我们显着减少了所有材料代码中的状态订阅量,并将影响更标准用例的初始化和运行时成本。(Ibc2d6) - 更新了
ToggleButton
和SplitToggleButton
API 以允许自定义禁用颜色。此外,现在使用 Material Design 令牌用于颜色和排版值。(If087c) - 更新了 Button 图像背景颜色以使用 Material Design 令牌。(Iba215)
- 我们已将
Checkbox
、Switch
和RadioButton
组件更改为仅显示,方法是删除点击处理。这些组件预计将在处理点击的(Split)ToggleButton
中使用,因此这些组件现在更清楚地指示为仅显示(并且不打算在 Wear 上独立使用)。(I2322e)
错误修复
- 我们在 Wear Compose Material 3 中添加了持续时间和缓动动画的运动值的令牌。(I437cd)
- 我们修复了
ToggleButton
、SplitToggleButton
、Checkbox
、Switch
和RadioButton
中的一个错误,以便不会重复辅助功能公告(以前,语义角色是重复的)。(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 更改
版本 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 包含以下提交。
错误修复
- 我们更新了 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 更改
- 更新 Buttons 代码以使用 Material3 设计令牌。(I92fe4)
- 由于用户界面的详细信息仍在最终确定中,因此将 Wear Material 3 Stepper 和 Slider API 声明为实验性。(I84d54)
- 我们已从圆形
TextButton
和TextToggleButton
中删除了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 包含以下提交。
新功能
- 我们已为 Material 3 添加了
ToggleButton
(I6bed6)
API 更改
- 我们已将
FloatRange
注解作为 API 约束启用,此前这些约束是在注释中说明的。(Icb401) - 我们已更新了 Wear Material 3 的排版,使其符合最新的 Material 3 指南。(I1bad6)
错误修复
版本 1.0.0-alpha08
2023年7月26日
androidx.wear.compose:compose-material3:1.0.0-alpha08
已发布。 版本 1.0.0-alpha08 包含以下提交。
新功能
- 我们已为 Material 3 添加了以下选择控件:
Switch
、Checkbox
、RadioButton
。(Ib918c) - 我们已将
IconToggleButton
和TextToggleButton
添加到 Material 3 中,它们分别是带有一个图标插槽和一个文本插槽的圆形切换按钮。对于不同尺寸的ToggleButton
,我们建议使用Modifier.touchTargetAwareSize
以及各个切换按钮中提供的尺寸。(I9f015) - 我们已将
ListHeader
和ListSubheader
添加到我们的 Material 3 组件中。(Ibaefe) - 我们已将 Material 3
SwipeToDismissBox
添加到 Wear Compose 中,它调用新的 FoundationSwipeToDismissBox
并从其主题提供默认颜色值。(I275fb) - 我们已将 Material 3
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)
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)
错误修复
- 我们已更新
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 包含以下提交。
错误修复
- 我们已更新
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
添加到 Material 3 中,它是一个带有一个文本插槽的圆形按钮。对于不同尺寸的TextButton
,我们建议使用Modifier.touchTargetAwareSize
以及TextButtonDefaults
中提供的ExtraSmallButtonSize
、SmallButtonSize
、DefaultButtonSize
和LargeButtonSizeIcon
。默认的TextButton
没有边框,并且具有透明背景,适用于低强调操作。对于需要高强调的操作,请使用filledTextButtonColors
;对于中等强调的带边框TextButton
,请将边框设置为ButtonDefaults.outlinedButtonBorder
;对于带边框和填充之间的中间地带,请使用filledTonalTextButtonColors
。(I667e4) - 我们已将
Card
、OutlinedCard
、AppCard
和TitleCard
添加到 Wear Compose Material 3 库中。AppCard
和TitleCard
也可以使用CardDefaults.outlinedCardColors
和CardDefaults.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
添加到 Material 3 中,它是一个带有一个图标/图像插槽的圆形按钮。共有四种变体:IconButton
、FilledIconButton
、FilledTonalIconButton
和OutlinedIconButton
。对于不同尺寸的IconButton
,我们建议使用Modifier.touchTargetAwareSize
以及IconButtonDefaults
中提供的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 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 版本包含以下早期功能实现
我们将继续并行开发 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-alpha01
2024 年 9 月 4 日
androidx.wear.compose:compose-*:1.5.0-alpha01
已发布。版本 1.5.0-alpha01 包含 以下提交。
API 更改
- 我们在 Wear Compose Foundation 库中添加了一个新的
LazyColumn
,以及相关的LazyColumnState
和LazyColumnScope
API。这为使用 Wear Compose 构建可自定义的缩放和变形效果奠定了基础。(Ib3b22) - 我们已将
itemsIndexed
的索引版本添加到LazyColumnScope
中,作为新的LazyColumn
API 的一部分。(Ib4a57) - 我们添加了
LazyColumn
修饰符以支持缩放和变形行为。(Ie229a) HierarchicalFocusCoordinator
已提升至稳定版本。(I31035)- 我们添加了对弯曲文本的字间距支持。(I3c740)
- 向
CurvedLayout.curvedComposable
添加了一个rotationLocked
参数,以停止组件旋转。(I66898) - 已移除 Wear Material 和 Wear Material 3 中的临时
LocalUseFallbackRippleImplementation
API (I62282) - 从
@WearPreviewDevices
多预览中删除了WearDevices.SQUARE
(I11c02)
错误修复
SwipeToReveal
现在将显示的项目定位在屏幕的可见部分,这在SwipeToReveal
用于列表中时很有帮助,因此项目始终可交互且永远不会超出屏幕。(I38929)SwipeToReveal
现在在animatedTo
完成后将lastActionType
重置为 None。(I59b03)- 改进了
curvedComposable
上新的rotationLocked
参数的文档。(Ifbd57) - 修复了将
NaN
传递给ScalingLazyColumnSnapFlingBehavior
的performFling
时发生的崩溃。(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 以来重要的更改
ScalingLazyColumn
和Picker
现在默认支持旋转输入 - 建议删除显式旋转处理并使用默认系统行为。如有必要,请使用rotaryScrollableBehavior
参数配置滚动或捕捉行为 - 对于捕捉行为,建议使用flingBehavior
参数提供捕捉行为和触摸滚动功能。Modifier.rotaryScrollable
是一个新的修饰符,它将旋转事件与可滚动容器连接起来,允许用户使用其 Wear OS 设备上的表冠或旋转边框进行滚动。SwipeDismissableNavHost
现在为应用内过渡提供进入动画。PositionIndicator
现在在首次显示屏幕时默认显示。
其他更改
- 有关版本 1.3.0 中引入的更改的更完整列表,请参阅 beta01 发行说明。
版本 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) - 我们修复了一个
ProgressIndicator
在TalkBack
下重复其公告的问题。(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 设备上的表冠或旋转边框进行滚动。此外,ScalingLazyColumn
和Picker
现在默认支持旋转输入。使用rotaryScrollableBehavior
参数配置滚动或捕捉行为。对于捕捉行为,建议也通过flingBehavior
参数提供捕捉以进行触摸滚动。 SwipeDismissableNavHost
现在为应用内过渡提供进入动画。PositionIndicator
现在在首次显示屏幕时默认显示。SelectableChip
和SplitSelectableChip
已作为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 snapOffset
中snapOffset
参数的类型从 Int 更改为 Dp。(Iddebe) - 我们已将
SplitSelectableChip
上的clickInteractionSource
参数重命名为containerInteractionSource
。(Ia8f84) - 我们已更新
SplitSelectableChip
的点击回调参数名称 - 从onClick
到onSelectionClick
,以及从onBodyClick
到onContainerClick
。(I32237)
错误修复
- 我们已将
PositionIndicator
的水平填充更新为 2dp(之前为 5dp),以修复PositionIndicator
(滚动条)与可滚动内容重叠的错误。请注意,由于填充更改,此更改预计会破坏包含PositionIndicator
的现有屏幕截图。(I57472) - 我们改进了新旋转 API 的文档,描述了低分辨率和高分辨率旋转设备之间的区别。(I63abe)
- 我们解决了
SwipeDismissableNavHost
中的超出范围异常,该异常可能在插值 alpha 值小于零时触发。(Ib75a1,b/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
的拖动和抛掷来源正被UserInput
和SideEffect
替换,以适应这些来源的扩展定义,这些来源现在包括动画(副作用)以及鼠标滚轮和键盘(用户输入)。(I40579)- 我们添加了
SelectableChip
和SplitSelectableChip
,以便更清楚地区分诸如Switch/Checkbox
之类的切换控件和诸如RadioButton
之类的可选控件。这将之前添加的ToggleChip/SplitToggleChip
带有selectionControl
参数的重载替换。(Ia0217) - 将
ProgressIndicatorDefaults
中IndeterminateStrokeWidth
的可见性修饰符更新为 public。(I5b5a4)
版本 1.4.0-alpha06
2024 年 4 月 3 日
androidx.wear.compose:compose-*:1.4.0-alpha06
已发布。版本 1.4.0-alpha06 包含 这些提交。
错误修复
- 我们添加了旋转支持的内部草稿,作为将旋转行为从 Horologist 迁移到 AndroidX 的更大工作的一部分。(I617d1)
- 我们添加了触觉支持的内部草稿,作为将旋转行为从 Horologist 迁移到 AndroidX 的更大工作的一部分。(I5568a)
版本 1.4.0-alpha05
2024 年 3 月 20 日
androidx.wear.compose:compose-*:1.4.0-alpha05
已发布。版本 1.4.0-alpha05 包含 这些提交。
API 更改
- 我们使
ScalingLazyListState
的initialCenterItemIndex
和initialCenterItemScrollOffset
属性成为 public。(I0c616) - 我们使
ProgressIndicatorDefaults
中的FullScreenStrokeWidth
成为 public。(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 更改
- 我们为
ToggleChip
和SplitToggleChip
添加了一个新的重载,该重载采用selectionControl
参数而不是toggleControl
参数。这应该与RadioButton
控件一起使用,以便为辅助功能提供可选语义而不是可切换语义 (I1d6d9) - 我们更新了
ToggleChip
和SplitToggleChip
的新selectionControl
重载的参数名称,从onSelected
更新为onSelect
(I1a971)
版本 1.4.0-alpha03
2024年2月21日
androidx.wear.compose:compose-*:1.4.0-alpha03
已发布。版本 1.4.0-alpha03 包含这些提交。
API 更改
Modifier.inspectable
包装器已弃用。此 API 将比必要时创建更多修饰符的无效化,因此现在不鼓励使用它。如果开发人员希望将修饰符属性公开给工具,则鼓励他们在ModifierNodeElement
上实现inspectableProperties()
方法。(Ib3236)
错误修复
- 我们修复了
WearPreview*
注释的文档错误。(Id526d)
版本 1.4.0-alpha02
2024年2月7日
androidx.wear.compose:compose-*:1.4.0-alpha02
已发布。版本 1.4.0-alpha02 包含这些提交。
错误修复
- 我们修复了滑动以显示中的错误,在该错误中,可以通过开始滑动另一个项目来与一个项目的已提交操作进行交互(并取消)。(Ide059)
- 我们更新了
ListHeader
,以便在内容需要额外高度以适应大字体大小时支持高度调整。(I7290c,b/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-material
和wear:compose-material3
库中添加了一个新的波纹 API,它取代了已弃用的rememberRipple
。还添加了一个临时的CompositionLocal
,LocalUseFallbackRippleImplementation
,以将 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 内。 - 我们修复了
ToggleButton
、SplitToggleButton
、Checkbox
、Switch
和RadioButton
中的一个错误,以便不再重复辅助功能公告(以前,语义角色是重复的)。(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 工作流程(例如从已配置主题应用颜色)则单独处理。SwipeToRevealCard
和SwipeToRevealChip
类可帮助您实现推荐的滑动显示指南
。SwipeToRevealSample
类演示了如何使用这些组件。我们在 1.3.0-alpha02 版本中引入了一项更改,导致
Chip
和ToggleChip
对象的高度增加,以便更好地支持用户选择的字体缩放。这可能会导致某些裁剪。为了解决此问题,MaterialTheme
的large
形状现在使用更大的圆角半径(26 dp 而不是 24 dp)。Chip
和ToggleChip
对象使用此新的圆角半径来避免裁剪 Chip 和ToggleChip
角落上的内容。- 大多数
Chips
和ToggleChips
保持不变,因为它们默认高度为 52 dp。但是,包含多行主要或次要标签文本或已覆盖高度的Chip
和ToggleChip
对象可能会导致屏幕截图测试失败。
- 大多数
其他更改
有关 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
的大型形状以使用 26dp 圆角半径,并且 Chip 和ToggleChip
现在将使用它。此更改是必要的,以便在内容需要额外高度以适应大型字体大小时支持高度调整,否则,现有的体育场形状会裁剪某些文本内容。此更改可能会导致屏幕截图测试中断。(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 包括以下新功能
SwipeToDismissBoxState
、SwipeToDismissValue
和Modifier.edgeSwipeToDismiss
已从androidx.wear.compose.material
迁移到androidx.wear.compose.foundation
,以及BasicSwipeToDismissBox
中的基础滑动关闭实现。这允许滑动关闭的手势处理独立于 Material Design 使用,例如来自androidx.wear.compose.navigation
中的SwipeDismissableNavHost
。仍然建议将来自androidx.wear.compose.material
的SwipeToDismissBox
与 Material Design 一起使用,因为它会从MaterialTheme
中提取颜色,然后将其余实现委托给BasicSwipeToDismissBox
。SwipeDismissableNavHost
现在支持一个新的userSwipeEnabled
参数,以便可以关闭不需要的屏幕的滑动处理。BasicSwipeToDismissBox
使用HierarchicalFocusCoordinator
改进了焦点处理。SwipeToReveal
在 Material 中具有新的SwipeToRevealCard
和SwipeToRevealChip
可组合项,它们遵循Card
和Chip
的推荐 UX 指南。它还支持辅助操作的撤消。DefaultTextStyle
现在关闭字体填充,以确保在整个 Android 平台上保持一致。Chip
和ToggleChip
现在会调整其高度以适应由于辅助功能的大字体而增大的内容。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
类替换为使用SwipeToRevealPrimaryAction
、SwipeToRevealSecondaryAction
和SwipeToRevealUndoAction
可组合项的基于插槽的 API。请参阅示例代码,了解如何使用新 API 的示例。(Ia8943) - 我们已将
PositionIndicator
动画标志替换为AnimationSpec
参数。可以通过将snap
作为AnimationSpec
传递来禁用各个动画。(I6c523)
错误修复
- 我们修复了一个由大小受限时的有限曲线文本触发的错误(I50efe)
- 我们解决了与
curvedComposable
相关的潜在 NaN 崩溃问题(I970eb) - 我们已恢复
PositionIndicator
上的位置更改高亮动画的移除。(Ieb424) - 我们已删除了材质芯片的材质核心层,以提高其性能。(If2dcb)
1.3.0-alpha08 版本
2023年10月18日
发布了 androidx.wear.compose:compose-*:1.3.0-alpha08
。 1.3.0-alpha08 版本包含这些提交。
API 更改
- 我们在
PositionIndicator
的重载方法中添加了单独的标志,用于控制不同的动画:showFadeInAnimation
、showFadeOutAnimation
和showPositionAnimation
。之前的 API 已经被弃用,并转发调用到新的 API。出于性能和 UX 一致性的考虑,当PositionIndicator
与可滚动列表一起使用时,我们建议关闭showFadeInAnimation
和showPositionAnimation
标志。如果PositionIndicator
用作独立指示器,例如音量变化,则建议将所有 3 个动画都打开。(I44294) - 我们已弃用 Material 的
SwipeToDismissBoxState
、SwipeToDismissValue
和edgeSwipeToDismiss
,因为滑动删除功能已迁移到wear.compose.foundation
。请替换为wear.compose.foundation
中的等效项。(Iee8c9)
错误修复
- 我们已更新了 Wear Compose Foundation、Material 和 Navigation 库的基本配置文件。(Idb060)
- 我们已回退了先前 CL 中引入的
PositionIndicator
的行为更改,该更改导致在首次显示屏幕时对PositionIndicator
进行动画处理。我们计划在 1.4 的早期 alpha 版本中进行类似的更改,以便PositionIndicator
最初显示,但没有任何动画。(I41843) - 我们已解决
PositionIndicator
中的一些性能问题。(I1c654,b/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
中添加了单独的标志,用于控制不同的动画:showFadeInAnimation
、showFadeOutAnimation
和showPositionAnimation
。之前的 API 已经被弃用,并转发调用到新的 API。出于性能和 UX 一致性的考虑,当PositionIndicator
与可滚动列表一起使用时,我们建议关闭showFadeInAnimation
和showPositionAnimation
标志。如果PositionIndicator
用作独立指示器,例如音量变化,则建议将所有 3 个动画都打开。(Ia2d63)
错误修复
- 我们改进了滑动显示动作,为主要操作文本添加了淡入动画,并在完全滑动展开时淡出次要操作/更改图标比例。(Ib7223)
- 建议使滑动显示操作可访问,我们已在滑动显示示例中添加了自定义辅助功能操作。(I42224)
- 我们改进了
SwipeToDismissBox
的性能,包括重构以确保初始逻辑不会触发重新组合。SwipeToDismissBox
现在绘制为全屏大小。(Ie0aa2) - 我们修复了一个
PositionIndicator
错误消失的错误。(I2091a) - 通过优化重新组合提高了
PositionIndicator
的性能。随后添加了用于控制动画的新标志(fadeIn
、fadeOut
和positionChange
)(请参阅 API 更改)(Ifac7d) - 我们为
PositionIndicator
添加了微基准测试。(Idf875)
版本 1.3.0-alpha06
2023年9月20日
androidx.wear.compose:compose-*:1.3.0-alpha06
已发布。版本 1.3.0-alpha06 包含这些提交。
错误修复
- 我们为
SwipeToReveal
添加了对Modifier.edgeSwipeToDismiss
的支持。(I95774,b/293444286) - 我们为 Material 的
SwipeToRevealChip
和SwipeToRevealCard
添加了示例。(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 包含这些提交。
错误修复
版本 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) - 我们现在在
PositionIndicator
、ProgressIndicator
和SelectionControls
中使用drawWithCache
来优化笔划分配。(I5f225,b/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 文件以注释兼容性抑制。(I8e87a,b/287516207)
- 我们使
Chip
、CompactChip
和ToggleChip
的高度常量变为公共。(Idbfde) - 我们使
Chip
和CompactChip
的水平和垂直填充变为公共。(Ieeaf7) - 添加了通过新的
userSwipeEnabled
参数关闭SwipeDismissableNavHost
中滑动处理的功能。(Id2a0b,b/230865655) - 我们已更新 Wear Compose Navigation 库以使用 Wear Compose Foundation 中的新
SwipeToDismissBox
。(I4ff8e)
错误修复
- 我们修复了一个 z 顺序错误,其中
expandedItem
在单击按钮的行为后没有显示正确的内容,当它们有按钮时。(I1899d,b/289991514) - 使用
HierarchicalFocusCoordinator
改进了SwipeToDismissBox
(以及SwipeDismissableNavHost
)的焦点处理。(I45362,b/277852486) - 我们修复了
SwipeableV2
中的手势处理。(I89737) - 我们已完成 1.2 版本的基本配置文件。(Id5740)
- 在将
SwipeToDismissBox
迁移到 Foundation 后,Material 的SwipeToDismissBox
实现现在转发到 Foundation 并从其主题提供默认颜色值。(If8451) - 我们已将标题语义添加到
ListHeader
。(Ic5420) Chip
和ToggleChip
现在将调整其高度以适应由于辅助功能的大字体而增大的内容(如果需要)。(Iaf302)- 修复了
SplitToggleChip
的可点击区域的语义角色错误,以实现辅助功能。(Ieed3a) - 减少运动设置现在会关闭占位符上的闪烁效果和擦除动作。(I91046)
Stepper
和InlineSlider
现在支持长按重复点击,以便您可以通过按住 + 或 - 按钮快速增加/减少Stepper
和InlineSlider
的值。(I27359)
版本 1.3.0-alpha01
2023年6月21日
androidx.wear.compose:compose-*:1.3.0-alpha01
已发布。 版本 1.3.0-alpha01 包含这些提交。
错误修复
- 如
1.2.0-alpha07
和1.2.0-alpha10
中宣布的那样,我们现在正在更改DefaultTextStyle
以关闭字体填充,使其在整个 Android 平台上保持一致。这将解决某些情况下大字体大小文本裁剪的问题,也可能影响屏幕布局,因此需要更新屏幕截图测试。例如,我们在这里看到文本裁剪(Ic6a86)
- 关闭字体填充后,它不再存在。
- 我们已更新
wear.compose.foundation
,使其成为wear.compose.material
的 API 依赖项(I72004,b/285404743) - 我们在
SwipeToDismissBox
中修复了一个错误。背景和内容键现在传递给 remember 块,以便在内容或背景更改时创建新的修饰符。(Ib876c,b/280392104) - 我们已更新
TimeText
,以便在选择 12 或 24 小时制格式时使用区域设置。(If4a3d) - 我们修复了
SwipeToDismissBox
contentScrimColor
默认参数中的不一致问题。(I2d70f) - 我们改进了
SwipeToReveal
中的运动处理。(I28fb7)
已知问题
- 支持用户配置的字体大小是可访问性要求。我们知道,当以较大的字体大小显示时,多行芯片会导致文本裁剪,因此我们将在 1.3 alpha 的早期版本中更新芯片,以在这些情况下进行高度调整。
版本 1.2
版本 1.2.1
2023年10月18日
androidx.wear.compose:compose-*:1.2.1
已发布。 版本 1.2.1 包含这些提交。
错误修复
- 修复了
PositionIndicator
错误消失时的错误。(7a167f)
版本 1.2.0
2023年8月9日
androidx.wear.compose:compose-*:1.2.0
已发布。 版本 1.2.0 包含这些提交。
自 1.1.0 以来重要的更改
- 适用于 Wear OS 1.2.0 的 Compose 稳定版本(阅读更多)
- 有关 Wear Compose 1.2 中关键更改的列表,请参阅以下版本的发布说明(适用于 Wear OS 1.2 的 Compose Beta01)
版本 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 foundation 和 material 库的基本配置文件(I4725d)
- 我们修复了
SwipeToDismissBox
contentScrimColor
参数默认值中的不一致问题(I2d70f) - 我们修复了用于
IncludeFontPadding
设置的DefaultTextStyle
默认值(I737ed)
版本 1.2.0-beta01
2023年5月24日
androidx.wear.compose:compose-*:1.2.0-beta01
已发布。 版本 1.2.0-beta01 包含这些提交。
适用于 Wear OS 1.2 的 Compose 中的新功能
适用于 Wear OS 的 Compose 1.2-beta01 版本表明此版本的库功能完整且 API 已锁定(除非标记为实验性)。Wear Compose 1.2 包括以下新功能
expandableItem
和expandableItems
是两个新的Foundation
组件,支持在ScalingLazyColumn
中展开项目。使用expandableItem
用于单个可展开项目,例如文本,其中包含多行。使用expandableItems
用于一组可展开项目,并使用expandableButton
简化创建在内容展开后折叠的按钮。HierarchicalFocusCoordinator
- 此实验性可组合组件允许将组合的子树标记为启用焦点或禁用焦点。Picker
- API 现在包含userScrollEnabled
以控制选择器是否对用户滚动处于活动状态。PickerGroup
- 一个新的可组合组件,用于一起处理多个选择器。它使用HierarchicalFocusCoordinator
API 在选择器之间处理焦点,并启用选择器项目的自动居中。Placeholder
- 我们对闪烁和“擦除”动画进行了更新。现在,当内容准备就绪时,会立即应用擦除效果。ScalingLazyColumn
- 我们已将ScalingLazyColumn
和关联的类从androidx.wear.compose.material.ScalingLazyColumn
迁移到androidx.wear.compose.foundation.lazy.ScalingLazyColumn
。请更新以使用Foundation.Lazy
版本。SwipeToReveal
- 我们添加了对滑动以显示的实验性支持,作为访问辅助操作的一种方式,补充了现有的“长按”模式。Stepper
- 现在有一个带有附加enableRangeSemantics
参数的重载,以方便禁用默认范围语义。Previews
- 我们添加了以下自定义注释,用于在 Wear 屏幕上预览可组合组件:WearPreviewSmallRound
在小型圆形设备上预览可组合组件;WearPreviewLargeRound
在大型圆形设备上预览可组合组件;WearPreviewSquare
在方形设备上预览可组合组件。此外,还有以下和多预览注释:WearPreviewFontScales
在具有多个字体大小的 Wear 设备上预览可组合组件,而WearPreviewDevices
在不同的 Wear 设备上预览可组合组件。- 我们在 Wear Compose 中添加了一个
DefaultTextStyle
,它将PlatformTextStyle.includeFontPadding
属性的默认值设置为 true(这是当前设置)。这将使我们能够在 1.3 alpha 的早期版本中同步关闭默认字体填充 - 有关更多信息,请参阅 1.2.0-alpha10。
新功能
- 我们添加了对在 reduce_motion 设置开启时禁用缩放和淡入淡出动画的实验性支持。(I58024)
错误修复
- 改进了
CurvedSize.kt
中angularWidthDp
的文档(Iab75c) SwipeDismissableNavHost
现在记录一条警告,其中包含空回退堆栈的潜在原因。这样做是为了防止由于在回退堆栈为空时引发的IllegalArgumentException
而导致的意外崩溃。(I04a81,b/277700155)
版本 1.2.0-alpha10
2023年5月10日
androidx.wear.compose:compose-*:1.2.0-alpha10
已发布。 版本 1.2.0-alpha10 包含这些提交。
新功能
- 我们添加了对滑动以显示的支持,作为访问辅助操作的一种方式。此模式补充了“长按”模式,这是用户揭示(不同)辅助操作的现有方式。(I60862)
API 更改
- 我们在
SwipeToReveal
中的 action 可组合组件中添加了RevealScope
,它可以访问揭示附加操作的偏移量。(I3fd56)
错误修复
- 修复了在抛掷后
ScalingLazyColumn
在 Wear API 33 上卡住的问题(Ic4599) - 我们对
PositionIndicator
进行了一些性能改进,以减少卡顿。(I35e92) - 我们修复了 Chip 和
CompactChip
中的一个错误,其中语义角色不再设置为Role.Button
。(I93f91,b/277326264)
已知问题
我们发现 Android Studio 中的一个错误,导致在使用 @WearPreviewDevices 和 @WearPreviewFontScales 进行注释时渲染预览失败 - 计划很快发布修复程序。请注意,其他 Wear 预览注释在 Android Studio Giraffe 2022.3.1 及更高版本中按预期工作。
在版本 1.2.0-alpha07 中,我们在 Wear Compose 中添加了 DefaultTextStyle,将现有的 PlatformTextStyle.includeFontPadding 值保留为 true - 有关背景信息,请参阅 修复 Compose 中的字体填充。我们将更改 DefaultTextStyle 以在 1.3 alpha 的早期版本中关闭字体填充,以使整个 Android 平台保持一致。这将解决某些情况下大字体大小文本裁剪的问题,也可能影响屏幕布局,因此需要更新屏幕截图测试。例如,在大字体大小下,我们在这里看到文本裁剪
- 关闭字体填充后,它不再存在。
现在可以通过覆盖主题中的排版来采用新设置 - 请参阅 示例代码。
版本 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) - 当在
Button
、CompactButton
、Chip
、CompactChip
和ToggleButton
中使用主要颜色作为背景时,我们已将默认禁用的内容颜色更新为背景。这提高了辅助功能的对比度。(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) - 为使用
TestNavHostController
的SwipeDismissableNavHostTest
添加了更多测试。(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
嵌套在水平滚动的页面中。(Iec3f8,b/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
ScalingLazyColumn
的PositionIndicator
api 已弃用 - 请更新到Foundation.Lazy ScalingLazyColumn
。此外,anchorType
字段已添加到ScalingLazyListLayoutInfo
中。(I29d95) ScalingLazyColumn
在 Wear Compose Material 包中已被标记为已弃用。(I16d34)- 我们已更新了
ScrollAway
修饰符以使用 Wear ComposeFoundation.Lazy
中的ScalingLazyListState
,并弃用了使用 Wear Compose Material 中的ScalingLazyListState
的重载。(Ifc42c) - 我们已更新了 Dialog API 以使用
Foundation.Lazy
中的ScalingLazyListState
,并弃用了使用 MaterialScalingLazyListState
的重载。(Ic8960) - 我们已更新了 Picker API 以使用
Foundation.Lazy
中的ScalingParams
,并弃用了使用 MaterialScalingParams
的重载。(Idc3d8)
错误修复
- 我们修复了一个错误,该错误导致
ScalingLazyListState.centerItemIndex
中出现不必要的重新组合,方法是确保它仅在值实际更改时才推送更新。(Ia9f38) - 我们改进了
SwipeToDismissBox
的性能。(I3933b) - 为 Wear Compose Foundation 中的
ScalingLazyColumn
添加了基准测试。(Ie00f9) - 我们已更新了 Material 中一些内部
ScalingLazyColumn
类的方法,以使用Foundation.Lazy
中的等效方法。(I38aab) - 我们修复了 Picker 测试中的一些问题,并添加了更多测试以检查带有偏移量的滚动。(I6ac34)
- 我们将
ScalingLazyColumn
集成演示迁移为依赖Foundation.Lazy
而不是 MaterialScalingLazyColumn
。(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
)时为每个帧运行布局传递。这可能会影响断言布局动画单个帧的测试。(I8ea08,b/222093277)。 - 参数
minLines
已添加到 Wear Text 中,以便与BasicText
保持一致的行为(I24874)。 CompactChipTapTargetPadding
已公开,以便它出现在文档中(If1e70,b/234119038)。
错误修复
- 禁用
wear.compose
包的多平台构建(Iad3d7)。 - 修复
scrollToOption
的 kdocs(I6f9a0)。 PlaceholderState.rememberPlaceholderState()
已更新为使用rememberUpdatedState
,以便如果onContentReady
lambda 发生变化,状态也会更新。(I02635,b/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 的列表项的LazyListState
和ScalingLazyListState
的处理,以避免除以零错误。(Ic28dd)。
版本 1.1
版本 1.1.2
2023 年 2 月 8 日
androidx.wear.compose:compose-foundation:1.1.2
、androidx.wear.compose:compose-material:1.1.2
和 androidx.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.1
、androidx.wear.compose:compose-material:1.1.1
和 androidx.wear.compose:compose-navigation:1.1.1
已发布。 版本 1.1.1 包含以下提交。
错误修复
PlaceholderState.rememberPlaceholderState()
已更新为使用rememberUpdatedState
,以便如果onContentReady
lambda 发生变化,状态也会更新。(I02635,b/260343754)。
版本 1.1.0
2022年12月7日
androidx.wear.compose:compose-foundation:1.1.0
、androidx.wear.compose:compose-material:1.1.0
和 androidx.wear.compose:compose-navigation:1.1.0
已发布。 版本 1.1.0 包含以下提交。
自 1.0.0 以来的重要更改
- 适用于 Wear OS 1.1.0 的 Compose 稳定版发布(阅读更多)。
- 有关 Wear Compose 1.1 中关键更改的列表,请参阅以下版本说明(适用于 Wear OS 1.1 的 Compose Beta01)。
新功能
- 我们更新了实验性的占位符功能,以便在内容准备就绪时立即应用“擦除”效果,而不是等待下一个动画循环开始。我们还对闪烁和擦除动画进行了一些更新。(I5a7f4)。
错误修复
- 我们已将
OutlinedButton/OutlinedCompactButton
的默认边框宽度从 2.dp 更改为 1.dp,以匹配最终的 UX 规范。(Icf84d)。 - 为了减少添加到空
ScalingLazyColumn
的第一个项目看起来滚动到位的效果,我们在内容为空时添加了一个估计的autoCentering topPadding
。此更改通过假设初始项目的高度为 0.dp 来计算顶部填充量。对于ScalingLazyListAnchorType.ItemStart
,这将计算正确的顶部填充,对于ScalingLazyListAnchorType.ItemCenter
,此计算将不正确,因为需要项目的实际高度才能正确调整内容大小,从而导致基于项目实际高度的小幅滚动到位效果。(I239a4)。 - 我们更新了应用于
SwipeToDismiss
动画的背景遮罩,以匹配 Wear 平台。(I9003e)。 - 我们修复了
PositionIndicator
对大小为 0 的列表项的LazyListState
和ScalingLazyListState
的处理,以避免除以零错误。(Ic28dd)。
版本 1.1.0-rc01
2022年11月9日
androidx.wear.compose:compose-foundation:1.1.0-rc01
、androidx.wear.compose:compose-material:1.1.0-rc01
和 androidx.wear.compose:compose-navigation:1.1.0-rc01
已发布。 版本 1.1.0-rc01 包含以下提交。
错误修复
- 我们为
Placeholders
、ScrollAway
、RadioButton
、Switch
、Checkbox
、OutlinedButton
、OutlinedCompactButton
、OutlinedChip
和OutlinedCompactChip
添加了基线配置文件规则。(I8249c)。 - 我们修复了
Modifier.scrollAway
中的一个错误,以便如果指定的itemIndex
无效(例如,如果该项目索引超出范围),则TimeText
现在仍将显示。(I2137a)。 - 我们更新了
SwipeToDismissBox
动画以匹配平台实现。在初始挤压动画之后,一旦触发了解除,屏幕现在会向右滑动。(I41d34)。 - 作为优化,我们更新了
Modifier.scrollAway
以仅在测量块内读取scrollState
,以避免在每次重新测量后重新组合修饰符。(I4c6f1)。 - 我们添加了文档和示例到占位符中,以显示将
Modifier.placeholder
和Modifier.placeholderShimmer
应用于同一可组合项时的正确顺序。(Ie96f4,b/256583229)。 - 我们已将
OutlinedCompactChip/OutlinedChip
的默认边框宽度从 2.dp 更改为 1.dp,以匹配最终的 UX 规范。(Ib3d8e)。 - 我们修复了
rememberPickerState
中的一个错误,其中未保存更新的输入,因此在输入发生更改后可组合项未更新。(I49ff6,b/255323197)。 - 我们对占位符进行了一些 UI 更新,1) 将闪烁渐变更改为屏幕大小的 1.5 倍,2) 添加闪烁进度的缓动(三次贝塞尔曲线),以及 3) 加快擦除动画速度(250 毫秒)。(Id29c1)。
- 我们修复了占位符 wipeOff 效果中的一个 UI 错误,其中芯片和卡片背景由于未考虑组件在屏幕上的位置而略微过早地擦除。(I2c7cb)。
- 我们更新了占位符背景绘制,使其尽可能地合并颜色而不是分层,从而降低了不同裁剪图层 Alpha 混合导致底层颜色在占位符背景边缘渗透的风险。(I2ea26)。
- 我们纠正了
ScalingLazyListState.centerItemIndex/centerItemOffset
的计算,以便如果两个项目位于视口中心线的两侧,则最靠近的那个将被视为centerItem
。(I30709,b/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-beta01
、androidx.wear.compose:compose-material:1.1.0-beta01
和 androidx.wear.compose:compose-navigation:1.1.0-beta01
已发布。 版本 1.1.0-beta01 包含以下提交。
Wear OS 1.1 版 Compose 中的新增功能
Wear OS 1.1 版 Compose 的 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 添加了一种新的轮廓样式,以及新的OutlinedChip
和OutlinedButton
可组合函数,它们提供了一个带有细边框的透明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
,它根据滚动状态垂直滚动项目进出视图(带有与Column
、LazyColumn
和ScalingLazyColumn
一起使用的重载方法)。ScrollAway
通常用于在用户开始向上滚动项目列表时将TimeText
滚动出视图。CurvedText/TimeText
- 在CurvedTextStyle
中添加了对fontFamily
、fontStyle
和fontSynthesis
的支持,可在curvedText
和basicCurvedText
上使用。CurvedText/TimeText
- 在CurvedTextStyle
的构造函数和复制方法中添加了fontWeight
。ToggleControls
- 添加了动画Checkbox
、Switch
和RadioButton
切换控件,可与ToggleChip
和SplitToggleChip
一起使用。这些控件可以替代ToggleChipDefaults
提供的静态图标(switchIcon
、checkboxIcon
和radioIcon
)。- Placeholder - 添加了实验性的占位符支持。这具有三种不同的视觉效果,旨在协同工作。
- 首先是在 Chip 和 Card 等容器中使用的占位符背景画刷效果,在等待内容加载时绘制在正常背景之上。
- 其次是一个修饰符(
Modifier.placeholder()
),用于在正在加载的内容顶部绘制一个体育场形状的占位符小部件。 - 第三个是修饰符渐变/闪烁效果(
Modifier.placeholderShimmer()
),它绘制在其他效果的顶部,以指示用户我们正在等待数据加载。- 所有这些效果都设计为协调一致,并以协调的方式闪烁和擦除。
- 核心 Compose 依赖项从 1.2 更新到 1.3。
API 更改
- 字体参数(
fontFamily
、fontWeight
、fontStyle
和fontSynthesis
)现在可以直接作为curvedText
的参数指定(Idc422)。
错误修复
curveText
和basicCurvedText
现在可以与 Talkback 正确配合使用(它们具有与其关联的适当大小和放置(但为空)的 compose-ui 节点,使用文本作为内容描述)(I7af7c,b/210721259)。- 修复了当
PickerState.repeatedItems = false
时Picker
的错误,以便在 Picker 的内部ScalingLazyColumn
上显式设置自动居中参数,以确保可以将第零个选项滚动到视图的中心。(I8a4d7)。
版本 1.1.0-alpha07
2022 年 10 月 5 日
androidx.wear.compose:compose-foundation:1.1.0-alpha07
、androidx.wear.compose:compose-material:1.1.0-alpha07
和 androidx.wear.compose:compose-navigation:1.1.0-alpha07
已发布。版本 1.1.0-alpha07 包含这些提交。
新功能
- 我们添加了实验性的占位符支持。这具有三种不同的视觉效果,旨在协同工作。首先是在 Chip 和 Card 等容器中使用的占位符背景画刷效果,在等待内容加载时绘制在正常背景之上。其次是一个修饰符(
Modifier.placeholder()
),用于在正在加载的内容顶部绘制一个体育场形状的占位符小部件。第三个是修饰符渐变/闪烁效果(Modifier.placeholderShimmer()
),它绘制在其他效果的顶部,以指示用户我们正在等待数据加载。所有这些效果都设计为协调一致,并以协调的方式闪烁和擦除。(I3c339)。
API 更改
- 添加了对
fontWeight
、fontFamily
、fontStyle
和fontSynthesis
在CurvedTextStyle
中的支持,可在curvedText
和basicCurvedText
上使用。这些参数可用于指定在弯曲文本上使用的字体和样式。(Iaa1a8),(I72759)。 - 更新了
Modifier.scrollAway
的偏移参数为 Dp,以与Modifier.offset
保持一致(之前以像素为单位)。此外,为了提高效率,将其重构为LayoutModifier
。(I9f94b)。 - 作为新的切换控件 API 的一部分,我们已将
RadioButton
的circleColor
重命名为ringColor
。(I28fa9)。 - 我们添加了动画
Checkbox
、Switch
和RadioButton
切换控件,可与ToggleChip
和SplitToggleChip
一起使用。这些控件可以替代ToggleChipDefaults
提供的静态图标(switchIcon
、checkboxIcon
和radioIcon
)。(I8a8c4)。
版本 1.1.0-alpha06
2022 年 9 月 21 日
androidx.wear.compose:compose-foundation:1.1.0-alpha06
、androidx.wear.compose:compose-material:1.1.0-alpha06
和 androidx.wear.compose:compose-navigation:1.1.0-alpha06
已发布。版本 1.1.0-alpha06 包含这些提交。
新功能
- 我们添加了
Modifier.scrollAway
,它根据滚动状态垂直滚动项目进出视图(带有与Column
、LazyColumn
和ScalingLazyColumn
一起使用的重载方法)。ScrollAway
通常用于在用户开始向上滚动项目列表时将TimeText
滚动出视图。(I61766)。
错误修复
PositionIndicator
现在的位置和大小已调整,使其仅占用所需的空间。例如,如果向其添加语义信息,Talkback 现在会获取屏幕上PositionIndicator
的正确边界。(Ie6106,b/244409133)。
版本 1.1.0-alpha05
2022 年 9 月 7 日
androidx.wear.compose:compose-foundation:1.1.0-alpha05
、androidx.wear.compose:compose-material:1.1.0-alpha05
和 androidx.wear.compose:compose-navigation:1.1.0-alpha05
已发布。版本 1.1.0-alpha05 包含这些提交。
错误修复
- 已向
InlineSlider
和Stepper
添加了按钮角色,以便 Talkback 可以识别它们为按钮。(Icb46c,b/244260275)。 - 我们已更正了 Scaffold 中位置和页面指示器的 z 顺序。指示器现在将位于晕影的顶部,因此如果存在晕影,则不会被晕影遮挡。(Ib988f,b/244207528)。
版本 1.1.0-alpha04
2022 年 8 月 24 日
androidx.wear.compose:compose-foundation:1.1.0-alpha04
、androidx.wear.compose:compose-material:1.1.0-alpha04
和 androidx.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-alpha03
、androidx.wear.compose:compose-material:1.1.0-alpha03
和 androidx.wear.compose:compose-navigation:1.1.0-alpha03
已发布。版本 1.1.0-alpha03 包含这些提交。
新功能
- 我们为
Chips
和Buttons
添加了一种新的轮廓样式,以及新的OutlinedChip
和OutlinedButton
组合项,它们提供了一个带有细边框的透明Chip/Button
。(Id5972)
API 更改
- 添加了用于修改按钮形状的重载函数(Icccde)
错误修复
- 我们修正了
ToggleChip
的切换控件区域的大小,因为它与UX规范不匹配。UX规范要求标签和24x24.dp切换控件图标区域之间有4.dp的间隔,总宽度为28.dp。但是,实现错误地提供了36x24.dp的切换控件区域。这导致占用8.dp的可用文本标签区域。注意:此错误修复为文本标签提供了额外的空间,因此可能会(积极地)影响溢出文本的文本布局。如果您有包含ToggleChips
的屏幕截图测试,则可能需要更新。(I514c8,b/240548670)
版本 1.1.0-alpha02
2022年7月27日
androidx.wear.compose:compose-foundation:1.1.0-alpha02
、androidx.wear.compose:compose-material:1.1.0-alpha02
和androidx.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)
- 我们修复了一个错误,该错误可能在滚动时出现某些抛掷行为导致除以零。(I86cb6)
- 修复了
ChipDefaults.childChipColor()
中的一个错误,以确保禁用背景颜色完全透明。(I2b3c3,b/238057342)
版本 1.1.0-alpha01
2022年6月29日
androidx.wear.compose:compose-foundation:1.1.0-alpha01
、androidx.wear.compose:compose-material:1.1.0-alpha01
和androidx.wear.compose:compose-navigation:1.1.0-alpha01
已发布。版本 1.1.0-alpha01 包含这些提交。
API 更改
- Picker的
contentDescription
参数现在仅用于选定的Picker选项,并接受一个可为空的字符串(之前,需要传递一个从选项到内容描述的映射,但仅使用选定的选项)。(Ife6a7) - 我们对Picker进行了辅助功能改进,以便可以使用屏幕阅读器导航多选器屏幕,并且内容描述是可访问的(I64edb)
错误修复
- 我们更新了与Wear Compose库打包的基本配置文件规则(I9c694)
- 我们修正了从右到左模式下Chips渐变的方向。以前是从左上到右下,现在是从右上到左下。(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) - 我们添加了一个背景颜色(
MaterialTheme.color.surface
)到具有渐变背景的Chip/ToggleChips
后面,以确保在极不可能的情况下使用浅色背景时它们也能正确显示。(Ibe1a4,b/235937657) - Picker项现在始终居中对齐,修复了将
gradientRatio
设置为零会导致对齐方式发生变化的错误。(I712b8)
版本 1.0
版本 1.0.2
2022 年 9 月 7 日
androidx.wear.compose:compose-foundation:1.0.2
、androidx.wear.compose:compose-material:1.0.2
和androidx.wear.compose:compose-navigation:1.0.2
已发布。版本 1.0.2 包含这些提交。
错误修复
- 我们已更正了 Scaffold 中位置和页面指示器的 z 顺序。指示器现在将位于晕影的顶部,因此如果存在晕影,则不会被晕影遮挡。(Ib988f,b/244207528)。
版本 1.0.1
2022 年 8 月 24 日
androidx.wear.compose:compose-foundation:1.0.1
、androidx.wear.compose:compose-material:1.0.1
和androidx.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.0
、androidx.wear.compose:compose-material:1.0.0
和androidx.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)
- 我们修复了一个错误,该错误可能在滚动时出现某些抛掷行为导致除以零。(I86cb6)
- 修复了
ChipDefaults.childChipColor()
中的一个错误,以确保禁用背景颜色完全透明。(I2b3c3,b/238057342)
版本 1.0.0-rc02
2022年6月22日
androidx.wear.compose:compose-foundation:1.0.0-rc02
、androidx.wear.compose:compose-material:1.0.0-rc02
和androidx.wear.compose:compose-navigation:1.0.0-rc02
已发布。版本 1.0.0-rc02 包含这些提交。
错误修复
- 我们修正了从右到左(RTL)模式下Cards渐变的方向。以前是从左上到右下,现在是从右上到左下。(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) - 我们添加了一个背景颜色(
MaterialTheme.color.surface
)到具有渐变背景的Chip/ToggleChips
后面,以确保在极不可能的情况下使用浅色背景时它们也能正确显示。(Ibe1a4,b/235937657) - 我们更新了与Wear Compose库打包的基本配置文件规则(I9c694)
版本 1.0.0-rc01
2022年6月15日
androidx.wear.compose:compose-foundation:1.0.0-rc01
、androidx.wear.compose:compose-material:1.0.0-rc01
和androidx.wear.compose:compose-navigation:1.0.0-rc01
已发布。版本 1.0.0-rc01 包含这些提交。
API 更改
- Compose库中的接口现在使用jdk8默认接口方法构建(I5bcf1)
错误修复
- 我们删除了对列表标题中
fillMaxWidth()
的显式调用,因为它不需要,如果ScalinglazyColumn
混合使用ListHeader()
和Chip()
组件,则可能会导致问题,因为宽度会随着ListHeader
项的滚动进出视图而增大/缩小。(I37144,b/235074035) - 我们修复了
ScalingLazyColumn
中的一个错误,该错误可能导致列表项在滚动之前无法正确绘制,前提是第0个列表项足够大(包括填充)(Ic6159,b/234328517) - 当项目到达屏幕边缘时,我们对
ScalingLazyColumn
的缓动进行了少量调整,以匹配UX规范更新。旧值CubicBezierEasing(0.25f, 0.00f, 0.75f, 1.00f)
-> 新值CubicBezierEasing(0.3f, 0f, 0.7f, 1f)
。要保留旧的行为,您可以覆盖ScalingLazyColumn
的scalingParams
(Ie375c) - 我们已向
CompactChip
添加了填充,以确保其点击目标大小至少为48.dp高,以满足Material辅助功能指南。这可能会影响您使用CompactChips
的任何布局,因为它们将占用额外的空间。(I3d57c)
版本 1.0.0-beta03
2022年6月1日
androidx.wear.compose:compose-foundation:1.0.0-beta03
、androidx.wear.compose:compose-material:1.0.0-beta03
和androidx.wear.compose:compose-navigation:1.0.0-beta03
已发布。版本 1.0.0-beta03 包含这些提交。
新功能
- 我们使
ScalingLazyColumn
在Compose@Preview
模式下工作。(I3b3b6,b/232947354)
API 更改
- 我们将
ScalingLazyColumn.horizontalAlignment
属性的默认值从Start更改为CenterHorizontally
,以确保当列表项未填充列的整个宽度时,它们将对齐以获得最大的可见性。要切换回以前的行为,请设置horizontalAlignment = Alignment.Start
。(I9ed4b)
已知问题
- CompactChip 的点击/触摸高度小于 Material 可访问性指南。此问题将在下一个版本(6月15日)中修复。如果您正在使用 CompactChip,这将影响您的布局,因为 CompactChip 现在将在顶部和底部添加额外的填充。请调整和测试您的布局,或查看错误评论以获取使用现有行为的解决方法。(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-beta02
、androidx.wear.compose:compose-material:1.0.0-beta02
和 androidx.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()
(I60a2c,b/232206371)
错误修复
CurvedTextStyle
构造函数现在也支持接收TextStyle
中的fontWeight
(这可能会在 API 的未来版本中添加到构造函数和复制方法中)(Ieebb9)- 边缘滑动改进。当使用
Modifier.edgeSwipeToDismiss
并从边缘区域触发向左滑动时,当滑动方向更改为向右时,它不再触发滑动以关闭。以前,可以通过向左滑动然后向右滑动来触发滑动以关闭。(I916ea) HorizontalPageIndicator
现在最多显示屏幕上的 6 页。如果总页数超过 6 页,则会在左侧或右侧显示一个半尺寸指示器,并在页面之间平滑过渡。(I2ac29)- 改进了
ScalingLazyColumn
和Picker
的默认捕捉行为(I49539) - 边缘滑动改进。当使用
Modifier.edgeSwipeToDismiss
时,只有当第一次触摸落在边缘并向右滑动时,才会触发滑动以关闭。以前,如果滚动到达起始位置,则可以从屏幕的任何部分触发滑动以关闭。(I8ca2a)
版本 1.0.0-beta01
2022年5月11日
androidx.wear.compose:compose-foundation:1.0.0-beta01
、androidx.wear.compose:compose-material:1.0.0-beta01
和 androidx.wear.compose:compose-navigation:1.0.0-beta01
已发布。版本 1.0.0-beta01 包含这些提交。
Wear OS Compose 1.0 版本新增功能
Wear OS Compose 的 1.0.0-beta01
版本标志着一个重要的里程碑,因为该库的功能已完成并且 API 已锁定。
1.0 版本中包含的 Wear Compose Material 组件包括
- Material 主题 - 用作移动版 Compose
MaterialTheme
的替代品,提供用于在可穿戴设备上构建组件的颜色、形状和排版,这些组件开箱即用地实现了 Wear Material Design UX 指南。 Button
、CompactButton
和ToggleButton
- Button 提供单个插槽以容纳图标、图像或简短文本(最多 3 个字符)。形状为圆形,并为默认、大或小按钮推荐尺寸。CompactButton
提供单个插槽以容纳任何内容(图标、图像或文本),并且形状为圆形,背景尺寸为超小。CompactButton
具有围绕背景的可选项透明填充,可增加可点击区域。ToggleButton
是一个按钮,它提供一个插槽来容纳任何内容(简短文本、图标或图像),并且具有开/关(选中/未选中)状态,并带有颜色和不同的图标以显示是否选中。- 卡片 - 用于显示应用程序信息(例如通知)。灵活的设计适用于不同的用例,
AppCard
和TitleCard
提供不同的布局并支持图像作为卡片内容或背景。 - 芯片 - 形状类似于按钮的体育场形组件,但具有更大的区域和多个插槽,允许标签、辅助标签和图标。具有不同的尺寸并支持图像作为背景。
- ToggleChips 和 SplitToggleChips - 带有选中/未选中状态的芯片,并添加了
ToggleControl
插槽以显示图标(例如开关或单选按钮)以显示组件的选中状态。此外,SplitToggleChip
具有两个可点击区域,一个可点击,一个可切换。 - CircularProgressIndicator - Wear Material 进度指示器,具有两种变体。第一个表示正在进行的任务的完成比例,并支持圆形轨道在开始和结束角度之间的间隙。第二个表示未指定等待时间的未确定进度。
- curvedText - 构成用于描述
CurvedLayouts
的 DSL 的一部分,以及curvedRow
和curvedColumn
,以便在圆形设备周围布局组件。有关CurvedLayout
和CurvedModifier
的更多详细信息,请参阅下面的 Wear Component Foundation(它在非弯曲世界中的修饰符中发挥类似的作用,并允许配置布局、填充、渐变等的各个方面)。 - 对话框、警报和确认 - 对话框显示一个全屏对话框,覆盖任何其他内容,并支持滑动以关闭。它占用一个插槽,该插槽预计将是固定意见的 Wear Material 对话框内容,例如警报或确认。警报是固定意见的对话框内容,具有图标、标题和消息插槽。它具有两种重载:并排显示两个否定和肯定按钮,或一个或多个垂直堆叠的芯片插槽。确认是固定意见的对话框内容,用于在给定持续时间内显示消息。它具有图标或图像插槽(可以是动画的)。
- HorizontalPageIndicator - 以适合可穿戴设备外形的方式显示水平页面位置。旨在占据整个屏幕,并在圆形设备上显示弯曲指示器。可与 Accompanist 页面查看器一起使用。
- 图标 - Wear 对图标的实现,它从 Wear Material 主题获取颜色和 alpha。对于可点击的图标,请参阅按钮或芯片。
- Picker - 显示一个可滚动的项目列表,从中进行选择。默认情况下,项目将沿两个方向“无限”重复。可以以只读模式显示以隐藏未选中的选项。
- PositionIndicator - 以适合可穿戴设备外形的方式显示滚动位置或其他位置指示。旨在占据整个屏幕,并在圆形设备上显示弯曲指示器。
- Scaffold - 实现基本的 Wear Material Design 可视化布局结构。此组件提供一个 API 来组合多个 Wear Material 组件(例如
TimeText
、PositionIndicator
和Vignette
),构建屏幕,确保为它们提供正确的布局策略,并收集必要的数据,以便这些组件能够协同工作。 - ScalingLazyColumn - 一个滚动缩放/鱼眼列表组件,它是 Wear Material Design 语言的关键部分。为内容项提供缩放和透明度效果。
ScalingLazyColumn
旨在能够处理可能大量的内容项,这些内容项仅在需要时才具体化和组合。 - Slider - 允许用户从一系列值中进行选择。选择范围显示为条形,可以选择显示分隔符。
- Stepper - 一个全屏组件,允许用户使用屏幕顶部和底部的增加/减少按钮从一系列值中进行选择,中间有一个用于文本或芯片的插槽。
- SwipeToDismissBox - 处理滑动以关闭手势。它为背景(仅在滑动手势期间显示)和前景内容提供单个插槽。可以通过使用
SwipeDismissableNavHost
与 androidx 导航库组合使用(请参阅下面的 Wear Compose 导航库)。 - Text - Wear 对 Compose Material Text 组件的实现,从 Wear Material 主题获取颜色和 alpha。
- TimeText - 用于在屏幕顶部显示时间和应用程序状态的组件。通过在圆形屏幕上使用弯曲文本来适应屏幕形状。
Vignette - 用于 Scaffold 中的屏幕处理,当使用可滚动内容时,会模糊屏幕的顶部和底部。
以下组件也包含在 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,
curvedRow
和curvedColumn
可以嵌套在CurvedLayout
内以根据需要布局元素。对于curvedRow
,可以指定角布局方向和径向对齐。对于curvedColumn
,可以指定角对齐和径向方向。CurvedModifier - 所有弯曲组件都接受一个修饰符参数,该参数可以使用
CurvedModifier
创建:支持背景、大小、权重和填充。以下组件也包含在 Wear Compose Navigation 中
SwipeDismissableNavHost - 在 Compose 层次结构中提供一个位置以进行自包含导航,向后导航由滑动手势提供。内容显示在
SwipeToDismissBox
内,显示当前导航级别。在滑动以关闭手势期间,前一个导航级别(如果有)将在背景中显示。有关已交付内容的更多详细信息,请参阅以前的 Alpha 版本的发行说明。
API 更改
- 添加了
CurvedModifier.padding*
函数。这些函数用于指定在弯曲组件周围添加的额外空间。(I4dbb4) - 删除了
CompositionLocal
内部类(I42490) - 我们添加了
Button
、CompactButton
和ToggleButton
图标大小的常量值,作为指导(I57cab) - 向
AppCard
和TitleCard
添加了 enabled 参数。现在它们具有与androidx.compose.material
Cards 类似的 API。当参数设置为 false 时,卡片将不可点击。(Idc48d,b/228869805)
错误修复
- 当达到上下限时,Stepper 现在会禁用减少和增加按钮(并将 ContentAlpha.disabled 应用于 iconColor)(I4be9f)
- 当使用渐变绘制时,我们在 Picker 内容周围添加了 1dp 的填充,以防止在滑动时看到的文本抖动。(I0b7b9)
- 为
PositionIndicator
添加屏幕截图测试(I5e8bc) - 为
AppCard
和TitleCard
添加更多测试(I85391,b/228869805)
版本 1.0.0-alpha21
2022 年 4 月 20 日
androidx.wear.compose:compose-foundation:1.0.0-alpha21
、androidx.wear.compose:compose-material:1.0.0-alpha21
和 androidx.wear.compose:compose-navigation:1.0.0-alpha21
已发布。版本 1.0.0-alpha21 包含这些提交。
新功能
- 添加了新的弯曲修饰符以指定弯曲元素的背景:
CurvedModifier.background
、.radialGradientBackground
和.angularGradientBackground
(I8f392) - 允许指定弯曲文本溢出模式(剪切/省略号/可见)。(I8e7aa)
- 添加了
CurvedModifier.weight
修饰符,类似于 Compose 中的修饰符。这可以用于弯曲行和弯曲布局的子元素(用于宽度)以及弯曲列的子元素(用于高度)。(I8abbd) - 添加了
CurvedModifier.size
、.angularSize
和.radialSize
修饰符以指定弯曲元素的大小。(I623c7)
API 更改
- 重新排序参数以确保背景始终在 Wear Compose API 中的颜色之前(I43208)
- 删除了顺时针和
insideOut
参数,并替换为新类上的更具表现力的常量。弯曲布局方向现在可以感知LayoutDirection
,并且在未指定时会继承它(If0e6a) - 我们已将
autoCenter: Boolean
替换为autoCenter: AutoCentringParams
,以修复ScalingLazyColumn
的 API 问题。(Ia9c90) - 我们在整个 API(Chip/ToggleChip/Dialog/Slider/Stepper/…)中将
iconTintColor
和toggleControlTintColor
重命名为iconColor
和toggleControlColor
,因为颜色应用于图标/toggleControl 槽。(Ied238) - 将
PageIndicatorStyle
枚举重写为值类(I2dc72) - 我们已将
RowScope/ColumnScope/BoxScope
添加到我们的一些 Composables 中的某些插槽中,以指示开发人员布局的假设是什么。这将允许开发人员在某些插槽内容上使用其他修饰符,并避免需要提供额外的布局元素。此外,我们对 AppCard/TitleCard 颜色进行了一些小幅更新,以便timeColor
和appColor
默认设置为contentColor
,如果需要,这些属性仍然可以单独覆盖。(I26b59) - 将
SwipeToDismissBoxState.Companion
对象设为私有(I39e84) - 修复了
InlineSlider
和Stepper
的参数顺序。一个简单的更改以遵循 api 指南(I11fec) - 我们已删除
SwipeToDismissBoxState
的 Saver 对象,因为它未使用。(Ifb54e) - 我们已更新了
CompactChip
以使其与最新的 UX 规范保持一致。填充已减少到水平 = 12.dp 和垂直 = 0.dp。标签的字体已从按钮更改为 caption1。当同时存在图标和标签时,建议的图标大小为 20x20,而仅图标的紧凑型芯片的图标大小为 24x24。对于仅图标的使用情况,我们还确保了图标居中对齐。(Iea2be) - 我们已向
ScalingLazyListLayoutInfo
添加了许多新字段,以使开发人员能够了解已应用的contentPadding
和autoCenteringPadding
的数量。在计算抛掷/滚动时,这些对于开发人员很有用(I7577b) - 我们已为 Dialog 实现了进出转换。已添加
showDialog
参数,并且 Dialog 现在控制其自身的可见性(这使 Dialog 能够在显示/隐藏 Dialog 时运行简介和结束动画)。请注意,当用户通过滑动以取消的方式离开对话框时,不会执行结束动画。我们还在最近添加的SwipeToDismissBox
重载中添加了状态的默认值。(I682a0) - 为了更好地支持 i18n 和 a11y,我们更改了
ToggleChip
和SplitToggleChip
,以便它们不再具有toggleControl
插槽的默认值。我们还更改了ToggleChipDefaults
,以便以下方法现在返回 ImageVector 而不是 Icon(请注意,由于它们不再返回 @Composables,因此已更改为以小写字母开头),SwitchIcon()->switchIcon()
、CheckboxIcon->checkboxIcon()
和RadioIcon()->radioIcon()
- 这允许并鼓励开发人员创建自己的Icon()
composables 并设置相应的contentDescription
。(I5bb5b) - 我们已向
SwipeDismissableNavHost
添加了SwipeDismissableNavHostState
参数。这支持对用作导航目标的屏幕使用边缘滑动,因为SwipeToDismissBoxState
现在可以提升并用于初始化需要边缘滑动的屏幕上的SwipeDismissableNavHostState
和Modifier.edgeSwipeToDismiss
。(I819f5,b/228336555)
错误修复
- 确保在需要时更新弯曲布局。(Ie8bfa,b/229079150)
- 修复了 https://issuetracker.google.com/issues/226648931 的错误(Ia0a0a,b/226648931)
- 删除了不必要的实验性注释(I88d7e)
版本 1.0.0-alpha20
2022 年 4 月 6 日
androidx.wear.compose:compose-foundation:1.0.0-alpha20
、androidx.wear.compose:compose-material:1.0.0-alpha20
和 androidx.wear.compose:compose-navigation:1.0.0-alpha20
已发布。版本 1.0.0-alpha20 包含这些提交。
新功能
- 为
SwipeToDismiss
添加edgeSwipeToDismiss
修饰符。允许swipeToDismiss
仅在视口的左侧边缘处于活动状态。当屏幕中心需要能够处理水平分页时使用,例如二维滚动地图或在页面之间水平滑动。(I3fcec,b/200699800)
API 更改
CurvedModifiers
的基本实现,这为引入自定义弯曲内容的方式打开了道路(但尚未提供CurvedModifiers
,并且创建自定义修饰符的功能可能稍后可用)(I9b8df)EdgeSwipe
修饰符文档和默认值更新,以便更好地理解。(I6d00d)- 将
PageIndicator
插槽添加到 Scaffold 中。通过将PageIndicator
直接添加到 Scaffold 中,我们可以确保它在圆形设备上正确显示。(Ia6042) - 从
InlineSlider
和 Stepper 参数中删除默认图标。这将帮助开发人员更加关注本地化和可访问性要求。演示和示例中显示了默认图标的使用。(I7e6fd) - 在 TimeText 中将 Trailing 和 Leading 参数名称替换为 Start 和 End(Iaac32)
- 我们添加了一个带有
onDismissed
参数的SwipeToDismissBox
重载,以支持在滑动手势完成时触发导航事件的常见用法。(I50353,b/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-alpha19
、androidx.wear.compose:compose-material:1.0.0-alpha19
和 androidx.wear.compose:compose-navigation:1.0.0-alpha19
已发布。版本 1.0.0-alpha19 包含这些提交。
API 更改
- 将
CurvedRow
重命名为CurvedLayout
,并重新设计为具有 DSL 的作用域。使用此 DSL,可以使用一系列嵌套的curvedRow
和curvedColumn
(这是 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.BackgroundKey
和SwipeToDismissBoxDefaults.ContentKey
分别移动到SwipeToDismissKeys.Background
、SwipeToDismissKeys.Content
。(I47a36) - 我们已向 Picker 添加了只读模式,用于具有多个 Picker 的屏幕,其中一次只能编辑一个 Picker。当 Picker 为只读时,它会显示当前选定的选项,以及(如果已提供)标签。(I879de)
SwipeToDismissBoxState
已重构,以将ExperimentalWearMaterialApi
的范围限制为Modifier.swipeable
和SwipeableState
,它们现在在内部使用。SwipeToDismissBoxState
现在具有currentValue
、targetValue
、isAnimationRunning
和snapTo
成员以支持常见用例 - 如果您需要提供任何其他属性,请告知我们。还修复了当滑动偏移量在锚点的舍入误差范围内时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/Indeterminant 版本,已更新大小 (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-alpha18
、androidx.wear.compose:compose-material:1.0.0-alpha18
和 androidx.wear.compose:compose-navigation:1.0.0-alpha18
已发布。版本 1.0.0-alpha18 包含这些提交。
API 更改
- 对 PositionIndicator 进行了一些改进:ShowResult 重命名为 PositionIndicatorVisibility。一些性能改进,以避免在不需要时重新计算 (Iaed9d)
- 已更新
SplitToggleChip
的推荐颜色。SplitToggleChip 在选中或未选中时现在具有纯色背景,ToggleControl 的颜色是组件是否选中的主要指示。我们添加了一个新的ToggleDefaults.splitToggleChipColors()
来支持新的配色方案。我们还简化了toggleChipColors()
方法,删除了 splitBackgroundOverlayColor (I7e66e) - 我们已将 unadjustedSize 添加到
ScalingLazyListItemInfo
中,因为由于浮点数数学精度,使用缩放大小和缩放因子计算原始项目大小是不安全的。(I54657,b/221079441) - 添加
HorizontalPageIndicator
。它表示页面总数和选定的页面。可能是线性的或弯曲的,具体取决于设备的形状。它还支持自定义指示器形状,该形状定义每个指示器如何在视觉上表示。(Iac898) - 我们已更新了
PickerState
,以便可以更新 numberOfOptions。这支持诸如DatePicker
之类的用例,其中月份中的天数根据所选月份而变化。PickerState 的构造函数参数相应地更改为 initialNumberOfOptions。(Iad066) - 当是滚动条且无法滚动时,隐藏
PositionIndicator
。(Id0a7f) - 为了与 Scaffold 保持一致,我们的全屏对话框组件现在显示
PositionIndicator
和Vignette
。我们现在也使用ScalingLazyColumn
而不是Column
,这意味着对话框内容现在位于ScalingLazyListScope
中(并且通常需要用 item { /* content */ } 包裹)。对话框相应地支持 verticalArrangement 参数。(Idea13) - 我们已将
ToggleChip
和SplitToggleChip
的 toggleIcon 属性名称更改为 toggleControl,以更好地与 Material Design 对齐,从而帮助设计人员和开发人员浏览 API。(If5921,b/220129803) - 我们在 Wear Material 主题版式中添加了一个新的条目 caption3。Caption3 是一种用于超长格式写作(如法律文本)的小字体。(I74b13,b/220128356)
错误修复
- 当我们到达那里时,停止捕捉动画。(Idb69d)
- 为 PositionIndicator 中的变化添加动画。(I94cb9)
- 根据 UI/UX 反馈,我们更改了
ScalingLazyColumn
的自动居中,以便它仅提供足够的空间来确保索引为ScalingLazyListState.initialCenterItemIndex
或更高的项目能够完全滚动到视口的中心。这允许开发人员在最初位于中心的项目上方放置一两个无法滚动到中间的项目。这意味着自动居中的ScalingLazyColumn
将无法滚动到initialCenterItemIndex/initialCenterItemScrollOffset
以上 (I22ee2) - 我们添加了一个日期选择器的演示,并修复了
PickerState
中的一个错误,该错误导致初始选定的选项在 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-alpha17
、androidx.wear.compose:compose-material:1.0.0-alpha17
和 androidx.wear.compose:compose-navigation:1.0.0-alpha17
已发布。版本 1.0.0-alpha17 包含这些提交。
新功能
- 我们添加了可以与
ScalingLazyColumn
一起使用的捕捉支持。设置flingBehavior = ScalingLazyColumnDefaults.flingWithSnapBehavior(state)
以启用捕捉支持。(I068d3,b/217377069) - 我们添加了 Picker 的演示,用于以 24 小时或 12 小时时钟选择时间。(Ie5552)
API 更改
- 修复了方形设备上
TimeText
自定义字体和样式的问题 (Iea76e) ScalingLazyListLayoutInfo
现在具有reverseLayout
、viewportSize
和 orientation 属性,与LazyListLayoutInfo
中的属性匹配 (I4f258,b/217917020)ScalingLazyColumn
现在有一个与LazyList
中的userScrollEnabled
属性匹配的属性(I164d0,b/217912513)。- 选择器现在默认在顶部和底部具有渐变(Iab92a)。
错误修复
- 我们修改了
ScalingLazyColumn
,使其不再贪婪地填充其父容器中的所有空间。相反,它将根据其内容的大小获取其大小。这使其与LazyColumn
的行为一致。如果要恢复旧的行为,则将Modifier.fillMaxWidth()/width()/widthIn()
传递给ScalingLazyColumn
(I51bf8)。 - 我们改进了
SwipeDismissableNavHost.kt
中的异常消息,该消息是在导航回退栈为空时触发的。(I1b1dc)。
版本 1.0.0-alpha16
2022年2月9日
androidx.wear.compose:compose-foundation:1.0.0-alpha16
、androidx.wear.compose:compose-material:1.0.0-alpha16
和 androidx.wear.compose:compose-navigation:1.0.0-alpha16
已发布。版本 1.0.0-alpha16 包含这些提交。
新功能
- 添加
CircularProgressIndicator
。进度指示器显示进程的长度或不确定的等待时间。如果全屏使用,则支持用于 TimeText 或其他组件的间隙(切口)。(Iab8da)。
API 更改
错误修复
- 我们已将
ScalingLazyListState
的默认初始中心项目索引从 0 -> 1 更改。这意味着,除非在状态构造时使用ScalingLazyListState.rememberScalingLazyListState(initialCenterItemIndex =
覆盖。)
,否则第二个列表项(索引 == 1)将在初始化时放置在视口的中心,而第一个(索引 == 0)项将放置在其前面。这允许开箱即用地获得更好的默认视觉效果,因为大多数视口将填充列表项。(I0c623,b/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-alpha15
、androidx.wear.compose:compose-material:1.0.0-alpha15
和 androidx.wear.compose:compose-navigation:1.0.0-alpha15
已发布。版本 1.0.0-alpha15 包含这些提交。
API 更改
- 我们向
ScalingLazyColumn
添加了一个新属性autoCentering
。当为 true(默认值)时,这将确保所有项目(包括第一个和最后一个)都可以滚动,以便它们在列表视口的中心可见。请注意,如果使用自动居中,您可能需要将垂直内容填充设置为 0.dp。如果同时提供了 autoCentering 和垂直内容填充,则两者都会导致在第一个和最后一个列表项之前和之后有额外的空间可用,从而允许它们进一步滚动。(I2a282,b/214922490)。 - 我们添加了一个
Dialog
组件,它使任何可组合项都可以触发一个覆盖其他内容的全屏对话框。显示时,对话框支持滑动以关闭,并在滑动手势期间显示其父内容作为背景。对话框内容应为Alert
或Confirmation
(从早期组件AlertDialog
和ConfirmationDialog
重命名) -Alert
、Confirmation
和Dialog
都位于androidx.wear.compose.material.dialog
包中。Alert 和 Confirmation 可用作导航目标。此外,根据需要将 ColumnScope 添加到 Alert 和 Confirmation 参数。(Ia9014)。 - 我们已从 Compose for WearOS Material 主题颜色中删除了
onSurfaceVariant2
,并用onSurfaceVariant
替换了库中的用法。(Icd592)。 - 添加了一种方法,可以在
PickerState
上以编程方式选择一个选项,现在在创建PickerState
时也可以指定最初选择的选项。(I92bdf)。 - 我们添加了对自定义
ScalingLazyColumn
的轻扫行为的支持。(I1ad2e,b/208842968)。 - 我们已将
NavController.currentBackStackEntryAsState()
添加到Wear.Compose.Navigation
库。(If9028,b/212739653)。 - 为具有旋转侧按钮的 Wear 设备添加了
Modifier.onRotaryScrollEvent()
和Modifier.onPreRotaryScrollEvent()
。(I18bf5,b/210748686)。
版本 1.0.0-alpha14
2022年1月12日
androidx.wear.compose:compose-foundation:1.0.0-alpha14
、androidx.wear.compose:compose-material:1.0.0-alpha14
和 androidx.wear.compose:compose-navigation:1.0.0-alpha14
已发布。版本 1.0.0-alpha14 包含这些提交。
新功能
我们已向
ScalingLazyListState
添加了许多方法,以允许开发人员控制滚动到特定列表项以及设置初始列表项和偏移量。作为此更改的一部分,我们还修改了 ScalingLazyList,使其围绕 ScalingLazyList 视口的中心而不是视口的开头进行定位。
一个新属性
anchorType: ScalingLazyListAnchorType = ScalingLazyListAnchorType.ItemCenter
已添加到ScalingLazyList
中,以控制中心 (ScalingLazyListAnchorType.ItemCenter
) 或Edge
(ScalingLazyListAnchorType.ItemStart
) 应与视口的中线对齐。因此,
ScalingLazyListItemInfo.offset
和ScalingLazyListItemInfo.adjustedOffset
已更改,现在将反映项目相对于列表项的位置和列表的anchorType
的偏移量。例如,对于anchorType
为ItemCenter
的ScalingLazyColumn
以及其中心位于视口中心线上的列表项,偏移量将为0
。新方法是
scrollTo
、animatedScrollTo
、centerItemIndex
和centerItemOffset
。(I61b61)。我们已向
SwipeDismissableNavHost
添加了一个后退按钮处理程序,以便按下后退按钮可导航到导航层次结构中的上一级。(I5b086,b/210205624)。
版本 1.0.0-alpha13
2021年12月15日
androidx.wear.compose:compose-foundation:1.0.0-alpha13
、androidx.wear.compose:compose-material:1.0.0-alpha13
和 androidx.wear.compose:compose-navigation:1.0.0-alpha13
已发布。版本 1.0.0-alpha13 包含这些提交。
API 更改
- 我们已将
RangeIcons
设置为内部(由InlineSlider
和Stepper
在内部引用)。(I927ec)。
错误修复
修复了
SwipeDismissableNavHost
在达到CREATED
生命周期状态之前将目标添加到 Compose 层次结构的问题,导致出现IllegalStateException
。此修复是更新对navigation-compose
的依赖项到2.4.0-beta02
及更高版本的先决条件。(I40a2b,b/207328687)。添加了一个 Drawables 枚举类,用于在 Wear Compose 库中获取可绘制资源,以便不再需要反射。这修复了一个当
minifyEnabled=true
或shrinkResources=true
时库可绘制对象被删除的错误。(Ib2a98)。为 Wear Compose 中的
Stepper
添加了测试(I2d03a)。为 Wear Compose Navigation 中的
SwipeDismissableNavHost
添加了示例。(I85f06)。
版本 1.0.0-alpha12
2021年12月1日
androidx.wear.compose:compose-foundation:1.0.0-alpha12
、androidx.wear.compose:compose-material:1.0.0-alpha12
和 androidx.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-alpha11
、androidx.wear.compose:compose-material:1.0.0-alpha11
和 androidx.wear.compose:compose-navigation:1.0.0-alpha11
已发布。版本 1.0.0-alpha11 包含这些提交。
新功能
- 我们添加了一个选择器组件,允许用户从滚动列表中选择一个项目。默认情况下,可选择项目的列表在两个方向上“无限”重复,以给人一种从侧面看到的旋转圆柱体的印象。在以后的版本中将添加两个功能:滑动/轻扫后捕捉到某个值;向 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-alpha10
、androidx.wear.compose:compose-material:1.0.0-alpha10
和 androidx.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 中的转换处理(I04994,b/202863359)
- 更新 SwipeDismissableNavHost 中的转换处理(I1cbe0,b/202863359)
版本 1.0.0-alpha09
2021年10月27日
androidx.wear.compose:compose-foundation:1.0.0-alpha09
、androidx.wear.compose:compose-material:1.0.0-alpha09
和 androidx.wear.compose:compose-navigation:1.0.0-alpha09
已发布。版本 1.0.0-alpha09 包含这些提交。
新功能
- 我们发布了 Compose for Wear OS 的开发者预览版 - 请参阅我们的博文,其中回顾了主要的可组合函数,并提供了开始使用它们的更多资源链接。
API 更改
- 我们添加了对开发者自定义 Wear Material Design 颜色主题中所有颜色的支持。(I4759b,b/199754668)
错误修复
- 添加了保留状态的 SwipeToDismissBox 示例(Ibaffe)
- 从 KDocs 中为 CurvedText、TimeText 和 SwipeToDismissBox 添加了指向 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-alpha08
、androidx.wear.compose:compose-material:1.0.0-alpha08
和 androidx.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)
- 添加了 Button、CompactButton、Chip、CompactChip、AppCard、TitleCard、ToggleButton、ToggleChip、SplitToggleChip 的示例(Iddc15)
- 为 Card、Chip、ToggleChip、TimeText 和 ScalingLazyColumn 添加了微基准性能测试。(If2fe9)
版本 1.0.0-alpha07
2021年9月29日
androidx.wear.compose:compose-foundation:1.0.0-alpha07
、androidx.wear.compose:compose-material:1.0.0-alpha07
和 androidx.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 规范指南。选中时,ToggleChips 现在具有从 MaterialTheme.color.surface(alpha 为 0%),左上角,到 MaterialTheme.color.primary(alpha 为 32%),右下角的渐变背景,背景为 MaterialTheme.color.surface(alpha 为 75%)。这使得 ToggleChip 的选中和未选中状态之间的差异更加微妙。(Idd40b)
版本 1.0.0-alpha06
2021年9月15日
androidx.wear.compose:compose-foundation:1.0.0-alpha06
、androidx.wear.compose:compose-material:1.0.0-alpha06
和 androidx.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
以通过设置背景和内容的键标识来支持rememberSaveable
(I746fd) - 我们添加了一个可以处理 LazyListState 的 PositionIndicator 适配器(I21b88)
- 更新了 SwipeToDismissBox 以支持 rememberSaveable(Ie728b)
- 我们已将 reverseLayout 支持添加到 ScalingLazyColumn。这允许反转滚动和布局的方向(I9e2fc)
- 已弃用
performGesture
和GestureScope
,它们已被performTouchInput
和TouchInjectionScope
替换。(Ia5f3f,b/190493367) - 我们将 VignetteValue 重命名为 VignettePosition,并将 VignetteValue.Both 重命名为 VignettePosition.TopAndBottom。(I57ad7)
- 我们已将 ScalingLazyColumnState 重命名为 ScalingLazyListState,将 ScalingLazyColumnItemInfo 重命名为 ScalingLazyListItemInfo,将 ScalingLazyColumnLayoutInfo 重命名为 ScalingLazyListLayoutInfo,并将 ScalingLazyColumnScope 重命名为 ScalingLazyListScope,以防将来决定添加 ScalingLazyRow 实现。(I22734)
错误修复
- 更新了 CompactChip 文档,以描述如果既未提供图标也未提供标签会发生什么。(I4ba88)
- 我们对 Wear 卡片组件进行了一些调整。(I6b3d0)
- TitleCard 中标题和正文之间的间距从 8.dp 减少到 2.dp。
- TitleCard 标题字体从正文更改为标题 3。
- 更改了卡片背景渐变,使背景看起来更暗。
版本 1.0.0-alpha05
2021 年 9 月 1 日
androidx.wear.compose:compose-foundation:1.0.0-alpha05
和 androidx.wear.compose:compose-material:1.0.0-alpha05
已发布。版本 1.0.0-alpha05 包含这些提交。
API 更改
- 将 ArcPaddingValues 标记为 @Stable(I57deb)
- ScalingLazyColumnState 现在实现了 ScrollableState 接口,使开发人员能够以编程方式滚动组件。(I47dbc)
错误修复
- 我们减少了 Chip 和 ToggleChip 中图标和文本之间的间距,使其与 UX 规范的更新保持一致。(I83802)
版本 1.0.0-alpha04
2021 年 8 月 18 日
androidx.wear.compose:compose-foundation:1.0.0-alpha04
和 androidx.wear.compose:compose-material:1.0.0-alpha04
已发布。版本 1.0.0-alpha04 包含这些提交。
新功能
- 添加了一个 SwipeToDismissBox 和一个可滑动修饰符,可用于支持从左到右的滑动以关闭手势。虽然独立于导航组件,但预计它将用于退出一个屏幕并导航到另一个屏幕。添加了集成测试以演示滑动以关闭。(I7bbaa)
- 我们已将 ScalingLazyColumnItemInfo 和 ScalingLazyColumnLayoutInfo 接口添加到 ScalingLazyColumnState 类中,以使开发人员能够在应用缩放后了解 ScalingLazyColumn 中项目的实际位置和大小。我们还修复了在对 ScalingLazyColumn 应用“顶部”内容填充时计算缩放方式的错误。(I27c07)
API 更改
- 添加 CurvedTextStyle 类以指定弯曲文本样式选项。类似于 TextStyle,但现在仅支持颜色、字体大小和背景。将来会添加更多样式选项。(I96ac3)
- 我们已将 ScalingLazyColumnItemInfo 和 ScalingLazyColumnLayoutInfo 接口添加到 ScalingLazyColumnState 类中,以使开发人员能够在应用缩放后了解 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-alpha03
和 androidx.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 规范更新更改了 AppCard 中 appName 内容的默认颜色。appName 的默认颜色现在为
MaterialTheme.colors.onSurfaceVariant
。此外,还为标题插槽添加了缺少的参数文档说明。(Ic4ad1)
版本 1.0.0-alpha02
2021 年 7 月 21 日
androidx.wear.compose:compose-foundation:1.0.0-alpha02
和 androidx.wear.compose:compose-material:1.0.0-alpha02
已发布。版本 1.0.0-alpha02 包含这些提交。
新功能
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)
- 为 Button 和 ToggleButton 添加了更多演示和集成测试。(5e27ed2)
- 添加了更多 Chip 测试以涵盖 imageBackgroundChips 的内容颜色(Ia9183)
版本 1.0.0-alpha01
2021 年 7 月 1 日
androidx.wear.compose:compose-foundation:1.0.0-alpha01
和 androidx.wear.compose:compose-material:1.0.0-alpha01
已发布。版本 1.0.0-alpha01 包含这些提交。
新功能
Wear Compose 是一个基于 Kotlin 和 Compose 的库,它支持 Wear Material Design,这是针对 WearOS 可穿戴设备的 Material Design 的扩展。此第一个 Alpha 版本包含以下早期功能实现
- 材质主题 - 在此库中使用的组件之间一致地配置颜色、排版和形状。
- Chip、CompactChip - 芯片呈体育场形状,并提供各种变体以容纳图标、标签和辅助标签内容。
- - ToggleChip、SplitToggleChip - 一种特殊的芯片类型,其中包含一个用于双状态切换图标(例如单选按钮或复选框)的插槽。此外,SplitToggleChip 还有两个可点击区域,一个可点击,一个可切换。
- Button、CompactButton - 按钮呈圆形,带有一个用于图标或最少文本(最多 3 个字符)的内容插槽。
- ToggleButton - 一个用于打开或关闭操作的按钮,带有一个用于图标或最少文本(最多 3 个字符)的插槽。
- Card、AppCard - 矩形形状,带圆角,提供用于内容的插槽,例如应用程序图标、时间、标题和正文。
未来的版本将扩展 Widget 集,添加对 Wear Material Design 选择器、滑块、列表、页面指示器、对话框、滚动 rsb 指示器、Toast 等的支持。
此外,还将提供对其他可穿戴设备特定功能的支持,例如弯曲布局和文本,以及用于简化开发人员构建可穿戴设备应用程序/叠加层的脚手架。
Wear Compose Material 采用与 Compose Material 相同的原则设计,但面向可穿戴设备。在为可穿戴设备构建时,应使用 Wear Compose Material 库代替 Compose Material 库。
这两个“Material”库应视为互斥的,不应在同一个应用程序中混合使用。如果开发人员发现自己在依赖项中包含 Compose Material 库,则表明 a) Wear Compose Material 库中缺少组件,请告诉我们您需要什么,或者 b) 正在使用我们不建议在可穿戴设备上使用的组件。