Compose Material 3

使用 Material Design 3 组件构建 Jetpack Compose UI,这是 Material Design 的下一步发展。Material 3 包括更新的主题和组件以及 Material You 个性化功能(如动态颜色),旨在与新的 Android 12 视觉风格和系统 UI 保持一致。
最新更新 稳定版 候选发布版 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.runtimeCompose 编程模型和状态管理的基础构建块,以及 Compose 编译器插件的目标核心运行时。
compose.uiCompose 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-alpha01androidx.compose.material3:material3-common-android:1.0.0-alpha01androidx.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-alpha07androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha07androidx.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-alpha06androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha06androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha06 已发布。版本 1.0.0-alpha06 包含这些提交

API 更改

  • NavigationSuiteScaffoldDefaults 中添加containerColorcontentColor。(I64e3ab/331993720
  • NavigationSuiteDefaults 中添加itemColors 函数。(Idf719b/328480012
  • 使NavigationSuiteScope 密封。(Iefa57

版本 1.0.0-alpha05

2024 年 3 月 6 日

androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha05androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha05androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha05 已发布。版本 1.0.0-alpha05 包含这些提交

API 更改

版本 1.0.0-alpha04

2024 年 2 月 21 日

androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha04androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha04androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha04 已发布。版本 1.0.0-alpha04 包含这些提交。

依赖项更新

  • 将 Material3 自适应依赖项更新为新的模块路径。(Ibc421
  • 迁移以使用窗口管理器版本的窗口大小类别。(I3794d

版本 1.0.0-alpha03

2024 年 2 月 7 日

androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha03androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha03androidx.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。还建议您在自己的组件中进行类似的更改。(I41abbb/298048146

版本 1.0.0-alpha02

2023 年 12 月 13 日

androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha02androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha02androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha02 已发布。版本 1.0.0-alpha02 包含这些提交。

新功能

错误修复

  • 修复导航组件在根表面具有modifier.fillMaxSize 时填充整个屏幕的问题。(c9cf250b/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-alpha06androidx.compose.material3:material3-adaptive-android:1.0.0-alpha06androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha06 已发布。版本 1.0.0-alpha06 包含这些提交。

新功能

  • ThreePaneScaffoldNavigator 后退导航添加了其他行为选项。(I858aa
  • 将可选的目标内容添加到导航历史记录。(Ibd7e6

版本 1.0.0-alpha05

2024 年 1 月 24 日

androidx.compose.material3:material3-adaptive:1.0.0-alpha05androidx.compose.material3:material3-adaptive-android:1.0.0-alpha05androidx.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-alpha04androidx.compose.material3:material3-adaptive-android:1.0.0-alpha04androidx.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-alpha03androidx.compose.material3:material3-adaptive-android:1.0.0-alpha03androidx.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-alpha02androidx.compose.material3:material3-adaptive-android:1.0.0-alpha02androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha02 已发布。版本 1.0.0-alpha02 包含这些提交。

API 更改

  • 将导航 API 与自适应脚手架 API 分开。(Ic4045
  • 删除GutterSize 类。(I785b3

错误修复

  • 修复当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

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 组件

  • 轮播
  • [ModalBottomSheet] 现在在 U+ 上支持预测返回 (Iccf32, b/281967264, b/304850357)
  • [SearchBar] 现在在 U+ 上支持预测返回 (I657f8)
  • 导航抽屉 (ModalDrawerSheetDismissibleDrawerSheet) 现在在 U+ 上支持预测返回,作为可选功能 (Ie5b0b)
  • DropdownMenu 现在支持自定义颜色、形状、提升和边框。(I8e981,b/289554448, b/301887035, b/283654243)
  • 更新了滑块,通过添加间隙和停止指示器来提高可访问性。(I3058e)
  • 更新了 ProgressIndicator,通过添加间隙和停止指示器来提高可访问性。(I21451)
  • 为富文本工具提示添加了默认插入符号,支持根据锚点 LayoutCoordinates 绘制自定义插入符号。(Ifd42c) 突破性变化
  • 新的下拉刷新 API
    • 简化了 PullToRefreshState,使用小数而不是 Dp 单位。
    • isRefreshing 状态由用户控制,而不是由 PullToRefreshState 控制。
    • 将嵌套滚动连接从 PullToRefreshState 中分离出来。它由新的 PullToRefreshBoxModifier.pullToRefresh 处理。
    • 此更新是之前实验性 API 的重大更改。(I0adeb, b/314496282, b/317177684, b/323787138, b/324573502, b/317177683) 视觉突破性变化
  • 更新焦点状态覆盖层为 0.1f,以确保足够的颜色对比度。(I7ea77)
  • lightColorSchemedarkColorScheme 中的表面和背景颜色的默认值进行了细微调整。(I9db52)
  • 更新了滑块和 ProgressIndicator 的颜色,以遵循新的非文本对比度规范。(I26807)
  • SurfaceContainer 变体现在由组件使用。以前使用 SurfaceTonalElevation 计算颜色的组件现在默认使用 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 添加了两个新的修饰符 - maskClipmaskBorder - 以便轻松地为任何轮播项目添加形状和边框 (Id67a1)
  • TimePickerState 现在是一个接口,允许设置时间 (I88546)
  • 更新了用于设置链接样式的 API:将 TextLinkStyles 移动到 TextStyle,并从 material 中删除了 TextDefaults。(I5477b)

错误修复

  • [ModalBottomSheet] 状态和导航栏图标现在会响应暗色主题状态。(Ie1fe7, b/338342149)
  • ModalBottomSheet 遮罩添加了关闭表语义。(0e61cb,b/328801864)

外部贡献

  • 使 androidx.compose.material3.AlertDialog 可从通用源集访问 (Ia33f5)
  • 使 ModalBottomSheet 可从通用源集访问 (Id7cc7)

版本 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 中分离出来。它由新的 PullToRefreshBoxModifier.pullToRefresh 处理。
    • 此更新是之前实验性 API 的重大更改。(I0adeb, b/314496282, b/317177684, b/323787138, b/324573502, b/317177683)

API 更改

  • RippleConfiguration#isEnabled 已被删除,LocalRippleConfiguration 已变为可为空。要禁用涟漪,请不要提供 isEnabled = falseRippleConfiguration,而是向 LocalRippleConfiguration 提供 null。(I22725)
  • [ModalBottomSheet] 在启用边缘到边缘时更准确地绘制了状态栏上的遮罩。模态底部表内容现在可以消耗窗口内边距,允许在导航栏上方显示可见内容。 ModalBottomSheet 参数 windowInsets 重命名为 contentWindowInsets,以指定内边距将应用的位置,这些内边距不再与窗口逻辑绑定。 contentWindowInsets 类型已更改为返回 WindowInsets 的函数,以允许在新的窗口中解析它。(I39630, b/274872542, b/300280229, b/290893168)
  • PrimaryScrollableTabRowSecondaryScrollableTabRow 现在使用自定义布局而不是子组合,这应该可以提高性能。(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 包含 这些提交

新功能

  • SearchBarDockedSearchBar 有新的重载,可以接受文本字段参数。这允许对文本字段进行单独的样式设置,与搜索栏的其余部分分开,以及传递自定义文本字段。当前实现的文本字段已作为 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。这应该用作传递 focusableExposedDropdownMenu 的替代方法,后者现在已弃用。 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 轮播 版本 - HorizontalMultiBrowseCarouselHorizontalUncontainedCarousel (I88d64)
  • 更新了 Compose M3 导航抽屉 (ModalDrawerSheetDismissibleDrawerSheet),以支持 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)
  • SwipeToDismissBoxSwipeToDismissBoxDefaultsSwipeToDismissBoxStateSwipeToDismissBoxValue 现在被标记为稳定。 (I5f000)
  • 删除了已弃用的 DismissDirectionDismissValue 枚举和 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)
  • lightColorSchemedarkColorScheme 中的表面和背景颜色的默认值进行了细微调整。(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)
  • lightColorSchemedarkColorScheme 中的表面和背景颜色的默认值进行了细微调整。(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 现在提供不同的 standardContainerColormodalContainerColor 属性。 DrawerDefaults.ModalDrawerElevation 现在为 0.dp。 (I7fbac)
  • Slider 的状态中删除 @Stable,因为我们将 state.onValueChangeFinished 更改为 var。 (Ied34a, b/322269951)
  • ModalBottomSheetStandardBottomSheet 动画规范现在是一个 TweenSpec,从弹簧动画更新而来。这解决了可见过冲问题。已弃用的 SheetState 构造函数(没有密度)现在已删除。 (I7babc, b/285847707)

错误修复

  • 组件现在使用 SurfaceContainer 变体。以前使用 Surface 和 TonalElevation 计算颜色的组件现在默认使用 SurfaceContainer 角色,不受音调高度的影响。 (b/304584161)
  • 修复了导致 ElevatedFilterChip 的未选中、禁用的容器颜色为黑色的错误。 (I400e6, b/322407043)
  • 修复了进度为 0 时不确定的进度指示器 (Id6582)
  • 修复了 SliderRangeSlider 在 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 容器颜色现在是 SurfaceContainerHighDatePickerDefaults.TonalElevation 现在是 0.dp。 (Ida753)
  • 更新底部表单容器颜色和拖动把手颜色。 (I72a0a)
  • RichTooltip 容器颜色现在是 SurfaceContainer。 (Ia8b45)
  • SearchBar 容器颜色现在是 SurfaceContainerHighestSearchBarDefaults.TonalElevation 现在是 0.dp。 (I88604)
  • 更新开关禁用和未选中的轨道/图标以使用 SurfaceContainerHighest 颜色角色。 (I7687a)
  • AlertDialog 容器颜色现在是 SurfaceContainerHigh。 (Ie0433)
  • BottomAppBar 容器颜色现在是 SurfaceContainerTopAppBar onScroll 颜色现在是 SurfaceContainer。 (I41630)
  • ElevatedCard 容器颜色现在是 SurfaceContainerLowFilledCard 的容器颜色是 SurfaceContainerHighest。 (I35141)
  • ElevatedButton 容器颜色现在是 SurfaceContainerLowFilledIconButton 在未选中时现在具有 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)
  • DatePickerformatWithSkeleton 函数标记为内部 (Ic65dc)
  • DropdownMenu 现在支持自定义颜色、形状、高亮和边框。 (I8e981, b/289554448, b/301887035, b/283654243)
  • 其 API 中公开 MutableInteractionSource 的 Material3 组件已更新为现在公开一个可为空的 MutableInteractionSource,其默认值为 null。 这里没有语义变化:传递 null 表示您不希望提升 MutableInteractionSource,并且如果需要,它将在组件内部创建。 更改为 null 允许某些组件从不分配 MutableInteractionSource,并允许其他组件仅在需要时才延迟创建实例,这提高了这些组件的性能。 如果您没有使用传递给这些组件的 MutableInteractionSource,建议您改为传递 null。 还建议您在自己的组件中进行类似的更改。 (I41abb, b/298048146)
  • 添加 RippleConfigurationLocalRippleConfiguration 以允许使用固定值对涟漪进行逐组件/子树自定义。 例如,要更改您无法控制的组件的颜色,或者要禁用组件的涟漪。 在大多数情况下,应使用默认值:这些 API 是针对单个组件/有限子树自定义的备用方案。 对于更广泛的更改和自定义设计系统,您应该改为使用 createRippleModifierNode 构建您自己的涟漪。 (I7b5d6, b/298048146)
  • 在 material3 中添加新的涟漪 API,它取代了已弃用的 rememberRipple。 还添加了一个临时的 CompositionLocalLocalUseFallbackRippleImplementation,以使 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 中,作为性能改进更改的一部分,引入了视图-组合互操作渲染 错误。 解决方法是使用 TabRowTabRowDefaults.PrimaryIndicator

自 1.1.0 以来的重要更改

新的 Material Design 3 组件

对现有 Material Design 3 组件的增强。

将实验性 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)
  • SwipeToDismissStaterememberSwipeToDismissSwipeToDismissValue 的名称都已更改为包含 _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)
  • 弃用 DismissDirectionDismissValue API。这些已合并为 SwipeToDismissValue,其值指示 SwipeToDismissBox 的位置和方向。 DismissState.progress 现在标记为 FloatRange,介于 0.01.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 包含以下提交。

新功能

  • 实现了 PullToRefreshContainerPullToRefreshState,它们共同在 Material3 中提供下拉刷新实现。(I16456, b/261760718)

API 更改

  • SwipeToDismissBoxDismissDirectionDismissValue 标记为实验性。(I517b0)
  • SwipeToDismiss 重命名为 SwipeToDismissBox。将 background 重命名为 backgroundContent,将 dismissContent 重命名为尾随 content lambda。(I7f4d3)
  • 使 ChipElevationSelectableChipElevation 的构造函数公开。(Ie0c48, b/308432421)
  • 添加 ModalBottomSheetProperties。将 securePolicy 移至 ModalBottomSheetProperties。将 isFocusableshouldDismissOnBackPress 添加到 ModalBottomSheetProperties。这些新的布尔值有助于确定模式底部工作表应如何处理 IME 事件。(Iea56f, b/278216859)
  • 更新了 RangeSliderSlider 状态以移除 initialOnValueChange,初始前缀和相应的 kdocs。(I57d30)
  • 弃用 ChipBorder 类及其关联的函数调用,建议改为直接使用 BorderStroke。(I89cc2)
  • 基础工具提示 API 现在是 @ExperimentalFoundationApi。(I30b0b)
  • TabRowScrollableTabRow 不再弃用。新的主要和次要变体被标记为实验性。(I0def6)
  • 筛选和输入芯片现在直接使用 BorderStroke。(I07a8d)
  • SegmentedButton 现在直接使用 BorderStroke。(I89b9b)
  • 将通用 AlertDialog 函数重命名为 BasicAlertDialog,并弃用之前的函数。(Idbe52)
  • SwipeToDismiss API 重命名为 SwipeDismiss,并将新的 SwipeDismiss API 提升为稳定版。(I14cbe)
  • tonalElevationshadowElevation 添加到工具提示 API。此外,将 TooltipBoxPlainTooltipRichTooltip 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 更改

  • BadgeBadgedBox 提升为稳定版。(I67f16, b/261565132)
  • securePolicy 作为参数添加到 ModalBottomSheet,以便用户可以定义 WindowManager.LayoutParams.FLAG_SECURE 的行为。(Icdac8, b/296250262)
  • 添加了 LinearProgressIndicatorCircularProgressIndicator 的新重载,它们接受 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 更改

  • ModalNavigationDrawerDismissibleNavigationDrawer 迁移为使用新的 AnchoredDraggable API。 DrawerStateanimateTo 已被打开和关闭方法替换,偏移量现在以浮点数形式公开,而不是状态对象。您可以通过 currentOffset 直接访问偏移量。(I0a72c)
  • 已添加非可组合函数,用于直接创建 DatePickerStateDateRangePickerState。这些函数可以用作可组合的 rememberDatePickerStaterememberDateRangePickerState 函数的替代方案,具体取决于需要。(I70326, b/291524052)
  • 修复了,现在可滚动 TabRows 具有主要和次要变体。这些正确地映射到 Material3 中定义的颜色和指示器行为。
  • PrimaryScrollableTabRowSecondaryScrollableTabRow 现在公开滚动状态。(Iec8f5, b/260572337)
  • 添加了一个新的 sheetMaxWidth 参数,开发人员可以设置它来指定工作表将跨越的最大宽度。如果希望工作表跨越整个屏幕宽度,则可以为参数传递 Dp.Unspecified。(Ifb7c9, b/266697696)
  • PlainTooltipBoxRichTooltipBox 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 的使用。(Icc131b/299500338
  • 引入了一个临时标志来控制脚手架是否应该在测量期间或放置期间测量其子元素。默认情况下,这将在测量时进行测量。如果您遇到新行为的问题,请提交问题。(I0b354
  • 通过使用设备屏幕宽度的正确测量值,修复了 BottomSheet 中的水平边缘到边缘。(I1df0cb/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 实现 DraggableStateI9b116
  • 更改形状为必需参数。将形状帮助器函数中的 position 重命名为 index。(I34941
  • 更新了 DatePickerformatWithSkeleton,以包含一个用于性能改进的缓存映射。(I3195f
  • BasicTooltipBox 添加到 compose.foundation 中,并将 PlainTooltipBoxRichTooltipBox 更新为使用 TooltipBox,以及新的 PlainTooltipRichTooltip 可组合项。(I79e1d

错误修复

  • dynamicLightColorSchemedynamicDarkColorScheme 现在为表面和 surfaceContainer 角色返回更高色度颜色。(I5e901
  • 修复了一个问题,该问题导致某些在脚手架内使用子组合(例如 BottomSheetScaffold)的组件在 LookaheadScope 内尝试过早读取其大小。(I297b4I871f1b/295536718

版本 1.2.0-alpha06

2023 年 8 月 23 日

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

错误修复

  • 修复了 DropdownMenuoffset 计算,因此 x 偏移量完全取决于本地布局方向,并且当菜单靠近屏幕底部时,y 偏移量将不再被反转。(Iccc74b/294103942
  • 修复了 DropdownMenuoffset 计算,因此 x 偏移量完全取决于本地布局方向,并且当菜单靠近屏幕底部时,y 偏移量将不再被反转。(Ib87a2b/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 的自定义构造实例。(I77d17b/291943198

版本 1.2.0-alpha04

2023 年 7 月 26 日

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

新功能

  • 实验性分段按钮 API (Ifc8fb
  • 分隔线现在有一个参数来控制方向,以支持垂直分隔线。(I4c899b/288438593

API 更改

  • 我们将密度依赖关系移动到组件级别。这适用于以下组件:SwipeToDismiss 和基于表单的组件。请使用提供的密度为参数的新重载。(I1846e
  • 用于指定可组合项的允许输入的附加注释 (Ief234
  • 将图标参数添加到分段按钮,拆分语义,以便分段按钮可以被选择以实现单选,并且可以切换以实现多选,分别使用 SelectableSegmentedButtonRowToggelableSegmentedButtonRow。(I38740
  • 分隔线已重命名为 HorizontalDivider。添加了 VerticalDivider 功能。(I5975c
  • 将实验性 Material3 API 中对 ClosedFloatingPointRange 的使用更改为更轻量级的 FloatRange,以最大程度地减少自动装箱。(I4aab5
  • FabPosition 添加了新的开始对齐。(Ib7aeab/170592777

错误修复

版本 1.2.0-alpha03

2023 年 6 月 21 日

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

行为变化

  • 在 Material 3 排版中,includeFontPadding 现在默认情况下为 false。默认行高样式也已更改为 Trim.NoneAlignment.Center,并且 TypographyTextStyle 中已添加显式 lineHeight(以 sp 为单位)。如果您想自定义这些值,请查阅 API 文档,并查看 博客文章,了解这些更改的深入解释。(I6266fIcabc3

新功能

  • RangeSlider 添加了一个重载,它是组件的带状态版本。创建了 RangeSliderState,它保存了当前活动轨道的所有信息、RangeSlider 组件的测量值以及拖动和手势逻辑。(I8c270
  • 搜索栏现在通过新添加的 shadowElevation 参数支持阴影。(Ia5369b/271040353
  • ColorScheme 现在支持新的 SurfaceContainer 角色
  • 表面音调升降覆盖现在可以使用 LocalTonalElevationEnabled 组合本地禁用。(Ic203cb/277774590

API 更改

  • 打开组件颜色构造函数。(I8c4a6
  • 在两个工具提示 API 中添加可聚焦参数,以便开发人员可以让工具提示消耗触摸事件或不消耗触摸事件。请注意,这可能会破坏辅助功能焦点自动遍历。(Ie32d8
  • 优化了辅助功能的性能和内存分配。(Iede48
  • 公开 DefaultSizeClasses 并为 WindowSizeClasses 创建 StandardSizeClasses (I91838
  • WindowWidth/HeightSizeClass 更改为浮点值类 (Ie686e

错误修复

  • 脚手架的 contentWindowInsets 参数现在尊重已消耗的窗口内边距。请注意,当提供这些参数时,基于 topBarbottomBar 的内容填充行为保持不变。(I08b73b/264601542
  • 修复了居中顶部应用栏的对齐方式,以确保长标题不会渲染在操作图标或导航图标上。(I4369fb/236994621
  • 标签位置现在强制执行 24.dp 的最小内容宽度。这为标签指示器提供了一个可访问的触摸目标。(Id8861
  • 来自 dynamicLightColorSchemedynamicDarkColorScheme 的动态颜色调色板现在支持新的表面角色。(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)
  • 添加了一个选项,在构造 DropdownMenuExposedDropdownMenu 时传入 ScrollState,用于控制显示的菜单项的垂直滚动状态。(Ia0734, b/185304441)
  • Slider 添加了一个重载,它是该组件的带状态版本。创建了 SliderState,它保存当前活动轨道的所有信息,Slider 的组件测量结果以及拖动和手势逻辑。(I124a5)
  • 将语义属性 isContainer 重命名为 isTraversalGroup (I121f6)
  • 添加了使用完整参数列表的优化 TextStyle.merge(...)。(Iad234, b/246961787)
  • TooltipStateRichTooltipStatePlainTooltipState 设为公共接口。添加了 RichTooltipStateImplPlainTooltipStateImpl,用于默认状态。添加了 remember*State 函数,用于获取这些已实现的状态。删除了 TooltipSync,代之以 TooltipDefault.GlobalMutatorMutex。(I7813d)
  • 更新了 DatePickerColors,以包括日期选择器分隔线、导航和文本输入字段颜色的更多自定义选项。(I1a685, b/274626815)
  • DatePickerStateDateRangePickerState 现在是公共接口,具有默认实现,可以通过 rememberDatePickerStaterememberDateRangePickerState 获取。(I71c52)
  • DatePickerDateRangePicker 中删除了 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-alpha01androidx.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.2androidx.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.1androidx.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.0androidx.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-rc01androidx.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-beta02androidx.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)
  • ModalBottomSheetBottomSheetScaffold 的拖动手柄语义现在已合并。(I05afb)
  • BottomSheetScaffold 修饰符,containerColorcontentColor 参数现在仅影响内容。 (I992cb)
  • BottomSheetScaffold nestedScroll 现在为工作表内容实现了弹跳。 (I992cb)

版本 1.1.0-beta01

2023 年 3 月 22 日

androidx.compose.material3:material3:1.1.0-beta01androidx.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-alpha08androidx.compose.material3:material3-window-size-class:1.1.0-alpha08 已发布。 版本 1.1.0-alpha08 包含这些提交。

新功能

  • 添加了对 BottomSheetScaffoldBottomSheetScaffoldState 的支持。 (I063d4)

API 更改

  • DatePickerStateDateRangePickerState 中添加了功能,允许在状态的初始创建后设置日期,以及通过设置空时间戳重置选择。手动设置日期应该谨慎进行,如果提供的日期未通过先决条件,新的 setSelection 函数将抛出异常(请参阅文档)。 (Ifa645, b/268609314, b/270427389)
  • 将折叠的 SheetValue 重命名为 PartiallyExpanded 以更准确、更灵活地描述此状态下的行为。 (Ia1491)
  • 更新了 ListItem 参数名称为 _content 而不是 _text。默认 getter 现在是 ReadOnlyComposables(在相关情况下)。 (I69a25)
  • 将交互式 Surface API 从实验性中毕业。 (I90d59, b/261561812)

错误修复

  • 修复了 ModalBottomSheetHalfExpanded 状态计算错误,工作表似乎在浮动的问题。 (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-alpha07androidx.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 参数已重命名为 unfocusedTextColorplaceholderColor 已重命名为 unfocusedPlaceholderColor
    • 填充文本字段的容器颜色基于使用新的 errorContainerColor 参数的错误状态。
  • 已使用参数更新了公开的下拉菜单文本字段颜色以支持新的前缀和后缀 API。 (I9c8b4, b/254284181, b/264766350)

API 更改

  • 还原了一些滑块 API 版本,并删除了新的带有自定义滑块和轨道的实验性滑块所覆盖的冗余滑块重载。将 RangeSlider 提升为稳定版。 (Ie8fbd)
  • 在芯片的抬高函数中将 defaultElevation 重命名为 elevation。 (I0f872)
  • 以下 Material 3 文本字段 API 不再是实验性的:TextFieldOutlinedTextFieldtextFieldWithLabelPaddingtextFieldWithoutLabelPaddingoutlinedTextFieldPadding。 (Ieb5c0, b/261561819)
  • TimePickers is24Hour 使用系统设置 (I18856)
  • 从脚手架 api 中删除了实验性注释。 (Ibb51e, b/261565765, b/261436953)

错误修复

  • ModalBottomSheet 默认形状现在始终为 SheetDefaults.ExpandedShape。 (I0dfca)
  • Material 3 DatePickerDateRangePicker 的辅助功能改进。 (I5087e)
  • 修复了最大高度约束被传播并可能导致崩溃的错误。 (I30d8c)
  • 从可点击和可选表面中删除了语义角色,更新了使用它们的组件以使用修饰符设置角色。语义 (I793d9)

版本 1.1.0-alpha06

2023 年 2 月 8 日

androidx.compose.material3:material3:1.1.0-alpha06androidx.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 的模态底部工作表实现,包括 ModalBottomSheetModalBottomSheetDefaults。还引入了 SheetStaterememberSheetState,可用于将来的工作表组件。 (I0853a, b/244189383)

API 更改

  • 稳定 API showSnackbar (I195c2, b/261424370)
  • 稳定辅助芯片和建议芯片的 API (Ibb67b, b/261424370)
  • ListItemListItemDefaultsListItemColors API 提升为非实验性 (I7e7fa, b/261438882)
  • SliderPositionsSliderDefaults.ThumbSliderDefaults.Track 提升为稳定版,并添加非实验性的 SliderRangeSlider API,其中包含自定义滑块和轨道。此外,还弃用了之前的 SliderRangeSlider 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-alpha05androidx.compose.material3:material3-window-size-class:1.1.0-alpha05 已发布。 版本 1.1.0-alpha05 包含以下提交。

新功能

  • DatePickerDialog 和无障碍支持
  • RangeSlider 中添加了自定义滑块和轨道。

依赖项更新

版本 1.1.0-alpha04

2023 年 1 月 11 日

androidx.compose.material3:material3:1.1.0-alpha04androidx.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.materialandroidx.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-alpha03androidx.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 中使用,以正确延迟按下交互,当手势可能变为滚动事件时。
  • 修复了 ClickablesScrollable ViewGroup 中使用时,无法正确延迟波纹。
  • 更新了抽屉和工作表,以正确延迟按下,以防手势可能变为滚动事件。

依赖项更新

  • Compose UICompose Material 现在依赖于 Lifecycle 2.5.1。 (I05ab0, b/258038814)

版本 1.1.0-alpha02

2022 年 11 月 9 日

androidx.compose.material3:material3:1.1.0-alpha02androidx.compose.material3:material3-window-size-class:1.1.0-alpha02 已发布。 版本 1.1.0-alpha02 包含以下提交。

API 更改

  • awaitFirstDownwaitForUpOrCancellation 现在接受 PointerEventPass 以获得更大的灵活性(也修复了 ExposedDropdownMenuBox 在滚动时显示菜单)。 (I7579a, b/212091796)
  • 在 Material 和 Material3 Text、TextFieldOutlinedTextField 中添加了 minLines 参数,该参数允许以行数设置组件的最小高度 (I4af1d)
  • 弃用 TopAppBarDefaults smallTopAppBarColors 函数,转而使用新的 topAppBarColors 函数,该函数应在创建 TopAppBar 时使用。 (Ie6cb9)
  • BasicTextBasicTextField 中添加了 minLines 参数。 它允许以行数设置这些可组合元素的最小高度 (I24294, b/122476634)

错误修复

  • 将 Material3 IconButtonIconToggleBotton 的内容剪切到组件的状态层形状(例如圆形形状)。 (I9da8f)
  • 更新 Material3 中等和大型顶部应用栏,以在其整个表面上应用相同的背景颜色,并允许使用透明颜色值覆盖默认颜色。 (I67659, b/249688556, b/250838918)

版本 1.1.0-alpha01

2022 年 10 月 24 日

androidx.compose.material3:material3:1.1.0-alpha01androidx.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.1androidx.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.0androidx.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 组件

窗口大小类

  • material3-window-size-class 是一个新库,它提供对窗口大小类的支持:一组针对可调整大小的应用程序布局进行设计、开发和测试的意见性视口断点。您可以使用 calculateWindowSizeClass 检索窗口大小类实例,您可以使用它来确定您的 UI 应该如何显示,例如,对于较大的窗口大小显示导航栏而不是底部导航。有关更多信息和示例用法,请参阅 API 参考 文档,了解 WindowSizeClass

  • 有关更多详细信息,请查看此 博文

版本 1.0.0-rc01

2022 年 10 月 5 日

androidx.compose.material3:material3:1.0.0-rc01androidx.compose.material3:material3-window-size-class:1.0.0-rc01 已发布。 版本 1.0.0-rc01 包含这些提交。

API 更改

版本 1.0.0-beta03

2022 年 9 月 21 日

androidx.compose.material3:material3:1.0.0-beta03androidx.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 顶部应用栏设置透明背景的问题。(I645e2b/245575782

版本 1.0.0-beta02

2022 年 9 月 7 日

androidx.compose.material3:material3:1.0.0-beta02androidx.compose.material3:material3-window-size-class:1.0.0-beta02 已发布。 版本 1.0.0-beta02 包含这些提交。

API 更改

  • beta01 版本中 m3 组件中引入的默认组件内边距不再考虑 IME 内边距。
  • Material3 脚手架组件现在有一个 contentWindowInsets 参数,允许指定要为内容插槽处理的内边距数量。(Icf11ab/243713323
  • 弃用实验性的 Material 3 SmallTopAppBar 函数,并引入等效的 TopAppBar 函数。请将您的使用情况迁移到新的函数。(I74404b/226918634
  • 添加了对顶部应用栏弹动和捕捉行为的控制。(I15c81
  • 从 Divider 中删除 startIndent,将颜色移动到最后一个参数。(If7be2

错误修复

  • 让对话框通过在显示时宣布“对话框”一词来识别自己,以便 TalkBack 用户识别。(I857ef

版本 1.0.0-beta01

2022 年 8 月 24 日

androidx.compose.material3:material3:1.0.0-beta01androidx.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
  • 添加了对顶部应用栏、抽屉、导航栏和轨道的内置支持。当这些组件单独使用或与脚手架一起使用时,它们将自动处理内边距,为开发人员提供便利。注意:此更改不会添加对状态栏图标和状态栏和导航栏透明度的自动处理。请继续手动执行此操作,以确保获得最佳的边缘到边缘体验。(I7e4e6b/183161866
  • 更新了组件默认值,以减少 API 表面,以便将来灵活性和性能改进。(I31820
  • 重新排列了芯片和导航抽屉工作表参数,以保持 API 中的一致性。(I45d0b
  • 从 Divider 中删除了 startIndent,并将颜色移到最后一个参数。(If7be2

版本 1.0.0-alpha16

2022 年 8 月 10 日

androidx.compose.material3:material3:1.0.0-alpha16androidx.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 中的 NavigationBarNavigationRail 参数以保持 API 中的一致性。(I51cda
  • 重新排列 Material 3 中的参数以保持 API 中的一致性。(If4ae1
  • 重新排列 Material 3 中的滑块参数以保持 API 中的一致性。(I62673
  • 将 icons 参数重命名为 actions 以与顶部应用栏保持一致。(Id75be
  • BadgeBadgedBox 标记为实验性,因为锚点对齐仍在不断变化。(I1712eb/236524516
  • 将图标按钮变体的 @ExperimentalMaterial3Api 注释更改为 @OptInI070b5
  • 将导航抽屉的内容分离到其自己的可组合项中,以支持在其上指定自定义宽度。(Ia7f10
  • MenuDefaultsTabDefaults 中删除了 DividerI4e33c

版本 1.0.0-alpha15

2022 年 7 月 27 日

androidx.compose.material3:material3:1.0.0-alpha15androidx.compose.material3:material3-window-size-class:1.0.0-alpha15 已发布。 版本 1.0.0-alpha15 包含这些提交。

新功能

API 更改

  • FilterChipElevatedFilterChip API 的更新,以删除 selectedIcon 插槽,并推广重新使用 leadingIcon 来显示选中状态。(Ie5dc2
  • 添加了遮罩和轮廓变体颜色角色。(Id6d54
  • 修复了可组合默认值的命名约定。(I62b27
  • ListItemDefaultsListItemColors 标记为实验性。(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-alpha14androidx.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)
  • WindowWidthSizeClassWindowHeightSizeClass 现在实现 Comparable,因此可以使用运算符(<、<=、>=、>)和其他 API 进行比较。 (I747d0)

错误修复

  • 更新徽章示例以提供更有意义的内容描述。 (I10b9d)
  • 在 Material 3 目录的主题选择器中添加了使用系统字体大小的选项。 (I10605)
  • 添加了徽章和不确定进度指示器的示例代码。 (I8fbe0)

版本 1.0.0-alpha13

2022 年 6 月 1 日

androidx.compose.material3:material3:1.0.0-alpha13androidx.compose.material3:material3-window-size-class:1.0.0-alpha13 已发布。 版本 1.0.0-alpha13 包含以下提交。

API 更改

版本 1.0.0-alpha12

2022 年 5 月 18 日

androidx.compose.material3:material3:1.0.0-alpha12androidx.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-alpha11androidx.compose.material3:material3-window-size-class:1.0.0-alpha11 已发布。 版本 1.0.0-alpha11 包含以下提交。

新功能

  • RangeSlider 添加到 Material 3 (I18e38)
  • 添加 Material3 AssistChipInputChip 支持 (I0d25a)
  • 添加 Material3 FilterChipSuggestionChip 支持 (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-alpha10androidx.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 FilledIconButtonFilledTonalIconButtonOutlinedIconButton。 (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 包含以下提交。

新功能

API 更改

  • 为菜单添加默认分隔符 (I01374)
  • surfaceTint 颜色参数添加到 ColorScheme 类。 (I2f558)

错误修复

  • 修复 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)
  • LazyVerticalGridLazyHorizontalGrid 现在稳定。 (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)
  • 添加了 PermanentNavigationDrawerDismissibleNavigationDrawer 作为实验性 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 函数。可点击的表面应使用 InteractionSourceModifier.clickable() 创建。 (I211c6)
  • 为 FAB 添加了按下和聚焦的抬升支持。 (Ibb584)
  • 更改了 Surface API 以接收 InteractionSource,它允许在不同状态下控制其外观。 (Iafbc8)

错误修复

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

错误修复

版本 1.0.0-alpha03

2022 年 1 月 12 日

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

错误修复

依赖项更新

  • 现在依赖于 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 部分。