Compose Material 3
最新更新 | 稳定版 | 候选发布版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 9 月 4 日 | 1.3.0 | - | - | - |
结构
Compose 是 androidx
中七个 Maven 组 ID 的组合。每个组包含针对性的功能子集,每个子集都有自己的发布说明集。
此表解释了这些组,并链接到每个发布说明集。
组 | 说明 |
---|---|
compose.animation | 在他们的 Jetpack Compose 应用程序中构建动画以丰富用户体验。 |
compose.compiler | 使用 Kotlin 编译器插件转换 @Composable 函数并启用优化。 |
compose.foundation | 使用现成的构建块编写 Jetpack Compose 应用程序,并扩展基础以构建您自己的设计系统组件。 |
compose.material | 使用现成的 Material Design 组件构建 Jetpack Compose UI。这是 Compose 的更高级别入口点,旨在提供与 www.material.io 上描述的组件相匹配的组件。 |
compose.material3 | 使用 Material Design 3 组件构建 Jetpack Compose UI,这是 Material Design 的下一步发展。Material 3 包括更新的主题和组件以及 Material You 个性化功能(如动态颜色),旨在与新的 Android 12 视觉风格和系统 UI 保持一致。 |
compose.runtime | Compose 编程模型和状态管理的基础构建块,以及 Compose 编译器插件的目标核心运行时。 |
compose.ui | Compose UI 的基本组件,用于与设备交互,包括布局、绘图和输入。 |
声明依赖项
要添加对 Compose 的依赖项,您必须将 Google Maven 存储库添加到您的项目中。阅读 Google 的 Maven 存储库 以了解更多信息。
在您的应用程序或模块的 build.gradle
文件中添加您需要的工件的依赖项
Groovy
dependencies { implementation "androidx.compose.material3:material3:1.3.0" implementation "androidx.compose.material3:material3-window-size-class:1.3.0" implementation "androidx.compose.material3:material3-adaptive-navigation-suite:1.3.0" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.1.1" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material3:material3:1.3.0") implementation("androidx.compose.material3:material3-window-size-class:1.3.0") implementation("androidx.compose.material3:material3-adaptive-navigation-suite:1.3.0") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.1.1" } kotlinOptions { jvmTarget = "1.8" } }
有关依赖项的更多信息,请参阅 添加构建依赖项。
反馈
您的反馈有助于使 Jetpack 变得更好。如果您发现新问题或有改进此库的想法,请告诉我们。在创建新问题之前,请查看此库中的现有问题。您可以通过单击星形按钮为现有问题投票。
查看问题跟踪器文档以了解更多信息。
Compose Material3 Common 版本 1.0
版本 1.0.0-alpha01
2024 年 4 月 17 日
androidx.compose.material3:material3-common:1.0.0-alpha01
、androidx.compose.material3:material3-common-android:1.0.0-alpha01
和 androidx.compose.material3:material3-common-desktop:1.0.0-alpha01
已发布。版本 1.0.0-alpha01 包含这些提交。
新功能
可用于构建 Material Design 组件的无主题组件
- 色调调色板
- 图标
- 触摸目标大小
Compose Material3 自适应导航套件版本 1.0
版本 1.0.0-alpha07
2024 年 5 月 1 日
androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha07
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha07
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha07
已发布。版本 1.0.0-alpha07 包含这些提交。
API 更改
- 使导航套件 API 非实验性(If62af)
错误修复
- 默认情况下使用内边距来填充内容(50266df)
版本 1.0.0-alpha06
2024 年 4 月 17 日
androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha06
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha06
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha06
已发布。版本 1.0.0-alpha06 包含这些提交。
API 更改
- 在
NavigationSuiteScaffoldDefaults
中添加containerColor
和contentColor
。(I64e3a、b/331993720) - 在
NavigationSuiteDefaults
中添加itemColors
函数。(Idf719、b/328480012) - 使
NavigationSuiteScope
密封。(Iefa57)
版本 1.0.0-alpha05
2024 年 3 月 6 日
androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha05
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha05
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha05
已发布。版本 1.0.0-alpha05 包含这些提交。
API 更改
- 使
NavigationSuiteItemColors
构造函数公开。(Ica83a、b/324886877)
版本 1.0.0-alpha04
2024 年 2 月 21 日
androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha04
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha04
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha04
已发布。版本 1.0.0-alpha04 包含这些提交。
依赖项更新
版本 1.0.0-alpha03
2024 年 2 月 7 日
androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha03
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha03
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha03
已发布。版本 1.0.0-alpha03 包含这些提交。
API 更改
- 将包名称从 navigation-suite 更新为 navigationsuite(I7eff7)
- 在 API 中公开
MutableInteractionSource
的 Material3 组件已更新,现在公开一个默认值为 null 的可空MutableInteractionSource
。这里没有语义更改:传递 null 表示您不希望提升MutableInteractionSource
,并且如果需要,它将在组件内部创建。更改为 null 使某些组件永远不会分配MutableInteractionSource
,并允许其他组件仅在需要时才延迟创建实例,从而提高了这些组件的性能。如果您不使用传递给这些组件的MutableInteractionSource
,建议您传递 null。还建议您在自己的组件中进行类似的更改。(I41abb、b/298048146)
版本 1.0.0-alpha02
2023 年 12 月 13 日
androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha02
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha02
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha02
已发布。版本 1.0.0-alpha02 包含这些提交。
新功能
- 添加“无”
NavigationSuiteType
(If8cb1、b/313688598)
错误修复
- 修复导航组件在根表面具有
modifier.fillMaxSize
时填充整个屏幕的问题。(c9cf250、b/312664933)
版本 1.0.0-alpha01
2023 年 11 月 15 日
androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha01
已发布。版本 1.0.0-alpha01 包含这些提交。
新功能
Compose Material3 自适应版本 1.0
版本 1.0.0-alpha06
2024 年 2 月 7 日
androidx.compose.material3:material3-adaptive:1.0.0-alpha06
、androidx.compose.material3:material3-adaptive-android:1.0.0-alpha06
和 androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha06
已发布。版本 1.0.0-alpha06 包含这些提交。
新功能
版本 1.0.0-alpha05
2024 年 1 月 24 日
androidx.compose.material3:material3-adaptive:1.0.0-alpha05
、androidx.compose.material3:material3-adaptive-android:1.0.0-alpha05
和 androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha05
已发布。版本 1.0.0-alpha05 包含这些提交。
新功能
- 支持脚手架导航和值计算中的历史记录感知(I71d46)
版本 1.0.0-alpha04
2024 年 1 月 10 日
androidx.compose.material3:material3-adaptive:1.0.0-alpha04
、androidx.compose.material3:material3-adaptive-android:1.0.0-alpha04
和 androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha04
已发布。版本 1.0.0-alpha04 包含这些提交。
新功能
- 在窗格脚手架中添加了边缘到边缘支持(I1b462)
API 更改
- 将姿势中的铰链边界属性移动到铰链信息列表中(I24f90)
错误修复
- 修复
AnimatedPane
未重新组合的问题(c3f573d)
版本 1.0.0-alpha03
2023 年 12 月 13 日
androidx.compose.material3:material3-adaptive:1.0.0-alpha03
、androidx.compose.material3:material3-adaptive-android:1.0.0-alpha03
和 androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha03
已发布。版本 1.0.0-alpha03 包含这些提交。
API 更改
- 将脚手架角色更改为
ThreePaneScaffoldRole
的别名。(I65bd1) - 为脚手架角色创建基类(I4784d)
- 从
AnimatedPane
的内容中删除不必要的参数(Ibc73b) - 重命名
collectWindowSizeAsState
并返回原始值而不是(I480f4)
版本 1.0.0-alpha02
2023 年 11 月 29 日
androidx.compose.material3:material3-adaptive:1.0.0-alpha02
、androidx.compose.material3:material3-adaptive-android:1.0.0-alpha02
和 androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha02
已发布。版本 1.0.0-alpha02 包含这些提交。
API 更改
错误修复
- 修复当
AnimatedPane
未使用时窗格未切换的问题(d88f181)
版本 1.0.0-alpha01
2023 年 11 月 15 日
androidx.compose.material3:material3-adaptive:1.0.0-alpha01
已发布。版本 1.0.0-alpha01 包含这些提交。
新功能
Material3 自适应条件 API
Material3 自适应窗格脚手架指令 API
Material3 自适应窗格脚手架 API
- 窗格脚手架基本 API
Compose Material3 版本 1.3
版本 1.3.0
2024 年 9 月 4 日
androidx.compose.material3:material3-*:1.3.0
已发布。版本 1.3.0 包含这些提交。
自 1.2.0 以来重要更改
1.3.0 的主要功能
新的 Material Design 3 组件
- 轮播
HorizontalMultiBrowseCarousel
和HorizontalUncontainedCarousel
对现有 Material Design 3 组件的增强。
- [
ModalBottomSheet
] 现在在 U+ 上支持预测返回 (Iccf32, b/281967264, b/304850357) - [
SearchBar
] 现在在 U+ 上支持预测返回 (I657f8) - 导航抽屉 (
ModalDrawerSheet
和DismissibleDrawerSheet
) 现在在 U+ 上支持预测返回,作为可选功能 (Ie5b0b) DropdownMenu
现在支持自定义颜色、形状、提升和边框。(I8e981,b/289554448, b/301887035, b/283654243)- 更新了滑块,通过添加间隙和停止指示器来提高可访问性。(I3058e)
- 更新了
ProgressIndicator
,通过添加间隙和停止指示器来提高可访问性。(I21451) - 为富文本工具提示添加了默认插入符号,支持根据锚点
LayoutCoordinates
绘制自定义插入符号。(Ifd42c) 突破性变化 - 新的下拉刷新 API
- 简化了
PullToRefreshState
,使用小数而不是 Dp 单位。 isRefreshing
状态由用户控制,而不是由PullToRefreshState
控制。- 将嵌套滚动连接从
PullToRefreshState
中分离出来。它由新的PullToRefreshBox
或Modifier.pullToRefresh
处理。 - 此更新是之前实验性 API 的重大更改。(I0adeb, b/314496282, b/317177684, b/323787138, b/324573502, b/317177683) 视觉突破性变化
- 简化了
- 更新焦点状态覆盖层为 0.1f,以确保足够的颜色对比度。(I7ea77)
- 对
lightColorScheme
和darkColorScheme
中的表面和背景颜色的默认值进行了细微调整。(I9db52) - 更新了滑块和
ProgressIndicator
的颜色,以遵循新的非文本对比度规范。(I26807) SurfaceContainer
变体现在由组件使用。以前使用Surface
和TonalElevation
计算颜色的组件现在默认使用SurfaceContainer
角色,这些角色不受色调提升的影响。(b/304584161)- 表面和表面容器基线角色已略微调整,在亮色和暗色主题中提供更多色调。(I677a5)
- 将实验性 API 提升为稳定版!
- 性能改进
版本 1.3.0-rc01
2024 年 8 月 21 日
androidx.compose.material3:material3-*:1.3.0-rc01
已发布。版本 1.3.0-rc01 包含 这些提交。
错误修复
- [
ModalBottomSheet
] 现在在语义遍历顺序中排名第一,其次是遮罩。(I436f9, b/358594665)
版本 1.3.0-beta05
2024 年 7 月 24 日
androidx.compose.material3:material3-*:1.3.0-beta05
已发布。版本 1.3.0-beta05 包含 这些提交。
- 修复了在 Android N 和 O 上
BottomSheet
内容丢失或被切断的问题 (a10a2d) - 增加了滑块的语义边界,以便
TalkBack
能正确地显示围绕滑块的焦点指示器。(0b5a1d)
版本 1.3.0-beta04
2024 年 6 月 26 日
androidx.compose.material3:material3-*:1.3.0-beta04
已发布。版本 1.3.0-beta04 包含 这些提交。
版本 1.3.0-beta03
2024 年 6 月 12 日
androidx.compose.material3:material3-*:1.3.0-beta03
已发布。版本 1.3.0-beta03 包含 这些提交。
外部贡献
- 使
androidx.compose.material3.DropdownMenu
可从通用源集访问。(If62c0)
版本 1.3.0-beta02
2024 年 5 月 29 日
androidx.compose.material3:material3-*:1.3.0-beta02
已发布。版本 1.3.0-beta02 包含 这些提交。
API 更改
Modifier.pullToRefreshIndicator
支持提升,更新下拉刷新 API 使启用成为布尔值,而不是 lambda。支持PullToRefreshBox
中的内容对齐 (I75679)- 使
TooltipScope
成为一个密封接口,并创建一个内部实现,用于在TooltipBox
和标签中使用。(I3833e) - 为
CarouselItemScope
添加了两个新的修饰符 -maskClip
和maskBorder
- 以便轻松地为任何轮播项目添加形状和边框 (Id67a1) TimePickerState
现在是一个接口,允许设置时间 (I88546)- 更新了用于设置链接样式的 API:将
TextLinkStyles
移动到TextStyle
,并从 material 中删除了TextDefaults
。(I5477b)
错误修复
- [
ModalBottomSheet
] 状态和导航栏图标现在会响应暗色主题状态。(Ie1fe7, b/338342149) - 为
ModalBottomSheet
遮罩添加了关闭表语义。(0e61cb,b/328801864)
外部贡献
版本 1.3.0-beta01
2024 年 5 月 14 日
androidx.compose.material3:material3-*:1.3.0-beta01
已发布。版本 1.3.0-beta01 包含 这些提交。
API 更改
- 使用
DpSize
而不是CaretProperties
。删除CaretProperties
。将CaretScope
重命名为TooltipScope
。(Id9a76) - 更新了获取 Material 主题链接的 API。具体而言,删除了
TextDefaults
中用于构造主题LinkAnnotations
和解析带有主题链接的 HTML 的方法。而是添加了一个TextLinkStyles
类,允许将链接作为参数传递给 Text 可组合项以设置样式。(I31b93)
版本 1.3.0-alpha06
2024 年 5 月 1 日
androidx.compose.material3:material3-*:1.3.0-alpha06
已发布。版本 1.3.0-alpha06 包含 这些提交。
突破性变化
新的下拉刷新 API
- 简化了
PullToRefreshState
,使用小数而不是 Dp 单位。 isRefreshing
状态由用户控制,而不是由PullToRefreshState
控制。- 将嵌套滚动连接从
PullToRefreshState
中分离出来。它由新的PullToRefreshBox
或Modifier.pullToRefresh
处理。 - 此更新是之前实验性 API 的重大更改。(I0adeb, b/314496282, b/317177684, b/323787138, b/324573502, b/317177683)
- 简化了
API 更改
RippleConfiguration#isEnabled
已被删除,LocalRippleConfiguration
已变为可为空。要禁用涟漪,请不要提供isEnabled = false
的RippleConfiguration
,而是向LocalRippleConfiguration
提供null
。(I22725)- [
ModalBottomSheet
] 在启用边缘到边缘时更准确地绘制了状态栏上的遮罩。模态底部表内容现在可以消耗窗口内边距,允许在导航栏上方显示可见内容。ModalBottomSheet
参数windowInsets
重命名为contentWindowInsets
,以指定内边距将应用的位置,这些内边距不再与窗口逻辑绑定。contentWindowInsets
类型已更改为返回WindowInsets
的函数,以允许在新的窗口中解析它。(I39630, b/274872542, b/300280229, b/290893168) PrimaryScrollableTabRow
和SecondaryScrollableTabRow
现在使用自定义布局而不是子组合,这应该可以提高性能。(I991e0)- 文本链接除了普通样式、悬停和焦点外,还获得了按下状态样式选项。每个
TextDefaults
方法都获得了pressedStyle
参数以支持该功能。(Ic473f, b/139312671)
错误修复
- 导航抽屉拖动锚点现在与
drawerContent
的宽度匹配。(Ibc72f, b/245355396) OutlinedTextField
现在考虑了系统字体大小,为标签的顶部内边距。(Idc781)- 修复了
CalendarLocale
的包位置。 (Ifa235) - [预测返回] 更新预测返回动画,使用 (0.1, 0.1, 0, 1) 的插值曲线 (I2591a)
版本 1.3.0-alpha05
2024 年 4 月 17 日
androidx.compose.material3:material3-*:1.3.0-alpha05
已发布。版本 1.3.0-alpha05 包含 这些提交。
新功能
SearchBar
和DockedSearchBar
有新的重载,可以接受文本字段参数。这允许对文本字段进行单独的样式设置,与搜索栏的其余部分分开,以及传递自定义文本字段。当前实现的文本字段已作为SearchBarDefaults.InputField
提供。 (I50c73, b/275074248, b/278773336, b/326627700)- lambda
drawTick
已添加到公共 API 中,以便根据需要自定义刻度 (I0c048)
API 更改
- 文本链接除了普通样式、悬停和聚焦外,还获得了按下状态样式选项 (I5f864, b/139312671)
- 更新了
CarouselItemInfo
以公开项目被裁剪的遮罩矩形 (I785d8) - 从 Material 3 公共 API 中删除了
BasicTooltipState
。其功能与TooltipState
相结合,直到 Foundation 的BasicTooltip
稳定。 (Icda29) - 添加了一个
TextDefaults
对象,其中包含用于构建LinkAnnotation
和解析 HTML 标记字符串的方法,这些方法将MaterialTheme
应用于链接 (I98532, b/139312671) ExposedDropdownMenuBoxScope
不再允许子类。公开的下拉菜单现在有一个MenuAnchorType
,应将其传递给menuAnchor
以支持更好的 a11y。这应该用作传递focusable
到ExposedDropdownMenu
的替代方法,后者现在已弃用。menuAnchor
有一个新的参数来控制enabled
状态。 (I55ee6, b/257209915, b/308840226)- 修复了禁用时
OutlinedButton
的边框颜色。添加了ButtonDefaults.outlinedButtonBorder("enabled")
重载,它接受启用状态。 (Ie650b, b/318461363) - 添加了一个新的
CarouselItemInfo
类来帮助客户端获取有关项目大小的信息。 (I9070c) - 没有表面容器的
ColorScheme
构造函数现在已弃用。请迁移到包含表面容器的构造函数。 (I35c11) - [Outlined]
TextFieldDefaults
ContainerBox
重命名为Container
。 (Ie8d3b)
错误修复
- 如果
sheetSwipeEnabled
为 false,BottomSheetScaffold
将不再从嵌套滚动中滚动。 (I5e1c1, b/306464779) - 在
IconButtonSamples.kt
中删除了一些ExperimentalMaterial3Api
OptIn 注释。 (I111d1)
版本 1.3.0-alpha04
2024 年 4 月 3 日
androidx.compose.material3:material3-*:1.3.0-alpha04
已发布。版本 1.3.0-alpha04 包含 这些提交。
新功能
- 添加了两个实验性的 Material3 轮播 版本 -
HorizontalMultiBrowseCarousel
和HorizontalUncontainedCarousel
(I88d64) - 更新了 Compose M3 导航抽屉 (
ModalDrawerSheet
和DismissibleDrawerSheet
),以支持 U+ 上的预测返回,作为可选功能 (Ie5b0b) - 在 Icon 中添加了一个新的 API,允许将颜色色调作为 lambda 传递,以避免重新合成。 (I5b5a2)
- 顶部应用栏 API 现在支持固定部分和可折叠部分的自定义高度。 (Ib8b0c, b/323403446)
API 更改
- 顶部应用栏 API 现在支持固定部分和可折叠部分的自定义高度。修复了在滚动内容时导致单行顶部应用栏重新合成次数过多的问题。解决了
MediumTopAppBar
在具有大型字体/显示设置的设备上截断标题的问题。 (Ib8b0c, b/323403446, b/300953236, b/286296147, b/330410290, b/308540676) SegmentedButton
和相关 API 现在已稳定 (I8a158)SwipeToDismissBox
、SwipeToDismissBoxDefaults
、SwipeToDismissBoxState
和SwipeToDismissBoxValue
现在被标记为稳定。 (I5f000)- 删除了已弃用的
DismissDirection
和DismissValue
枚举和 API。 (I89ccd) - 在 Carousel 的
CarouselState
伴侣对象中添加了一个实验性标签。 (I94154) - 弃用
LocalMinimumInteractiveComponentEnforcement
并引入LocalMinimumInteractiveComponentSize
来替换它。 (I7a7ac) SearchBarColors
构造函数现在是公开的。 (I769ca)- 在
SwipeToDismissBox
中添加了一个gesturesEnabled
参数。 (Idc59f, b/324170119) - 删除了标记为已弃用和实验性的文本字段 API。 (I1305f)
版本 1.3.0-alpha03
2024 年 3 月 20 日
androidx.compose.material3:material3-*:1.3.0-alpha03
已发布。版本 1.3.0-alpha03 包含 这些提交。
视觉上的重大变化
- 更新焦点状态覆盖层为 0.1f,以确保足够的颜色对比度。(I7ea77)
- 对
lightColorScheme
和darkColorScheme
中的表面和背景颜色的默认值进行了细微调整。(I9db52)
新功能
- 添加了参数以自定义
ExposedDropdownMenu
。特别是,菜单现在有一个focusable
参数(默认值为true
),在使用可编辑文本字段时应将其设置为false
。 (I4184c, b/323694447, b/278609042)
API 更改
ScaffoldSubcomposeInMeasureFix
标志已删除。 (Ie2a4b)NavigationRailItemColors
现在被标记为@Immutable
。 (If6112, b/327660613)NavigationBarItemColors
现在被标记为@Immutable
。 (I42a30, b/298064514)- 重新排序滑块轨道可组合中的参数。 (I9f315)
ExposedDropdownMenu
现在使用Popup
实现。行为应该相同,除了使用可编辑文本字段的可聚焦菜单可能会在键盘上键入时被关闭。
错误修复
- 表面和表面容器基线角色已略微调整,在亮色和暗色主题中提供更多色调。(I677a5)
- 更新了滑块和
ProgressIndicator
的颜色,以遵循新的非文本对比度规范。(I26807) - 更新焦点状态覆盖层为 0.1f,以确保足够的颜色对比度。(I7ea77)
- 对
lightColorScheme
和darkColorScheme
中的表面和背景颜色的默认值进行了细微调整。(I9db52)
版本 1.3.0-alpha02
2024 年 3 月 6 日
androidx.compose.material3:material3-*:1.3.0-alpha02
已发布。版本 1.3.0-alpha02 包含 这些提交。
API 更改
- 使滑块状态再次稳定。使
State.onValueChangeFinished
再次成为 val。将onValueChangeFinished
包裹在rememberUpdatedState
中。 (I82ab2, b/322269951) - 导航组件现在使用新的
SurfaceContainer
角色。DrawerDefaults
现在提供不同的standardContainerColor
和modalContainerColor
属性。DrawerDefaults.ModalDrawerElevation
现在为0.dp
。 (I7fbac) - 从
Slider
的状态中删除@Stable
,因为我们将state.onValueChangeFinished
更改为var
。 (Ied34a, b/322269951) ModalBottomSheet
和StandardBottomSheet
动画规范现在是一个TweenSpec
,从弹簧动画更新而来。这解决了可见过冲问题。已弃用的SheetState
构造函数(没有密度)现在已删除。 (I7babc, b/285847707)
错误修复
- 组件现在使用
SurfaceContainer
变体。以前使用 Surface 和TonalElevation
计算颜色的组件现在默认使用SurfaceContainer
角色,不受音调高度的影响。 (b/304584161) - 修复了导致
ElevatedFilterChip
的未选中、禁用的容器颜色为黑色的错误。 (I400e6, b/322407043) - 修复了进度为 0 时不确定的进度指示器 (Id6582)
- 修复了
Slider
和RangeSlider
在 RTL 布局上的问题 (Iab0e1) - 为滑块范围计算添加了
SliderRangeTolerance
,因为浮点数舍入可能不准确。 (Ic918a, b/324934900) - 确保
DatePickerDialog
在嵌套DateRangePicker
时或在具有较大字体的较小屏幕上显示任何类型的日期选择器时,显示其按钮。 (Ie4758, b/325107799, b/277768544) Menu
现在利用SurfaceContainer
角色来设置容器颜色。MenuDefaults.TonalElevation
现在为0.dp
。 (I135b7)TextField
现在利用SurfaceContainerHighest
角色来设置容器颜色。 (I4dced)- 高亮芯片现在使用
SurfaceContainerLow
角色 (I7cd2f) DatePicker
容器颜色现在是SurfaceContainerHigh
。DatePickerDefaults.TonalElevation
现在是0.dp
。 (Ida753)- 更新底部表单容器颜色和拖动把手颜色。 (I72a0a)
RichTooltip
容器颜色现在是SurfaceContainer
。 (Ia8b45)SearchBar
容器颜色现在是SurfaceContainerHighest
。SearchBarDefaults.TonalElevation
现在是0.dp
。 (I88604)- 更新开关禁用和未选中的轨道/图标以使用
SurfaceContainerHighest
颜色角色。 (I7687a) AlertDialog
容器颜色现在是SurfaceContainerHigh
。 (Ie0433)BottomAppBar
容器颜色现在是SurfaceContainer
。TopAppBar
onScroll
颜色现在是SurfaceContainer
。 (I41630)ElevatedCard
容器颜色现在是SurfaceContainerLow
。FilledCard
的容器颜色是SurfaceContainerHighest
。 (I35141)ElevatedButton
容器颜色现在是SurfaceContainerLow
。FilledIconButton
在未选中时现在具有SurfaceContainerHighest
的容器颜色。 (I792c9)- 更新
TimePicker
容器颜色和时钟表盘颜色角色为SurfaceContainerHighest
。 (I43b93)
版本 1.3.0-alpha01
2024 年 2 月 21 日
androidx.compose.material3:material3-*:1.3.0-alpha01
已发布。 版本 1.3.0-alpha01 包含这些提交。
新功能
- 更新 Compose M3
ModalBottomSheet
以支持 U+ 上的预测后退 (Iccf32, b/281967264, b/304850357) - 更新 Compose M3
SearchBar
以支持 U+ 上的预测后退 (I657f8) - 更新了滑块,通过添加间隙和停止指示器来提高可访问性。(I3058e)
- 更新了
ProgressIndicator
,通过添加间隙和停止指示器来提高可访问性。(I21451) - 为富文本提示添加默认插入符,新的富文本提示 API 现在允许根据锚点
LayoutCoordinates
绘制自定义插入符。 (Ifd42c)
行为变化
- 材质组件已迁移到使用新的涟漪 API,不再查询
RippleTheme
。
API 更改
- 该函数
drawStopIndicator
现在是公开的。 (I3f59f) - 将
DatePicker
的formatWithSkeleton
函数标记为内部 (Ic65dc) DropdownMenu
现在支持自定义颜色、形状、高亮和边框。 (I8e981, b/289554448, b/301887035, b/283654243)- 其 API 中公开
MutableInteractionSource
的 Material3 组件已更新为现在公开一个可为空的MutableInteractionSource
,其默认值为null
。 这里没有语义变化:传递 null 表示您不希望提升MutableInteractionSource
,并且如果需要,它将在组件内部创建。 更改为 null 允许某些组件从不分配MutableInteractionSource
,并允许其他组件仅在需要时才延迟创建实例,这提高了这些组件的性能。 如果您没有使用传递给这些组件的MutableInteractionSource
,建议您改为传递 null。 还建议您在自己的组件中进行类似的更改。 (I41abb, b/298048146) - 添加
RippleConfiguration
和LocalRippleConfiguration
以允许使用固定值对涟漪进行逐组件/子树自定义。 例如,要更改您无法控制的组件的颜色,或者要禁用组件的涟漪。 在大多数情况下,应使用默认值:这些 API 是针对单个组件/有限子树自定义的备用方案。 对于更广泛的更改和自定义设计系统,您应该改为使用createRippleModifierNode
构建您自己的涟漪。 (I7b5d6, b/298048146) - 在 material3 中添加新的涟漪 API,它取代了已弃用的
rememberRipple
。 还添加了一个临时的CompositionLocal
,LocalUseFallbackRippleImplementation
,以使 material3 组件恢复使用已弃用的rememberRipple
/RippleTheme
API。 这将在下一个稳定版本中删除,并且仅用于在您提供自定义RippleTheme
的情况下临时迁移帮助。 (I34cbc, b/298048146)
错误修复
- 删除
ModalBottomSheet
内部的子组合,以提高性能。 解决了ModalBottomSheet
在特定情况下与LookaheadScope
组合使用时可能崩溃的问题。 (I2a198) - 删除
BottomSheetScaffold
内部的子组合,以提高性能。 解决了BottomSheetScaffold
在特定情况下与LookaheadScope
组合使用时可能崩溃的问题。 (Ie6401) - 徽章对齐方式已调整为更靠近锚定内容的中心,相对于右上角。 (I18a28)
- 修复了
DateRangePicker
的一个 a11y 问题,其中月-年文本标题被传达为对屏幕阅读器、开关访问和语音访问用户的可操作内容。 (I2ac55) - 修复了
mediumTopAppBarColors
参数顺序错误。 (Ibe64a)
版本 1.2
版本 1.2.1
2024 年 3 月 6 日
androidx.compose.material3:material3-*:1.2.1
已发布。 版本 1.2.1 包含 这些提交。
错误修复
- 使滑块状态再次稳定。 使
State.onValueChangeFinished
再次成为 val。 将onValueChangeFinished
包裹在rememberUpdatedState
中。 (Ie8fd0, b/322269951) - 从
Slider
的状态中删除@Stable
,因为我们正在将state.onValueChangeFinished
更改为var
。 (I82ba1, b/322269951) - 修复
NavigationBar
自定义颜色以从默认值复制。 (80a779, b/326894020) - 修复
ExposedDropdownMenu
的回归以使其再次可聚焦 (3fcec1, b/323694447) - 修复按钮颜色缓存问题 (3e5bbcb/327371655)
版本 1.2.0
2024 年 2 月 7 日
androidx.compose.material3:material3-*:1.2.0
已发布。 版本 1.2.0 包含这些提交。
已知问题
- 在
PrimaryTabRow
中,作为性能改进更改的一部分,引入了视图-组合互操作渲染 错误。 解决方法是使用TabRow
和TabRowDefaults.PrimaryIndicator
自 1.1.0 以来的重要更改
新的 Material Design 3 组件
- 下拉刷新
- 分段按钮
对现有 Material Design 3 组件的增强。
- 底部应用栏(RTL 对齐、滚动时自动隐藏)
- 选项卡视觉更新
- 徽章(对齐更新)
将实验性 API 提升为稳定版!
性能改进
- 请参阅 这篇博文 了解详细信息!
版本 1.2.0-rc01
2024 年 1 月 24 日
androidx.compose.material3:material3-*:1.2.0-rc01
已发布。 版本 1.2.0-rc01 包含这些提交。
错误修复
- 修复了
mediumTopAppBarColors
参数顺序错误。 (Ibe64a) - 修复了
1.2.0-beta02
中的CardDefaults.cardColors
中引入的错误,该错误没有根据containerColor
参数值更新contentColor
。 (Iee041, b/319671246) - 修复了
1.2.0-beta02
中引入的disabledContentColor
中的错误,并添加了少量优化。 (I6dda1, b/318428829)
版本 1.2.0-beta02
2024 年 1 月 10 日
androidx.compose.material3:material3-*:1.2.0-beta02
已发布。 版本 1.2.0-beta02 包含这些提交。
已知错误
- 在
IconButtonColors
中,默认情况下会将disabledContentColor
分配给LocalContentColor
的 alpha(0.38f),而不是用户指定的contentColor
。 解决方法是显式设置disabledContentColor
。 这将在下一个版本中修复。
API 更改
- 添加了为普通
Tooltip
API 启用工具提示插入符的功能。 (Ibf767) SwipeToDismissState
、rememberSwipeToDismiss
和SwipeToDismissValue
的名称都已更改为包含_SwipeToDismissBox_
。 (I68d6d)
错误修复
- 修复了
ListItem
结束填充值以与规范对齐。 (Ibd68b, b/305342674) - 轮廓卡片的轮廓颜色现在已正确映射到
OutlineVariant
。 (I75480, b/310979715) - 动态颜色现在从系统定义的颜色角色中提取。 这提高了可访问内容的对比度,并将动态颜色更紧密地与材质规范对齐。 (I1de96)
- 修复了在 Android T/13+ 上,当
android:enableOnBackInvokedCallback="true"
时,ModalBottomSheet
返回处理的问题。(I728dc, b/306196110)
版本 1.2.0-beta01
2023 年 12 月 13 日
androidx.compose.material3:material3-*:1.2.0-beta01
已发布。 版本 1.2.0-beta01 包含以下提交。
API 更改
- 将
TabIndicatorScope
标记为实验性。(I45c88) - 移除已弃用的工具提示实验性 API。(I438cb)
- 更改新的
TabRow
重载以不使用子组合。这会导致使用提供的自定义修饰符构建TabRow
指示器的方式不同。(Ife741) - 弃用
DismissDirection
和DismissValue
API。这些已合并为SwipeToDismissValue
,其值指示SwipeToDismissBox
的位置和方向。DismissState.progress
现在标记为FloatRange
,介于0.0
和1.0
之间。已移除DismissState
已弃用的 Saver 和构造函数。SwipeToDismiss
组件、状态和默认对象已重新标记为实验性。(Ib54f2)
错误修复
- 现在,
PullToRefresh
的默认指示器是打开的箭头,而不是实心三角形。(I67be3)
版本 1.2.0-alpha12
2023 年 11 月 29 日
androidx.compose.material3:material3-*:1.2.0-alpha12
已发布。 版本 1.2.0-alpha12 包含以下提交。
API 更改
- 现在,
RangeSlider
使用 Kotlin 范围(例如,0f..1f
),而不是自定义FloatRange
值类。SnapFlingBehavior.kt
现在也使用 Kotlin 范围。(I025cb) - 将修饰符工厂函数标记为
@Stable
。(Ib109f)
版本 1.2.0-alpha11
2023 年 11 月 15 日
androidx.compose.material3:material3-*:1.2.0-alpha11
已发布。 版本 1.2.0-alpha11 包含以下提交。
新功能
- 实现了
PullToRefreshContainer
和PullToRefreshState
,它们共同在 Material3 中提供下拉刷新实现。(I16456, b/261760718)
API 更改
- 将
SwipeToDismissBox
的DismissDirection
和DismissValue
标记为实验性。(I517b0) - 将
SwipeToDismiss
重命名为SwipeToDismissBox
。将background
重命名为backgroundContent
,将dismissContent
重命名为尾随content
lambda。(I7f4d3) - 使
ChipElevation
和SelectableChipElevation
的构造函数公开。(Ie0c48, b/308432421) - 添加
ModalBottomSheetProperties
。将securePolicy
移至ModalBottomSheetProperties
。将isFocusable
和shouldDismissOnBackPress
添加到ModalBottomSheetProperties
。这些新的布尔值有助于确定模式底部工作表应如何处理 IME 事件。(Iea56f, b/278216859) - 更新了
RangeSlider
和Slider
状态以移除initialOnValueChange
,初始前缀和相应的 kdocs。(I57d30) - 弃用
ChipBorder
类及其关联的函数调用,建议改为直接使用BorderStroke
。(I89cc2) - 基础工具提示 API 现在是
@ExperimentalFoundationApi
。(I30b0b) TabRow
和ScrollableTabRow
不再弃用。新的主要和次要变体被标记为实验性。(I0def6)- 筛选和输入芯片现在直接使用
BorderStroke
。(I07a8d) SegmentedButton
现在直接使用BorderStroke
。(I89b9b)- 将通用
AlertDialog
函数重命名为BasicAlertDialog
,并弃用之前的函数。(Idbe52) - 将
SwipeToDismiss
API 重命名为SwipeDismiss
,并将新的SwipeDismiss
API 提升为稳定版。(I14cbe) - 将
tonalElevation
和shadowElevation
添加到工具提示 API。此外,将TooltipBox
、PlainTooltip
和RichTooltip
API 移回实验性,因为它们意外地发布为稳定版。(If0f66, b/293939035) - 将实验性芯片 API 提升为稳定版。(Iea2c3)
- 从 Material3 可点击卡片中移除
@ExperimentalMaterial3Api
注释。(I88dbf)
错误修复
- 修复了在某些情况下,使用嵌套的 Lookahead 和 Lazy 布局时,
SwipeToDismiss
会崩溃的问题。(Ica8d1, b/297226562)
版本 1.2.0-alpha10
2023 年 10 月 18 日
androidx.compose.material3:material3-*:1.2.0-alpha10
已发布。 版本 1.2.0-alpha10 包含以下提交。
API 更改
- 将
Badge
和BadgedBox
提升为稳定版。(I67f16, b/261565132) - 将
securePolicy
作为参数添加到ModalBottomSheet
,以便用户可以定义WindowManager.LayoutParams.FLAG_SECURE
的行为。(Icdac8, b/296250262) - 添加了
LinearProgressIndicator
和CircularProgressIndicator
的新重载,它们接受progress
作为 lambda。这些应该比以前的版本更高效。(I824e6, b/295616656) - 将
StandardSizeClasses
重命名为AllSizeClasses
。(I8cb07) - 合并窗口大小类的计算函数。(Iad935)
错误修复
- 修复了当快速点击导航箭头按钮(此时显示的月份位于允许的年份范围的边缘)时,
DatePicker
崩溃的问题。(I46f36, b/290954897, b/297002119) - [导航栏/条] 支持指示器透明颜色。(Ie0a9b, b/267289987)
版本 1.2.0-alpha09
2023 年 10 月 4 日
androidx.compose.material3:material3-*:1.2.0-alpha09
已发布。 版本 1.2.0-alpha09 包含以下提交。
API 更改
- 将
ModalNavigationDrawer
和DismissibleNavigationDrawer
迁移为使用新的AnchoredDraggable
API。DrawerState
的animateTo
已被打开和关闭方法替换,偏移量现在以浮点数形式公开,而不是状态对象。您可以通过currentOffset
直接访问偏移量。(I0a72c) - 已添加非可组合函数,用于直接创建
DatePickerState
和DateRangePickerState
。这些函数可以用作可组合的rememberDatePickerState
和rememberDateRangePickerState
函数的替代方案,具体取决于需要。(I70326, b/291524052) - 修复了,现在可滚动
TabRows
具有主要和次要变体。这些正确地映射到 Material3 中定义的颜色和指示器行为。 PrimaryScrollableTabRow
和SecondaryScrollableTabRow
现在公开滚动状态。(Iec8f5, b/260572337)- 添加了一个新的
sheetMaxWidth
参数,开发人员可以设置它来指定工作表将跨越的最大宽度。如果希望工作表跨越整个屏幕宽度,则可以为参数传递 Dp.Unspecified。(Ifb7c9, b/266697696) - 将
PlainTooltipBox
和RichTooltipBox
API 添加为已弃用的方法。(I246fa)
错误修复
- 修复了当
DatePicker
使用具有某些日期骨架的DatePickerFormatter
初始化时(例如,YY),该日期骨架在转换为日期模式后保持不变,导致崩溃的问题。(I01f29)
版本 1.2.0-alpha08
2023 年 9 月 20 日
androidx.compose.material3:material3-*:1.2.0-alpha08
已发布。 版本 1.2.0-alpha08 包含以下提交。
重大变更
ColorScheme
现在是不可变的,这使得单独更新颜色效率较低,但使得更常见的颜色使用效率更高。此更改背后的原因是,大多数应用程序不会将更新单个颜色作为主要用例。这仍然是可能的,但它会比以前重组更多,反过来,我们显著减少了 Material 代码中所有状态订阅的数量,并将影响更多标准用例的初始化和运行时成本。(Ic447d, b/297212873)- 音调升降不再在不同的交互状态下进行动画以匹配规范。(Icdd12)
API 更改
- 添加了一个新的
BottomAppBar
,它以BottomAppBarScrollBehavior
作为参数,以便在内容滚动时自动隐藏它。还添加了FabPosition.EndOverlay
,允许 FAB 在脚手架中的底部应用栏上覆盖,而不是固定在其上方。(Iecb47) - 添加了一个简单的 Label 组件,它构建在
BasicTooltipBox
之上,在点击标签边界之外时不会消失。(I821f9)
错误修复
- 删除了工具提示中
rememberSaveable
的使用。(Icc131,b/299500338) - 引入了一个临时标志来控制脚手架是否应该在测量期间或放置期间测量其子元素。默认情况下,这将在测量时进行测量。如果您遇到新行为的问题,请提交问题。(I0b354)
- 通过使用设备屏幕宽度的正确测量值,修复了
BottomSheet
中的水平边缘到边缘。(I1df0c,b/299058752) - 修复了一个错误,该错误导致
ModalBottomSheet
在通过向下滑动表单消除表单时没有调用onDismissedRequest
。(Idfdd8)
版本 1.2.0-alpha07
2023 年 9 月 6 日
androidx.compose.material3:material3-*:1.2.0-alpha07
已发布。版本 1.2.0-alpha07 包含这些提交。
新功能
- 自动镜像图标支持已在
compose material 1.6.0-alpha05
中添加,有关自动镜像图标的详细信息,请参阅 发行说明。
API 更改
SliderState
实现DraggableState
(I9b116)- 更改形状为必需参数。将形状帮助器函数中的
position
重命名为index
。(I34941) - 更新了
DatePicker
的formatWithSkeleton
,以包含一个用于性能改进的缓存映射。(I3195f) - 将
BasicTooltipBox
添加到compose.foundation
中,并将PlainTooltipBox
和RichTooltipBox
更新为使用TooltipBox
,以及新的PlainTooltip
和RichTooltip
可组合项。(I79e1d)
错误修复
dynamicLightColorScheme
和dynamicDarkColorScheme
现在为表面和surfaceContainer
角色返回更高色度颜色。(I5e901)- 修复了一个问题,该问题导致某些在脚手架内使用子组合(例如
BottomSheetScaffold
)的组件在LookaheadScope
内尝试过早读取其大小。(I297b4,I871f1,b/295536718)
版本 1.2.0-alpha06
2023 年 8 月 23 日
androidx.compose.material3:material3-*:1.2.0-alpha06
已发布。版本 1.2.0-alpha06 包含这些提交。
错误修复
- 修复了
DropdownMenu
的offset
计算,因此 x 偏移量完全取决于本地布局方向,并且当菜单靠近屏幕底部时,y 偏移量将不再被反转。(Iccc74,b/294103942) - 修复了
DropdownMenu
的offset
计算,因此 x 偏移量完全取决于本地布局方向,并且当菜单靠近屏幕底部时,y 偏移量将不再被反转。(Ib87a2,b/294103942)
版本 1.2.0-alpha05
2023 年 8 月 9 日
androidx.compose.material3:material3-*:1.2.0-alpha05
已发布。版本 1.2.0-alpha05 包含这些提交。
API 更改
- 更新了复选框和
TriStateCheckbox
的颜色。CheckboxDefaults.colors()
的disabledUncheckedColor
现在只影响复选框的边框。需要在禁用且未选中时设置内部框颜色的特殊情况需要使用具有所需颜色值的CheckboxColors
的自定义构造实例。(I77d17,b/291943198)
版本 1.2.0-alpha04
2023 年 7 月 26 日
androidx.compose.material3:material3-*:1.2.0-alpha04
已发布。版本 1.2.0-alpha04 包含这些提交。
新功能
- 实验性分段按钮 API (Ifc8fb)
- 分隔线现在有一个参数来控制方向,以支持垂直分隔线。(I4c899,b/288438593)
API 更改
- 我们将密度依赖关系移动到组件级别。这适用于以下组件:
SwipeToDismiss
和基于表单的组件。请使用提供的密度为参数的新重载。(I1846e) - 用于指定可组合项的允许输入的附加注释 (Ief234)
- 将图标参数添加到分段按钮,拆分语义,以便分段按钮可以被选择以实现单选,并且可以切换以实现多选,分别使用
SelectableSegmentedButtonRow
和ToggelableSegmentedButtonRow
。(I38740) - 分隔线已重命名为
HorizontalDivider
。添加了VerticalDivider
功能。(I5975c) - 将实验性 Material3 API 中对
ClosedFloatingPointRange
的使用更改为更轻量级的FloatRange
,以最大程度地减少自动装箱。(I4aab5) - 为
FabPosition
添加了新的开始对齐。(Ib7aea,b/170592777)
错误修复
ModalBottomSheet
尊重本地布局方向。(Ib4f44,b/285628622)
版本 1.2.0-alpha03
2023 年 6 月 21 日
androidx.compose.material3:material3-*:1.2.0-alpha03
已发布。版本 1.2.0-alpha03 包含这些提交。
行为变化
- 在 Material 3 排版中,
includeFontPadding
现在默认情况下为false
。默认行高样式也已更改为Trim.None
和Alignment.Center
,并且Typography
的TextStyle
中已添加显式lineHeight
(以 sp 为单位)。如果您想自定义这些值,请查阅 API 文档,并查看 博客文章,了解这些更改的深入解释。(I6266f,Icabc3)
新功能
- 为
RangeSlider
添加了一个重载,它是组件的带状态版本。创建了RangeSliderState
,它保存了当前活动轨道的所有信息、RangeSlider
组件的测量值以及拖动和手势逻辑。(I8c270) - 搜索栏现在通过新添加的
shadowElevation
参数支持阴影。(Ia5369,b/271040353) ColorScheme
现在支持新的SurfaceContainer
角色。- 表面音调升降覆盖现在可以使用
LocalTonalElevationEnabled
组合本地禁用。(Ic203c,b/277774590)
API 更改
- 打开组件颜色构造函数。(I8c4a6)
- 在两个工具提示 API 中添加可聚焦参数,以便开发人员可以让工具提示消耗触摸事件或不消耗触摸事件。请注意,这可能会破坏辅助功能焦点自动遍历。(Ie32d8)
- 优化了辅助功能的性能和内存分配。(Iede48)
- 公开
DefaultSizeClasses
并为WindowSizeClasses
创建StandardSizeClasses
(I91838) - 将
WindowWidth/HeightSizeClass
更改为浮点值类 (Ie686e)
错误修复
- 脚手架的
contentWindowInsets
参数现在尊重已消耗的窗口内边距。请注意,当提供这些参数时,基于topBar
和bottomBar
的内容填充行为保持不变。(I08b73,b/264601542) - 修复了居中顶部应用栏的对齐方式,以确保长标题不会渲染在操作图标或导航图标上。(I4369f,b/236994621)
- 标签位置现在强制执行 24.dp 的最小内容宽度。这为标签指示器提供了一个可访问的触摸目标。(Id8861)
- 来自
dynamicLightColorScheme
和dynamicDarkColorScheme
的动态颜色调色板现在支持新的表面角色。(I1252e) - 更新徽章通知对齐方式,使其在与曾祖父节点冲突时不会被裁剪。(Idf75a)
版本 1.2.0-alpha02
2023 年 5 月 24 日
androidx.compose.material3:material3-*:1.2.0-alpha02
已发布。 版本 1.2.0-alpha02 包含这些提交。
API 更改
- 将窗口内边距参数添加到
ModalBottomSheet
中。- 现在可以使用
windowInsets
设置为零,将ModalBottomSheet
的遮罩绘制在状态栏后面。 - 更新了默认的
ModalBottomSheet
功能,使其保持在系统栏(包括导航栏)之外。 - 状态栏内边距处理由边缘到边缘模式下的拖动手柄提供。
BottomSheetDefaults
包含BottomSheetWindow
的窗口内边距。(I31200, b/274872542, b/272973615, b/272334475, b/268432129, b/275849044, b/275486106, b/268433162)
- 现在可以使用
- 弃用
Indicator
并添加Primary
/SecondaryIndicator
以匹配 M3 规范。PrimaryIndicator
匹配选项卡内容的宽度,而SecondaryIndicator
跨越所有可用宽度。SecondaryIndicator
等效于现在已弃用的Indicator
,可以作为直接替换。(I27604) - 添加了一个选项,在构造
DropdownMenu
或ExposedDropdownMenu
时传入ScrollState
,用于控制显示的菜单项的垂直滚动状态。(Ia0734, b/185304441) - 为
Slider
添加了一个重载,它是该组件的带状态版本。创建了SliderState
,它保存当前活动轨道的所有信息,Slider
的组件测量结果以及拖动和手势逻辑。(I124a5) - 将语义属性
isContainer
重命名为isTraversalGroup
(I121f6) - 添加了使用完整参数列表的优化
TextStyle.merge(...)
。(Iad234, b/246961787) - 将
TooltipState
、RichTooltipState
和PlainTooltipState
设为公共接口。添加了RichTooltipStateImpl
和PlainTooltipStateImpl
,用于默认状态。添加了remember*State
函数,用于获取这些已实现的状态。删除了TooltipSync
,代之以TooltipDefault.GlobalMutatorMutex
。(I7813d) - 更新了
DatePickerColors
,以包括日期选择器分隔线、导航和文本输入字段颜色的更多自定义选项。(I1a685, b/274626815) DatePickerState
和DateRangePickerState
现在是公共接口,具有默认实现,可以通过rememberDatePickerState
和rememberDateRangePickerState
获取。(I71c52)- 从
DatePicker
和DateRangePicker
中删除了dateValidator
,并引入了一个SelectableDates
接口,该接口可以设置在状态上以控制 UI 中哪些日期或年份可选择。(Ic2fc6) TimePicker
已从稳定版 API 中移除,状态 API 中预计会进行更多更改 (I3f39a)ModalBottomSheet
已移至仅限 Android 平台。不建议在桌面端使用ModalBottomSheet
,并且该功能没有得到积极维护。(Ib3778)
错误修复
- 修复了
AlertDialog
的关闭操作,当操作相互叠加以适应对话框的宽度时,使其显示在确认操作下方。此修复使实现与 Material Design 规范保持一致。(I029de, b/235454277) - 修复了
ListItem
中使用不正确填充的三行项的错误。(I6e235) ModalBottomSheet
现在可以显示 IME 键盘 (Idc508, b/262140644, b/268380384, b/272483584)
版本 1.2.0-alpha01
2023 年 5 月 10 日
androidx.compose.material3:material3:1.2.0-alpha01
和 androidx.compose.material3:material3-window-size-class:1.2.0-alpha01
已发布。 版本 1.2.0-alpha01 包含这些提交。
版本 1.1
版本 1.1.2
2023 年 9 月 20 日
androidx.compose.material3:material3:1.1.2
和 androidx.compose.material3:material3-window-size-class:1.1.2
已发布。 版本 1.1.2 包含这些提交。
错误修复
- 修复了修饰符错误地传递给两个可组合项的问题。(b/282761472)
- 修复了
TimePickerState
在使用 23 小时初始化时返回错误的小时数问题。(b/278242122) - 修复了中午和分钟验证的初始切换状态。(b/269768197, b/282790635)
- 修复了
state.hour
为晚上 11 点返回错误的值问题。(b/282761472, b/278242122)
版本 1.1.1
2023 年 6 月 21 日
androidx.compose.material3:material3:1.1.1
和 androidx.compose.material3:material3-window-size-class:1.1.1
已发布。 版本 1.1.1 包含这些提交。
错误修复
- 为不带
windowInset
参数的ModalBottomSheet
添加调用,以实现二进制兼容性。(Ib7959) - 将窗口内边距参数添加到
ModalBottomSheet
中。- 现在可以使用
windowInsets
设置为零,将ModalBottomSheet
的遮罩绘制在状态栏后面。 - 更新了默认的
ModalBottomSheet
功能,使其保持在系统栏(包括导航栏)之外。 - 状态栏内边距处理由边缘到边缘模式下的拖动手柄提供。
BottomSheetDefaults
包含BottomSheetWindow
的窗口内边距。(I31200, b/274872542, b/272973615, b/272334475, b/268432129, b/275849044, b/275486106, b/268433162)
- 现在可以使用
版本 1.1.0
2023 年 5 月 10 日
androidx.compose.material3:material3:1.1.0
和 androidx.compose.material3:material3-window-size-class:1.1.0
已发布。 版本 1.1.0 包含这些提交。
1.1.0 的主要功能
新的 Material Design 3 组件
对现有 Material Design 3 组件的增强。
将实验性 API 提升为稳定版!
有关更多详细信息,请参阅此 博客文章!
版本 1.1.0-rc01
2023 年 4 月 19 日
androidx.compose.material3:material3:1.1.0-rc01
和 androidx.compose.material3:material3-window-size-class:1.1.0-rc01
已发布。 版本 1.1.0-rc01 包含这些提交。
API 更改
TimePicker
已从稳定版 API 中移除,状态 API 中预计会进行更多更改 (I3f39a)ModalBottomSheet
已移至仅限 Android 平台。不建议在桌面端使用ModalBottomSheet
,并且该功能没有得到积极维护。(Ib3778)
版本 1.1.0-beta02
2023 年 4 月 5 日
androidx.compose.material3:material3:1.1.0-beta02
和 androidx.compose.material3:material3-window-size-class:1.1.0-beta02
已发布。 版本 1.1.0-beta02 包含这些提交。
API 更改
SheetState
现在具有可选的skipHiddenState
参数rememberStandardBottomSheetState
现在具有可选的skipHiddenState
参数BottomSheetScaffold
现在定义了隐藏锚点,但默认情况下处于禁用状态SheetState.requireOffset
文档已更新BottomSheetDefaults.MinimizedShape
已重命名为BottomSheetDefaults.HiddenShape
(I839f4, b/273870234)
错误修复
- 当启用触控探索时,不要将表盘从小时切换到分钟。(I717d0)
ModalBottomSheet
和BottomSheetScaffold
的拖动手柄语义现在已合并。(I05afb)BottomSheetScaffold
修饰符,containerColor
和contentColor
参数现在仅影响内容。 (I992cb)BottomSheetScaffold nestedScroll
现在为工作表内容实现了弹跳。 (I992cb)
版本 1.1.0-beta01
2023 年 3 月 22 日
androidx.compose.material3:material3:1.1.0-beta01
和 androidx.compose.material3:material3-window-size-class:1.1.0-beta01
已发布。 版本 1.1.0-beta01 包含这些提交。
API 更改
- 在
TimePicker
可组合项中添加布局类型参数。它允许根据屏幕配置使用不同的布局 (Ia0e16) SearchBarDefaults
已被标记为实验性。 (I65561)- 在
BottomSheetScaffold
中添加阴影高度。 (I94e0f) - 添加了在没有标题部分的情况下显示日期选择器的支持。API 更改允许在创建日期选择器时传递空标题。您现在可以传递空标题、标题和
showToggleMode = false
来显示无头选择器。 (Id3f3a, b/266132421, b/267194809)
错误修复
- 搜索栏现在在变为非活动状态时会自动清除焦点。 (I22a7c, b/261444487)
- 更新了
DateRangePicker
以允许选择具有相同日期的开始和结束的范围。 (I16529, b/272882497) - 文本字段现在在字体大小小于预期时会正确地定位其文本元素。这可能会根据字体设置和脚本在您的应用程序中导致一些像素变化。 (I8b8d0)
- 底部工作表语义操作现在有标签。 (I277b0)
版本 1.1.0-alpha08
2023 年 3 月 8 日
androidx.compose.material3:material3:1.1.0-alpha08
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha08
已发布。 版本 1.1.0-alpha08 包含这些提交。
新功能
- 添加了对
BottomSheetScaffold
和BottomSheetScaffoldState
的支持。 (I063d4)
API 更改
- 在
DatePickerState
和DateRangePickerState
中添加了功能,允许在状态的初始创建后设置日期,以及通过设置空时间戳重置选择。手动设置日期应该谨慎进行,如果提供的日期未通过先决条件,新的setSelection
函数将抛出异常(请参阅文档)。 (Ifa645, b/268609314, b/270427389) - 将折叠的
SheetValue
重命名为PartiallyExpanded
以更准确、更灵活地描述此状态下的行为。 (Ia1491) - 更新了
ListItem
参数名称为 _content 而不是 _text。默认 getter 现在是ReadOnlyComposables
(在相关情况下)。 (I69a25) - 将交互式 Surface API 从实验性中毕业。 (I90d59, b/261561812)
错误修复
- 修复了
ModalBottomSheet
的HalfExpanded
状态计算错误,工作表似乎在浮动的问题。 (I45e84, b/268411386) - 在
ModalBottomSheet
的遮罩点击中添加confirmValueChange
检查。 (I2311a, b/270425759) - 将语义
BottomSheet
操作移到拖动句柄。 (I158ba) ModalBottomSheet
现在在启动时命令焦点,处理后退按钮。 (I4d2ab)ModalBottomSheet onDismissRequest
现在也将在嵌套滚动弹跳期间处理。 (I655c5, b/268433166)
版本 1.1.0-alpha07
2023 年 2 月 22 日
androidx.compose.material3:material3:1.1.0-alpha07
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha07
已发布。 版本 1.1.0-alpha07 包含这些提交。
新功能
- 添加了一个与
rememberTimePickerState()
协同工作的时间输入可组合项,它遵循 M3 时间输入规范 (Ia4fab) - 添加了一个 Material 3
DateRangePicker
API 用于选择日期范围。 (I7a6c3, b/267194809) - 添加了 Material 3 输入模式支持,用于通过
DateRangePicker
API 选择日期范围。 (Ifdbc4) - 文本字段颜色现在允许自定义
- 输入字段和占位符文本颜色基于焦点和错误状态。
textColor
参数已重命名为unfocusedTextColor
,placeholderColor
已重命名为unfocusedPlaceholderColor
。 - 填充文本字段的容器颜色基于使用新的
errorContainerColor
参数的错误状态。
- 输入字段和占位符文本颜色基于焦点和错误状态。
- 已使用参数更新了公开的下拉菜单文本字段颜色以支持新的前缀和后缀 API。 (I9c8b4, b/254284181, b/264766350)
API 更改
- 还原了一些滑块 API 版本,并删除了新的带有自定义滑块和轨道的实验性滑块所覆盖的冗余滑块重载。将
RangeSlider
提升为稳定版。 (Ie8fbd) - 在芯片的抬高函数中将
defaultElevation
重命名为elevation
。 (I0f872) - 以下 Material 3 文本字段 API 不再是实验性的:
TextField
、OutlinedTextField
、textFieldWithLabelPadding
、textFieldWithoutLabelPadding
、outlinedTextFieldPadding
。 (Ieb5c0, b/261561819) TimePickers
is24Hour
使用系统设置 (I18856)- 从脚手架 api 中删除了实验性注释。 (Ibb51e, b/261565765, b/261436953)
错误修复
ModalBottomSheet
默认形状现在始终为SheetDefaults.ExpandedShape
。 (I0dfca)- Material 3
DatePicker
和DateRangePicker
的辅助功能改进。 (I5087e) - 修复了最大高度约束被传播并可能导致崩溃的错误。 (I30d8c)
- 从可点击和可选表面中删除了语义角色,更新了使用它们的组件以使用修饰符设置角色。语义 (I793d9)
版本 1.1.0-alpha06
2023 年 2 月 8 日
androidx.compose.material3:material3:1.1.0-alpha06
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha06
已发布。 版本 1.1.0-alpha06 包含这些提交。
新功能
- 文本字段现在支持前缀和后缀文本 (Ia8578, b/179884561)
- 添加了一个
TimePicker
函数来显示一个遵循 Material 3 规范的时间选择器,它与TimePickerState
和便利方法rememberTimePickerState
结合使用 (I71910) - 日期输入现在是
DatePicker
的显示模式。添加了对日期选择器和日期输入模式之间切换的支持。 (Ieeff7) - 添加了
RichTextTooltips
的 API。 (I58ef3) - Material 3 的模态底部工作表实现,包括
ModalBottomSheet
和ModalBottomSheetDefaults
。还引入了SheetState
和rememberSheetState
,可用于将来的工作表组件。 (I0853a, b/244189383)
API 更改
- 稳定 API
showSnackbar
(I195c2, b/261424370) - 稳定辅助芯片和建议芯片的 API (Ibb67b, b/261424370)
- 将
ListItem
、ListItemDefaults
和ListItemColors
API 提升为非实验性 (I7e7fa, b/261438882) - 将
SliderPositions
、SliderDefaults.Thumb
和SliderDefaults.Track
提升为稳定版,并添加非实验性的Slider
和RangeSlider
API,其中包含自定义滑块和轨道。此外,还弃用了之前的Slider
和RangeSlider
API。 (Ie5ea6, b/261566890) - 将
Modifier.tooltipAnchor()
公开,以便开发人员可以将其传递给锚点以指示应在长按时显示工具提示。更新了PlainTooltipBox
API,不再使TooltipState
可为空,并且现在具有默认值。 (Ie2fb7) ProgressIndicatorDefaults.circularTrackColor
已被标记为@Composable
以保持一致性。 (Id29cc)- 恢复属性获取器
LocalMinimuTouchTargetEnforcement
并将其标记为已弃用,并重定向到LocalMinimumInteractiveComponentEnforcement
。 (I60dd5)
版本 1.1.0-alpha05
2023 年 1 月 26 日
androidx.compose.material3:material3:1.1.0-alpha05
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha05
已发布。 版本 1.1.0-alpha05 包含以下提交。
新功能
DatePickerDialog
和无障碍支持- 在
RangeSlider
中添加了自定义滑块和轨道。
依赖项更新
Compose UI
和Compose Material
现在依赖于 Lifecycle 2.6.0。
版本 1.1.0-alpha04
2023 年 1 月 11 日
androidx.compose.material3:material3:1.1.0-alpha04
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha04
已发布。 版本 1.1.0-alpha04 包含以下提交。
新功能
- 初始
DatePicker
API,用于通过日历 UI 选择单个日期。 此 API 仍在不断变化。 (I722b9) - 添加了对通过
PlainTooltipBox
使用普通工具提示的支持。 (I0cdfb) - 搜索栏 (Iad128)
SwipeToDismiss
(I458a8, b/242889540)
API 更改
- 在表面上添加了
IsContainer
语义属性。 此属性将在以后的更改中使用,该更改将根据元素(如表面)的语义含义确定遍历顺序。 (I63379) - 将导航抽屉相关的 API 标记为稳定。 (Iab01e, b/261439597)
- 为圆形进度指示器添加了轨道颜色参数,为圆形和线性进度指示器添加了描边帽参数。 (Ie668c, b/216325962, b/222964817)
- 更多已弃用隐藏函数的返回类型可空性 (Ibf7b0)
- 添加
Modifier.minimumInteractiveComponentSize
。 如果元素的测量尺寸较小,可以使用它保留至少 48.dp 的尺寸以消除触摸交互的歧义。 (I33f58, b/258495559) - 添加了
AlertDialog
可组合的实验性 API,该 API 具有内容插槽。 (Iec4a2)
错误修复
- 进度指示器的进度现在已正确绑定到其预期范围。 (I8a7eb, b/262262727)
已知问题
- 从
androidx.compose.foundation:1.4.0-alpha03
更新到androidx.compose.foundation:1.4.0-alpha04
时,您可能会遇到java.lang.NoSuchFieldError
错误。 此处 是最初报告问题的位置。 已提交修复程序,并将提供在下一个 Compose 更新中。 作为变通方法,请将您的androidx.compose.material
和androidx.compose.material3
库更新到最新版本(1.1.0-alpha04)或将您的androidx.compose.foundation
降级到 1.4.0-alpha03。
版本 1.1.0-alpha03
2022 年 12 月 7 日
androidx.compose.material3:material3:1.1.0-alpha03
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha03
已发布。 版本 1.1.0-alpha03 包含以下提交。
API 更改
- 将
consumedWindowInsets()
重命名为consumeWindowInsets()
,将withConsumedWindowInsets()
重命名为onConsumedWindowInsetsChanged()
,并将修饰符设为公用。 (Ie44e1) - 添加了新的默认文本按钮内容填充,该按钮带图标,可供使用。 (I8f662)
- 添加了导航栏和轨道禁用的颜色。 (Ia7892, b/258867034)
- 添加了一个修饰符 API 来查询祖先滚动信息。 (I2ba9d, b/203141462)
- 在
Clickable
中使用,以正确延迟按下交互,当手势可能变为滚动事件时。 - 修复了
Clickables
在Scrollable ViewGroup
中使用时,无法正确延迟波纹。 - 更新了抽屉和工作表,以正确延迟按下,以防手势可能变为滚动事件。
依赖项更新
Compose UI
和Compose Material
现在依赖于 Lifecycle 2.5.1。 (I05ab0, b/258038814)
版本 1.1.0-alpha02
2022 年 11 月 9 日
androidx.compose.material3:material3:1.1.0-alpha02
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha02
已发布。 版本 1.1.0-alpha02 包含以下提交。
API 更改
awaitFirstDown
和waitForUpOrCancellation
现在接受PointerEventPass
以获得更大的灵活性(也修复了ExposedDropdownMenuBox
在滚动时显示菜单)。 (I7579a, b/212091796)- 在 Material 和 Material3 Text、
TextField
和OutlinedTextField
中添加了minLines
参数,该参数允许以行数设置组件的最小高度 (I4af1d) - 弃用
TopAppBarDefaults smallTopAppBarColors
函数,转而使用新的topAppBarColors
函数,该函数应在创建TopAppBar
时使用。 (Ie6cb9) - 在
BasicText
和BasicTextField
中添加了minLines
参数。 它允许以行数设置这些可组合元素的最小高度 (I24294, b/122476634)
错误修复
- 将 Material3
IconButton
和IconToggleBotton
的内容剪切到组件的状态层形状(例如圆形形状)。 (I9da8f) - 更新 Material3 中等和大型顶部应用栏,以在其整个表面上应用相同的背景颜色,并允许使用透明颜色值覆盖默认颜色。 (I67659, b/249688556, b/250838918)
版本 1.1.0-alpha01
2022 年 10 月 24 日
androidx.compose.material3:material3:1.1.0-alpha01
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha01
已发布。 版本 1.1.0-alpha01 包含以下提交。
错误修复
- 修复了顶部应用栏中使用 TextStyle 和 Brush 应用标题时的错误。 (If667e)
版本 1.0
版本 1.0.1
2022 年 11 月 9 日
androidx.compose.material3:material3:1.0.1
和 androidx.compose.material3:material3-window-size-class:1.0.1
已发布。 版本 1.0.1 包含以下提交。
错误修复
- 更新 Material3 中等和大型顶部应用栏,以在其整个表面上应用相同的背景颜色,并允许使用透明颜色值覆盖默认颜色。 (I67659, b/249688556, b/250838918)
版本 1.0.0
2022 年 10 月 24 日
androidx.compose.material3:material3:1.0.0
和 androidx.compose.material3:material3-window-size-class:1.0.0
已发布。 版本 1.0.0 包含以下提交。
1.0.0 的主要功能
这是 Compose Material 3 的第一个稳定版本!
Material Design 3 主题和 Material You 动态颜色
Material Design 3 组件
- Badge
- 底部应用栏
- 按钮
- FAB 和 扩展 FAB
- 卡片
- 复选框
- 芯片
- 对话框
- 分隔线
- 下拉菜单
- 列表
- 导航栏
- 导航抽屉
- 导航栏
- 进度指示器
- 单选按钮
- 滑块
- 开关
- 标签
- 文本字段
- 顶部应用栏
- 图标
- 文本
- 表面
- 布局
- 内容颜色
窗口大小类
material3-window-size-class
是一个新库,它提供对窗口大小类的支持:一组针对可调整大小的应用程序布局进行设计、开发和测试的意见性视口断点。您可以使用calculateWindowSizeClass
检索窗口大小类实例,您可以使用它来确定您的 UI 应该如何显示,例如,对于较大的窗口大小显示导航栏而不是底部导航。有关更多信息和示例用法,请参阅 API 参考 文档,了解WindowSizeClass
。有关更多详细信息,请查看此 博文!
版本 1.0.0-rc01
2022 年 10 月 5 日
androidx.compose.material3:material3:1.0.0-rc01
和 androidx.compose.material3:material3-window-size-class:1.0.0-rc01
已发布。 版本 1.0.0-rc01 包含这些提交。
API 更改
- 为支持文本到文本字段 API 添加了插槽参数(Iaac0d、b/227146125)
版本 1.0.0-beta03
2022 年 9 月 21 日
androidx.compose.material3:material3:1.0.0-beta03
和 androidx.compose.material3:material3-window-size-class:1.0.0-beta03
已发布。 版本 1.0.0-beta03 包含这些提交。
API 更改
ExposedDropdownMenuDefaults
现在公开菜单项的填充值。(I34ee1)ExposedDropdownMenuBoxScope
现在有一个Modifier.menuAnchor()
修饰符,应将其传递给文本字段以获得正确的 a11y 行为。(I27fa3)- 为当前滑块 API 添加了两个重载方法,允许用户传递一个拇指或轨道来填充滑块。(I21c00)
错误修复
- 更新了错误容器的深色主题颜色映射,以调整色调 90(Ic5612)
- 修复了允许为小的 Material 3 顶部应用栏设置透明背景的问题。(I645e2、b/245575782)
版本 1.0.0-beta02
2022 年 9 月 7 日
androidx.compose.material3:material3:1.0.0-beta02
和 androidx.compose.material3:material3-window-size-class:1.0.0-beta02
已发布。 版本 1.0.0-beta02 包含这些提交。
API 更改
- beta01 版本中 m3 组件中引入的默认组件内边距不再考虑 IME 内边距。
- Material3 脚手架组件现在有一个
contentWindowInsets
参数,允许指定要为内容插槽处理的内边距数量。(Icf11a、b/243713323) - 弃用实验性的 Material 3
SmallTopAppBar
函数,并引入等效的TopAppBar
函数。请将您的使用情况迁移到新的函数。(I74404、b/226918634) - 添加了对顶部应用栏弹动和捕捉行为的控制。(I15c81)
- 从 Divider 中删除 startIndent,将颜色移动到最后一个参数。(If7be2)
错误修复
- 让对话框通过在显示时宣布“对话框”一词来识别自己,以便 TalkBack 用户识别。(I857ef)
版本 1.0.0-beta01
2022 年 8 月 24 日
androidx.compose.material3:material3:1.0.0-beta01
和 androidx.compose.material3:material3-window-size-class:1.0.0-beta01
已发布。 版本 1.0.0-beta01 包含这些提交。
API 参考
要查看最新的主题、组件和其他可用的可组合项,请查看 Compose Material 3 API 参考概述。
API 更改
- 更新了 Material 3 顶部应用栏,使其捕捉到完全折叠到完全展开的状态。此外,更新了
TopAppBarDefaults
行为函数,使其成为可组合项并为其顶部应用栏状态和动画规范提供默认值。(I642b3) - 更新了 FAB 组件签名以匹配表面 API(I3afaa)
- 添加了对顶部应用栏、抽屉、导航栏和轨道的内置支持。当这些组件单独使用或与脚手架一起使用时,它们将自动处理内边距,为开发人员提供便利。注意:此更改不会添加对状态栏图标和状态栏和导航栏透明度的自动处理。请继续手动执行此操作,以确保获得最佳的边缘到边缘体验。(I7e4e6、b/183161866)
- 更新了组件默认值,以减少 API 表面,以便将来灵活性和性能改进。(I31820)
- 重新排列了芯片和导航抽屉工作表参数,以保持 API 中的一致性。(I45d0b)
- 从 Divider 中删除了
startIndent
,并将颜色移到最后一个参数。(If7be2)
版本 1.0.0-alpha16
2022 年 8 月 10 日
androidx.compose.material3:material3:1.0.0-alpha16
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha16
已发布。 版本 1.0.0-alpha16 包含这些提交。
新功能
- 支持在导航抽屉上指定自定义宽度。(Ia7f10)
API 更改
- 重新排列 Tab 和 Leading 图标 Tab 参数以保持 API 中的一致性。(Ie2637)
- 将
BadgeDefaults
标记为实验性。(I98ef3) - 删除已弃用的导航抽屉函数。(I4f2db)
- 重新排列 Material 3 中的滑块参数以保持 API 中的一致性。(I0aee7)
- 重新排列 Material 3 中的
NavigationBar
和NavigationRail
参数以保持 API 中的一致性。(I51cda) - 重新排列 Material 3 中的参数以保持 API 中的一致性。(If4ae1)
- 重新排列 Material 3 中的滑块参数以保持 API 中的一致性。(I62673)
- 将 icons 参数重命名为 actions 以与顶部应用栏保持一致。(Id75be)
- 将
Badge
和BadgedBox
标记为实验性,因为锚点对齐仍在不断变化。(I1712e、b/236524516) - 将图标按钮变体的
@ExperimentalMaterial3Api
注释更改为@OptIn
(I070b5) - 将导航抽屉的内容分离到其自己的可组合项中,以支持在其上指定自定义宽度。(Ia7f10)
- 从
MenuDefaults
和TabDefaults
中删除了Divider
(I4e33c)
版本 1.0.0-alpha15
2022 年 7 月 27 日
androidx.compose.material3:material3:1.0.0-alpha15
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha15
已发布。 版本 1.0.0-alpha15 包含这些提交。
新功能
- 允许从栏本身拖动顶部应用栏。(I65c00、b/205873416)
API 更改
- 对
FilterChip
和ElevatedFilterChip
API 的更新,以删除selectedIcon
插槽,并推广重新使用leadingIcon
来显示选中状态。(Ie5dc2) - 添加了遮罩和轮廓变体颜色角色。(Id6d54)
- 修复了可组合默认值的命名约定。(I62b27)
- 将
ListItemDefaults
和ListItemColors
标记为实验性。(I1f3ec) - 对顶部应用栏 API 的更改,以更好地反映其状态属性的含义。此外,将顶部应用栏 API 标记为实验性。(Ic0ad8)
- 文本选择颜色现在已添加到
TextFieldColors
中,以提高可发现性。(Iba1b8) - 添加了
ButtonDefault.ButtonWithIconContentPadding
以用于包含图标的按钮。(I2bf9c) - 文本字段已被标记为实验性,以允许在将来的 API 更改中更灵活。(I127b5)
- 从
Checkbox
函数中删除了@ExperimentalMaterial3Api
注释。(I5eefc) - 从
RadioButton
函数中删除了@ExperimentalMaterial3Api
注释。(I17e2a) - 从非交互式卡片中删除了
@ExperimentalMaterial3Api
注释。(I9bd49) - 更新了各种组件默认值对象以包含颜色、形状等。(I96e11)
错误修复
- 从输入芯片示例中删除了不起作用的尾随图标,以避免在目录应用程序中用户混淆。 (I9846a)
版本 1.0.0-alpha14
2022 年 6 月 29 日
androidx.compose.material3:material3:1.0.0-alpha14
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha14
已发布。 版本 1.0.0-alpha14 包含以下提交。
新功能
- 添加了 M3 列表实现,请参阅文档以获取示例用法 (Id7a20)
API 更改
- 将
RangeSlider
中的参数名称从 values 更改为 value (I3b79a) - 对
InputChip
实现的 API 更改,以根据 Material Design 规范支持可选择的州。在FilterChip
颜色中提供对选定禁用状态的额外支持。 (I55244, b/235792432) - 添加
BottomAppBar
默认 FAB (Ida4c8) ColorScheme.surfaceColorAtElevation
已添加 (Id41af)- 现在使用 jdk8 默认接口方法构建 compose 库中的接口 (I5bcf1)
WindowWidthSizeClass
和WindowHeightSizeClass
现在实现 Comparable,因此可以使用运算符(<、<=、>=、>)和其他 API 进行比较。 (I747d0)
错误修复
- 更新徽章示例以提供更有意义的内容描述。 (I10b9d)
- 在 Material 3 目录的主题选择器中添加了使用系统字体大小的选项。 (I10605)
- 添加了徽章和不确定进度指示器的示例代码。 (I8fbe0)
版本 1.0.0-alpha13
2022 年 6 月 1 日
androidx.compose.material3:material3:1.0.0-alpha13
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha13
已发布。 版本 1.0.0-alpha13 包含以下提交。
API 更改
- 支持在配置更改时保持顶部应用栏位置。 (I10459, b/216160958)
版本 1.0.0-alpha12
2022 年 5 月 18 日
androidx.compose.material3:material3:1.0.0-alpha12
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha12
已发布。 版本 1.0.0-alpha12 包含以下提交。
错误修复
- 滑块父级现在可以具有 0 宽度。 (b/231707291)
版本 1.0.0-alpha11
2022 年 5 月 11 日
androidx.compose.material3:material3:1.0.0-alpha11
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha11
已发布。 版本 1.0.0-alpha11 包含以下提交。
新功能
- 将
RangeSlider
添加到 Material 3 (I18e38) - 添加 Material3
AssistChip
和InputChip
支持 (I0d25a) - 添加 Material3
FilterChip
和SuggestionChip
支持 (I9fdf3)
API 更改
- 将
OutlinedTextField
中绘制边框笔划的TextFieldDefaults.BorderStroke
可组合项重命名为TextFieldDefaults.BorderBox
。 (I5f295) - 切换 m3 视觉更改 (Iab30e)
- 允许将颜色传递给标准图标按钮。 (Ia2445)
错误修复
- 在 material3/Scaffold 中添加 lint 检查,以确保使用内部填充 (I72293, b/226951418)
版本 1.0.0-alpha10
2022 年 4 月 20 日
androidx.compose.material3:material3:1.0.0-alpha10
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha10
已发布。 版本 1.0.0-alpha10 包含以下提交。
新功能
material3-window-size-class
是一个新的库,提供对窗口大小类别的支持:一组您可以针对其设计、开发和测试可调整大小应用程序布局的意见视口断点。您可以使用calculateWindowSizeClass
来检索窗口大小类别实例,您可以使用它来确定 UI 应如何显示,例如对于更大的窗口大小显示导航栏而不是底部导航。有关更多信息和示例用法,请参阅WindowSizeClass
的 API 参考文档。有关窗口大小类别定义的更多信息,请参阅支持不同屏幕尺寸的公共指南。
API 更改
- 为
BottomAppBar
添加默认 FAB 高度,从具有 FAB 的BottomAppBar
中删除尾随 lambda。 (I92c47) - 添加 Material3
FilledIconButton
、FilledTonalIconButton
和OutlinedIconButton
。 (Ib2bda) - 更新 Material 3 Snackbar API 以接受可选操作和取消操作的颜色值。 (Ibe4b4)
- 在
PointerInputChange
中已弃用部分使用(向下或位置)。您可以使用consume()
完全使用更改。您可以使用isConsumed
来确定其他人是否已使用更改。 PointerInputChange::copy()
现在始终执行浅层复制。这意味着如果其中一个副本已使用,则PointerInputChange
的副本将使用一次。如果您想创建一个不受约束的PointerInputChange
,请使用构造函数。 (Ie6be4, b/225669674)- 对卡片 API 的更改,以通过
CardColors
接口接收容器和内容颜色,并支持可点击卡片的禁用状态。 (I927df) - 参数
backgroundColor
已在 Material 3 文本字段中重命名为containerColor
,以提高与其他组件的一致性。 (I6fbd9)
错误修复
- 标准
IconButton
的更新,以使其与 Material3 规范保持一致。 (I09eab) - 将 material3 Scaffold 的顶部栏高度移至传递给内容的填充中,允许内容在顶部应用栏下方呈现。如果忽略了
PaddingValues
,则内容可能会被顶部栏遮挡。 (I83cbc, b/217776202)
版本 1.0.0-alpha09
2022 年 4 月 6 日
androidx.compose.material3:material3:1.0.0-alpha09
已发布。 版本 1.0.0-alpha09 包含以下提交。
新功能
- 添加了 Material 3 Switch API (I2c3ad)
API 更改
- 添加了对带有文本字段的下拉菜单的支持(又名“公开下拉菜单”或“组合框”)。 (I1b832)
- 将形状参数添加到 MaterialTheme 和 Shape 子系统。 (I37426)
- 在
ExtendedFloatingActionButton
中添加了一个扩展参数来控制 FAB 是扩展还是折叠,以及每种状态之间的动画。添加了扩展 FAB 的重载,用于带有尾随文本的扩展 FAB,用于没有图标的 ExtendedFAB。 (Iba7f1)
版本 1.0.0-alpha08
2022 年 3 月 23 日
androidx.compose.material3:material3:1.0.0-alpha08
已发布。 版本 1.0.0-alpha08 包含以下提交。
新功能
- 添加了对 Material 3 文本字段的支持。 (I795cc, b/199377790)
API 更改
错误修复
- 修复 Material3 按钮以从 MaterialTheme 读取其默认文本样式值。 (Ie62fc)
版本 1.0.0-alpha07
2022 年 3 月 9 日
androidx.compose.material3:material3:1.0.0-alpha07
已发布。 版本 1.0.0-alpha07 包含以下提交。
API 更改
- Material 3 Surface API 的更新,它将可点击 Surface 的重载函数带回,以及添加一个函数来支持可选择和可切换的 Surface。 (I4bf18)
LazyVerticalGrid
和LazyHorizontalGrid
现在稳定。 (I307c0)LazyVerticalGrid/LazyHorizontalGrid
和所有相关 api 已移至 .grid 子包。请将您的导入从 androidx.compose.foundation.lazy 更新为 androidx.compose.foundation.lazy.grid。 (I2d446)- 还原了之前更改,即仅依赖于
WindowInsetsControllerCompat
的 View,并且再次需要一个 Window,这是管理某些窗口标志所必需的。已弃用ViewCompat.getWindowInsetsController
,支持WindowCompat.getInsetsController
,以确保使用正确的 Window(例如,如果 View 位于对话框中)。 (I660ae, b/219572936) - 添加了一个新的
LazyVerticalGrid
API 来定义交叉轴大小 (I17723)
错误修复
- Card API 的更新,以遵循 Surface API 的更改 (I3c8b9)
版本 1.0.0-alpha06
2022 年 2 月 23 日
androidx.compose.material3:material3:1.0.0-alpha06
已发布。 版本 1.0.0-alpha06 包含以下提交。
API 更改
- 添加了
NavigationDrawerItem
,它表示抽屉中的单个目的地 (Ic396f, b/218286829) - 添加了
PermanentNavigationDrawer
和DismissibleNavigationDrawer
作为实验性 API。这些抽屉非常适合大屏幕设备。 (I5f8ab, b/218286829) - 添加了 Material 3 底部应用栏支持 (Ic432a)
NavigationDrawer
已重命名为ModalNavigationDrawer
(I1807d, b/218286829)- 添加了 Material 3 Slider 类和标记 (I1ccee)
- 添加了 Tab 实现,请参阅文档以获取示例用法 (Ie0146)
错误修复
- 修复了
TalkBack
屏幕阅读器线性导航选择空的上方应用栏标题的问题。 (Id4690) - 将
IconSize
添加到FloatingActionButtonDefaults
中。 (Ia71cf) - 修复了在使用
LazyColumn
添加长文本时AlertDialog
按钮隐藏的错误。 (Ib2cc9, b/216663029)
版本 1.0.0-alpha05
2022 年 2 月 9 日
androidx.compose.material3:material3:1.0.0-alpha05
已发布。 版本 1.0.0-alpha05 包含这些提交。
新功能
添加了 Material Design 3 组件
API 更改
- 已弃用带 onClick 回调的
Surface
函数。可点击的表面应使用InteractionSource
和Modifier.clickable()
创建。 (I211c6) - 为 FAB 添加了按下和聚焦的抬升支持。 (Ibb584)
- 更改了
Surface
API 以接收 InteractionSource,它允许在不同状态下控制其外观。 (Iafbc8)
错误修复
- 在动态颜色方案中添加了缺失的三级颜色 (I456c4, b/214588434)
版本 1.0.0-alpha04
2022 年 1 月 26 日
androidx.compose.material3:material3:1.0.0-alpha04
已发布。 版本 1.0.0-alpha04 包含这些提交。
API 更改
- 将
NonRestartableComposable
添加到对现有方法进行重载且没有复杂逻辑的方法中。这减少了所有参数的编译器生成的记忆检查(相等性),这些参数在内部调用的函数中重复。 (I90490) - 添加了 Material 3 分隔线。 (Ica5fc)
- 使用实验性 API 注释标记复选框和单选按钮。 (Ie44bb)
- 添加了对 Material 3 进度指示器的支持。 (Iff232, b/205023841)
错误修复
- 将禁用的
TextButton
的容器颜色更新为透明 (I6b248, b/213339737)
版本 1.0.0-alpha03
2022 年 1 月 12 日
androidx.compose.material3:material3:1.0.0-alpha03
已发布。 版本 1.0.0-alpha03 包含这些提交。
错误修复
- 将
LocalIndication
添加到 Material 3 的MaterialTheme
中。 (I7ce4e) - 修复了应用于复选框的圆角 (I38b03, b/175198975, b/202309440)
依赖项更新
- 现在依赖于 Kotlin
1.6.10
。
版本 1.0.0-alpha02
2021 年 12 月 1 日
androidx.compose.material3:material3:1.0.0-alpha02
已发布。 版本 1.0.0-alpha02 包含这些提交。
新功能
- 添加了对复选框和单选按钮的支持。
- 更新为与 Kotlin
1.6.0
兼容
API 更改
- 从 Material 3 的脚手架中删除抽屉。 (I04f51)
- 添加了 Material 3
Checkbox
支持。 (Id5542) - 添加了 Material 3
RadioButton
支持。 (I20334)
错误修复
- 将
IconButton
的涟漪半径从 40dp 减少到 20dp。 (I68bbe, b/206674345) - 将
Text
更改的字符串快速路径从compose.material
移植过来 (I30b03) - 修复了将按钮硬编码为始终启用的错误。 (Iea832, b/205335456)
版本 1.0.0-alpha01
2021 年 10 月 27 日
androidx.compose.material3:material3:1.0.0-alpha01
已发布。 版本 1.0.0-alpha01 包含这些提交。
新功能
Material Design 3 主题和 Material You 动态颜色
Material Design 3 组件
有关更多信息,请查看 Compose 中 Material 主题指南中的 Material Design 3 和 Material You 部分。