Compose Material 3

使用 Material Design 3(新一代 Material Design)组件构建 Jetpack Compose UI。Material 3 中包括了更新后的主题和组件,以及动态配色等 Material You 个性化功能,旨在与新的 Android 12 视觉风格和系统界面相得益彰。
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2025 年 7 月 2 日 1.3.2 - - 1.4.0-alpha17

结构

Compose 由 androidx 中的 7 个 Maven 组 ID 构成。每个组都包含一套特定用途的功能,并各有专属的版本说明。

下表介绍了各个组的内容,点击链接即可查看其版本说明。

说明
compose.animation在 Jetpack Compose 应用中构建动画,丰富用户体验。
compose.compiler借助 Kotlin 编译器插件,转换 @Composable functions(可组合函数)并启用优化功能。
compose.foundation使用现成可用的构建块编写 Jetpack Compose 应用,还可扩展 Foundation 以构建您自己的设计系统元素。
compose.material使用现成可用的 Material Design 组件构建 Jetpack Compose UI。这是更高层级的 Compose 入口点,旨在提供与 www.material.io 上描述的组件一致的组件。
compose.material3使用 Material Design 3(新一代 Material Design)组件构建 Jetpack Compose UI。Material 3 中包括了更新后的主题和组件,以及动态配色等 Material You 个性化功能,旨在与新的 Android 12 视觉风格和系统界面相得益彰。
compose.runtimeCompose 编程模型和状态管理的基本构建块,以及 Compose 编译器插件的目标核心运行时。
compose.ui与设备互动所需的 Compose UI 的基本组件,包括布局、绘图和输入。

声明依赖项

如需添加 Compose 的依赖项,您必须将 Google Maven 制品库添加到项目中。如需了解详情,请参阅 Google 的 Maven 制品库

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

Groovy

dependencies {
    implementation "androidx.compose.material3:material3:1.3.2"
    implementation "androidx.compose.material3:material3-window-size-class:1.3.2"
    implementation "androidx.compose.material3:material3-adaptive-navigation-suite:1.4.0-alpha17"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.1"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.material3:material3:1.3.2")
    implementation("androidx.compose.material3:material3-window-size-class:1.3.2")
    implementation("androidx.compose.material3:material3-adaptive-navigation-suite:1.4.0-alpha17")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.1"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

如需详细了解依赖项,请参阅添加 build 依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

Compose Material 3 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 不再是实验性 API (If62af)

bug 修复

  • 默认情况下,为内容使用边衬区(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 变更

  • containerColorcontentColor 添加到 NavigationSuiteScaffoldDefaults。(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 变更

  • NavigationSuiteItemColors 构造函数设为公开。(Ica83ab/324886877

版本 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)
  • 迁移为使用 Window Manager 版本的窗口大小类。(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)
  • 公开 MutableInteractionSource 的 Material3 组件已更新为现在公开可为 null 的 MutableInteractionSource,其默认值为 null。这里没有语义变化:传递 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 中包含这些提交内容

新功能

bug 修复

  • 修复了当根界面具有 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 Adaptive 版本 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 中包含这些提交内容。

新功能

  • 支持在 scaffold 导航和值计算中实现历史记录感知 (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 中包含这些提交内容

新功能

  • 在窗格 scaffold 中添加了全屏支持 (I1b462)

API 变更

  • 将姿势中的铰链边界属性移到了铰链信息列表 (I24f90)

bug 修复

  • 修复了 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 从自适应 Scaffold API 中拆分出来。(Ic4045)
  • 移除 GutterSize 类。(I785b3)

bug 修复

  • 修复了不使用 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 自适应窗格 scaffold 指令 API:

Material3 自适应窗格脚手架 API:

Compose Material3 版本 1.4

版本 1.4.0-alpha17

2025 年 7 月 2 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha17。版本 1.4.0-alpha17 包含这些提交内容

新功能

  • 更新了按钮组的动画,使其在点击时动画播放到 75%,而不是在按压时播放。(593942ab/423596967

bug 修复

  • 修复了以下问题:在布局计算期间,轮播广告项有时可能会超出大型元素的大小,从而导致整个 widget 被剪切。(I1c3d7b/397489534
  • 修复了在滚动具有重叠的开始和结束偏移量的轮播界面时跳过 beforeContentPadding 的问题。(c3d5f3ab/420618979
  • 更新了 SwipeToDismiss 的启用行为,以观察稳定状态而非当前状态。恢复了现有行为,即仅当组件处于关闭状态时才停用锚定行为。(3844e07b/425006844
  • 现在,可以通过键盘输入打开 ExposedDropdownMenu 的弹出式菜单。还修复了可通过键盘访问可修改变体的菜单的问题。(46ead03)

版本 1.4.0-alpha16

2025 年 6 月 18 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha16。版本 1.4.0-alpha16 中包含这些提交内容

新功能

  • 添加了居中对齐的主打轮播界面组件 (I6f6d3)

API 变更

  • 实现 XR 替换垂直工具栏 (Ia1604)
  • CarouselState 添加了程序化滚动函数 (I12f8e)
  • ModalWideNavigationRail 添加了 ComponentOverride (I4f440)
  • WideNavigationRail 添加了 ComponentOverride (I6354f)
  • 为“HorizontalFloatingToolbar”创建“ComponentOverride” (I51116)
  • ShortNavigationBar 创建 ComponentOverride (I30e24)
  • 已将对 confirmValueChangeSwipeToDismissBoxState 引用标记为已废弃。用户应改用 SwipeToDismissBox API onDismissed 回调。(Iee780)
  • 为轮播界面可组合项添加了 userScrollEnabled 参数。(I1d4d2)
  • 现在可以从 CarouselState 中观察轮播界面的 currentItem。(Ie87e9)

bug 修复

  • 修复了传递给 FloatingToolbar 的 FAB 上的任意形状无法正确应用其阴影的问题。(Icdcc9b/423336922
  • 现在,所有轮播界面都默认使用轮播界面语义角色。(I7af12)
  • 修复了通过 LaunchedEffect 更新滑块状态时出现的滑块不正确移动问题(Id9f31b/302774166

版本 1.4.0-alpha15

2025 年 5 月 20 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha15。版本 1.4.0-alpha15 中包含这些提交内容

API 变更

  • 添加了 MotionTheme.LocalMotionScheme,即组合本地。这样,便可使用 currentValueOf(MotionTheme.LocalMotionScheme)CompositionLocalConsumerModifierNodes 访问主题运动方案。(I014b1)
  • 不带固定颜色角色的 ColorScheme 构造函数现已废弃。请迁移到包含固定角色的构造函数。(Iad0ee)
  • M3 Text 组件现在支持 TextAutoSize。(I7f524)
  • 添加了用于构建拆分按钮大小变体的 API,并添加了示例。(Ice30b)

bug 修复

  • 修复了在启用全屏显示时 SnackbarFloatingActionButton 位置不正确的问题。Scaffold 现在可以正确地将水平边衬区应用于这些组件。(Ib7c30b/244400727
  • 修复了从完全展开到部分展开的 BottomSheet 运动。BottomSheet 现在在隐藏或折叠时使用 MotionScheme 的快速效果,在展开时使用默认空间效果。(Ifa46fb/416063171
  • 不含界面容器角色的 ColorScheme 构造函数已被标记为隐藏,不再建议使用。(Ia7237)
  • 移除了 CircularWavyProgressIndicator Size.minDimension > 0 要求(之前会抛出异常),以提供更大的灵活性。(Ic9418b/377531195
  • Text(AnnotatedString) 中的超链接现在默认采用 Material 样式。(I78288b/339843816
  • 修复了 RoundedPolygon 中的 toShape() 函数缓存路径并在多次调用 createOutline 时因大小不同而导致的问题。(I4026d)

版本 1.4.0-alpha14

2025 年 5 月 7 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha14。版本 1.4.0-alpha14 中包含这些提交内容

API 变更

  • 添加了一个新的 AppBarColumn 可组合项,其工作方式与 AppBarRow 相同,但适用于以列形式布局的内容。(Iaf6bd)
  • AppBarRow 添加了 max items,这是正确实现顶部应用栏 Material 规范所必需的。(I92ce4)
  • TooltipScope 中添加了一种方法,用于获取锚点的 layoutCoordinates。弃用 drawCaret 方法,因为开发者可以使用此新方法获取锚定边界 layoutCoordinates 并创建包含插入符号的相应形状。(Ia2e12b/329470609
  • 为日期选择器添加了 java.time 支持:引入了接受 java.time 对象(例如初始 LocalDateYearMonth)的 rememberDatePickerState/rememberDateRangePickerState 过载。还为状态对象添加了扩展函数,以使用 LocalDateYearMonth 等类型获取/设置值。需要 API 26 或更高版本或 desugaring。(I70f29b/266202516b/281859606
  • 添加 CenteredTrack 可组合项,以允许使用从中心开始的轨道来使用滑块。(I5b1d6)

bug 修复

  • 提升了波浪形进度指示器的性能:线性类型的加载速度现在快了约 8.5%,分配次数减少了约 11%;圆形类型的速度大幅提升了约 47%,分配次数减少了约 39%。(I595d8)

版本 1.4.0-alpha13

2025 年 4 月 23 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha13。版本 1.4.0-alpha13 包含这些提交内容

API 变更

  • 重新将 isAppearanceLightStatusBarsisAppearanceLightNavigationBars 引入 ModalBottomSheetProperties,作为仅限 Android 的参数。(Id4bc0)
  • 添加一个 AppBarRow 可组合项,用于处理超出其边界的项的溢出。(I742bd)
  • 更新了 DatePickerDateRangePicker API,以便在切换到日期输入模式时请求焦点。我们将 requestFocus 布尔值参数替换为采用 FocusRequester 的可选 focusRequester 参数。(I14b69)
  • 从默认的可点击和可切换项中移除了修饰符和互动来源。改为将其作为实现细节。(I95ed6)
  • 更新了 ButtonGroup,以便在按钮过多而无法全部显示在屏幕上时溢出到下拉菜单中。(I7b88b)

bug 修复

  • 如果底部工作表小于当前偏移量,则现在会使用顶部边衬区。这样一来,用户就可以为展开行为提供顶部边衬区。BottomSheetDefaults.windowInsets 现在包含 WindowInsets.safeDrawing.Top。(I0ab67b/321877275b/336962418b/342093067
  • 在添加或移除 Chip 前导图标/头像和尾随图标时,启用了进入/退出动画(淡入/淡出、滑动)。这主要有利于可选择的 Chip(过滤条件、输入),但一般也适用。(I9af21)
  • 修复了由 LookaheadScope 导致的 RTL 滑块行为损坏问题。(Ieb152b/408118041
  • 修复了与隐藏系统界面时滚动相关的底部 AppBar 崩溃问题。(Ic6140b/405996228

版本 1.4.0-alpha12

2025 年 4 月 9 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha12。版本 1.4.0-alpha12 中包含这些提交内容

API 变更

  • ModalBottomSheetProperties 中移除了 Android 特有的参数(Iab97fb/362539765
  • 为拖动手柄大小默认值引入了重载函数 (I0ed0d)
  • 添加新的 NavigationSuiteScaffoldNavigationSuiteScaffoldLayout 函数以支持新的布局类型,并添加对可选主要操作内容的支持。(Ib262ab/353144478
  • ButtonGroup 中弃用了带有填充参数的 Modifier.weight。添加不带填充的版本。(Id32bb)
  • 重命名 xSmall-xLarge- IconButton 组件默认值,以拼写出 extra。(Ib6e0f)
  • 添加新的 NavigationSuiteNavigationSuiteItemNavigationSuiteColors 函数,以支持新的布局类型。(I203d6)
  • 添加新的 NavigationSuiteTypes 并添加包含这些布局选项的新 navigationSuiteType 函数 (If68f9)

bug 修复

  • ColorScheme.contentColorFor 现在将 surfaceDim 映射到 onSurface。(I8891a)
  • 更新了 DateInputTextField 实现,以解决输入字段未反映以编程方式设置的日期的问题。(I6c8d1b/401143451
  • 修复了侧边导航栏和宽侧边导航栏的 TalkBack 焦点顺序(I6cf6fb/407048224

版本 1.4.0-alpha11

2025 年 3 月 26 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha11。版本 1.4.0-alpha11 中包含这些提交内容

API 变更

  • 更新了按钮和切换按钮的默认对象中可组合属性的大小写。在 ToggleButtonDefaultsButtonDefaults 中添加了方法,用于根据容器高度设置推荐的内容内边距、形状、图标大小、图标间距和文字样式。(Iea69e)
  • FloatingToolbar 中移除了已弃用的实验性函数和常量。(I8f339)
  • 高程组件现在共享一个通用接口,并具有公共构造函数和属性。(Ibb172)
  • ButtonGroupScope 中添加 animateWidth 修饰符,该修饰符需要与按钮组的子项搭配使用,才能正确为子项设置动画。(Ia3bb6)

bug 修复

  • 修复了浮动工具栏内边距,以确保在折叠时实现视觉平衡,并提高了对较大内容的灵活性。(I06c00)

版本 1.4.0-alpha10

2025 年 3 月 12 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha10。版本 1.4.0-alpha10 中包含这些提交内容

API 变更

  • TabRowDefaults.tabIndicatorOffset 已被弃用,取而代之的是 TabIndicatorScope.tabIndicatorOffset。(Ib36b3)
  • 修复了按钮默认设置中小型内容内边距的拼写错误。(I19bfe)
  • 弃用了 TabRowScrollableTabRow,转为使用各自的 Primary 和 Secondary 变体。主要标签页和次要标签页的行在性能和准确性方面更符合规范。(I918e2)
  • 添加了 rememberSliderStaterememberRangeSliderState。(I8e384)
  • SliderState 添加了 shouldAutoSnap 以控制自动贴靠机制,停用该机制可能对自定义动画很有用。(I07745)
  • 可滚动标签页行的最小标签页宽度现在是一个参数。“主要”和“次要”标签页行变体不再是实验性功能。(If6f15b/226665301
  • 将类 ExitAlwaysFloatingToolbarScrollBehavior 设置为公开,允许在没有组合的情况下创建。(Ibf31c)

版本 1.4.0-alpha09

2025 年 2 月 26 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha09。版本 1.4.0-alpha09 中包含这些提交内容

API 变更

  • 重命名了默认状态下 DragHandle 的设置字段;分离了按压状态和拖动状态;将默认大小设为公开。(I787b9)
  • TowRowsTopAppBar API 的更新。移除了 expanded lambda 参数,并为展开和收起的高度添加了单独的参数。(Idd677b/306697446b/229134133b/268068946

bug 修复

  • 底部应用栏现在会观察轻触浏览服务(例如,TalkBack),并在服务开启时始终显示这些图标。(I4b34d)

版本 1.4.0-alpha08

2025 年 2 月 12 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha08。版本 1.4.0-alpha08 中包含这些提交内容

新功能

  • 添加了可用于 TimePickerTimeInput 或具有可切换版本的 TimePickerDialog API。(Id2d83)

  • 新的搜索栏 API:

    • 折叠式搜索栏和展开式搜索“视图”现在是单独的可组合项。
    • SearchBar 表示处于收起状态的搜索栏。
    • ExpandedFullScreenSearchBarExpandedDockedSearchBar 表示处于展开状态的搜索栏。这些链接会在新窗口中打开。
    • SearchBarState 用于控制搜索栏的状态
    • TopSearchBar 以添加边衬区处理和滚动行为
    • 使用 SearchBarStateInputField 新重载(Ie0723b/261496232b/283311462b/350916229b/352872248

API 变更

  • 支持在按下时对图标按钮的边角形状进行变形。(I21843)
  • 文本字段装饰器/装饰框 API 不再处于实验阶段。(I31d95)
  • ButtonGroup 添加了连接变体的示例和默认值。(I5c8ce)
  • 将状态参数设为 NavigationSuiteScaffoldNavigationSuiteScaffoldLayout 中的最后一个参数。(I9cc7b)

bug 修复

  • FloatingToolbars 添加了自定义无障碍操作,以便无障碍服务现在可以展开或收起所有 FloatingToolbar 变体。配备 FAB 的版本会将其应用于 FAB,而没有 FAB 的版本会将其应用于主要内容。(I26420)
  • FloatingToolbars 现在观察轻触浏览服务(例如 TalkBack),并在服务开启时始终保持工具栏处于展开状态且可见。(I02172)
  • 修复了以下问题:当 Float.NaN 作为进度传入时,进度和加载指示器会发生崩溃。(I4fa96b/352364576

版本 1.4.0-alpha07

2025 年 1 月 29 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha07。版本 1.4.0-alpha07 中包含这些提交内容

新功能

  • 新增了 API,可更灵活地自定义复选框的外观。此 API 提供描边参数,可让您更好地控制对勾标记和复选框轮廓的呈现方式。(I65a88)
  • 添加了 TwoRowsTopAppBar API,这是中型和大型应用栏的替代方案,可自定义程度更高,用于创建双行顶部应用栏。现在,开发者可以控制折叠状态和展开状态下的标题和副标题内容,并可自定义每种状态下的高度。(I0be3cb/306697446b/229134133b/268068946

API 变更

  • 将实验性 BottomAppBar 变体重命名为 FlexibleBottomAppBar,以便更好地控制内容排列和高度。(Iaa448)
  • 将“按钮组”默认对象中属性的命名更新为 CapitalCase。更新了 animateFraction 的名称,使其更准确地反映其所代表的行为。(I545cd)
  • 为常用按钮添加了重载,以便在按压互动时实现动画形状。添加了缓存的按钮形状。(I5ec20)
  • 现在,您可以通过提供 FloatingToolbarScrollBehavior 来控制包含悬浮操作按钮的 FloatingToolbar 对滚动操作的反应。对于位于中心边缘(例如顶部中心或底部中心)的工具栏,我们建议使用滚动行为在滚动时隐藏整个组件,以获得更简洁的外观。这还可以防止 FAB 在使用 expanded 标志进行折叠时出现偏离中心的情况。(I33f67)
  • 更新了实验性 TopAppBar API,以在设置标题和副标题的对齐方式时使用 Alignment.Horizontal 而不是自定义 TopAppBarTitleAlignment。(I70ca2)
  • SliderState#onValueChange 现在已公开,以便为用户提供更多控制权 (I104eb)
  • 引入 NavigationSuiteScaffoldState 以允许对导航组件进行动画处理。还引入了具有状态形参的 NavigationSuiteScaffoldNavigationSuiteScaffoldLayout 的过载。(I6a8c9b/328674235

bug 修复

  • IconButtonColorsIconToggleButtonColors 类从 IconButtonDefaults.kt 移回到了 IconButton.kt。(I3c233)

外部贡献

  • SliderState#isDragging 现已公开。(I8458a)

版本 1.4.0-alpha06

2025 年 1 月 15 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha06。版本 1.4.0-alpha06 中包含这些提交内容

行为变更

  • 向 Material 组件默认考虑的边衬区组添加了 displayCutout,以避免内容与刘海屏重叠。这是一项行为变更,会影响插边感知型组件在显示屏刘海屏周围的行为。这包括 inset-aware Material 3 组件的 WindowInsets 参数的默认值,以及 Material 2 和 Material 3 的组件 Defaults 对象中提供的 WindowInsets 值。如果此更改导致了不良行为,请针对每个组件手动指定 WindowInsets 参数。(I43ee9b/362508045

API 变更

  • TopAppBar API 的更新。将带有副标题的中型和大型顶部应用栏重命名为 *FlexibleTopAppBar。将颜色变体统一为一个 TopAppBarDefault.topAppBarColors() 函数,并添加了一个 subtitle 颜色参数,以应用于提供的字幕可组合项 (I41b65)
  • 移除了 WideNavigationRailArrangement API,改用 Arrangement.Vertical (Id0341)
  • 添加新的 VerticalSlider @Composable。(I2bfba)
  • 添加了一个新的轨道 @Composable,用于指定自定义的外部轨道边角和轨道图标。(I436a4)
  • 更新浮动工具栏 API,以使用 FloatingToolbarColors 对象而不是单个容器颜色。(I9a054)
  • 添加并使用新的实验性注解 ExperimentalMaterial3ComponentOverrideApi (Ia1eaf)
  • Modifier.indicatorLine 现在采用一个形状,供文本字段处理剪裁。(I8c5f3b/380704151
  • 将实验性 FloatingAppBar 函数重命名为 FloatingToolbar (I1dbf8)
  • 添加了一个新的 floatingToolbarVerticalNestedScroll,可将其附加到可滚动容器,以根据超出阈值的滚动动作更新浮动工具栏展开状态。(I6d65f)
  • 推出了一款新 API,用于创建带有附加的悬浮操作按钮 (FAB) 的浮动工具栏。该 API 提供灵活的自定义选项,可让您水平或垂直排列工具栏,并将 FAB 放置在工具栏的开头或结尾。(I9e350)

bug 修复

  • 修复了 TalkBack 开启时导致 Snackbar 在关闭时自行播报的无障碍功能问题。(/I9db53)

外部贡献

  • 在 foundation 中通用化了 BasicTooltip,在 material3 中通用化了 BasicTooltip/Tooltip。(Ifc2e6)

版本 1.4.0-alpha05

2024 年 12 月 12 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha05。版本 1.4.0-alpha05 中包含这些提交内容

API 变更

  • 替换了 WideNavigationRailState.current/target 值中枚举的类型,以提高可读性 (I2d6ab)
  • SplitButton 将 Shape API 从数据类更改为类,以实现二进制文件兼容性。(I53812)
  • 添加了具有 onDismissRequest 参数的提示工具 API,以便开发者可以决定当用户点击提示工具外部时会发生什么。弃用了不包含此新参数的旧 API。(I99aef)
  • opticalCentering 的命名更改为 horizontalCenterOptically。将修饰符设为内部修饰符。将填充参数替换为最大起始偏移量和结束偏移量。(I0b904)
  • WideNavigationRailState 更改为具有当前值/目标值,移除枚举,改为使用布尔值。(Idfa29b/356039090
  • 添加了 NavigationBarItemComponentOverride。(I3a06a)

bug 修复

  • 修复了顶部和底部应用栏的行为,以便在内容滚动到最底部时可靠地更改颜色。(Idc4e8b/293665988
  • 顶部和底部应用栏的滚动行为函数现在会返回记忆的行为,以便在重组时更好地执行。(I0fdbeb/207957336
  • 修饰符形参现在应用于拖动行为和语义等内部修饰符之后,而不是之前。这会影响修饰符的应用顺序。(I8d83f)
  • 展开的底部动作条在尺寸更改时保持展开状态。(I2870bb/324934884
  • 正确路由窗口属性的状态栏和导航栏标志。(Ie674db/362539765
  • 按照文档中的说明,将修饰符参数移至 scaffold 根目录。这可使实现与 M2 保持一致。(I0235eb/372311595

外部贡献

  • 通用化了 DatePickerDialog 函数。(I7dced)

版本 1.4.0-alpha04

2024 年 11 月 13 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha04。版本 1.4.0-alpha04 中包含这些提交内容

行为变更

  • aosp/3212478 中引入的颜色变更恢复到 iconButtonColorsiconToggleButtonColorsoutlinedIconButtonColorsoutlinedIconToggleButtonColorsoutlinedIconToggleButtonBorder。将现在已恢复的行为移至一组名为 iconButtonVibrantColors 的新函数中,以强调返回的高对比度颜色。(Iffd8d)

新功能

  • 引入 VerticalDragHandle 组件 (I6c770)

API 变更

  • 已将 DismissibleModalWideNavigationRailDefaults 重命名为 ModalWideNavigationRailDefaults。(I8e877)
  • 添加了 NavigationBarComponentOverrides。(I8a3f3)
  • 添加了 NavigationRailComponentOverride。(I83e13)
  • 引入 WideNavigationRailState 来处理轨道折叠/展开,允许 ModalWideNavigationRail 可关闭并删除 DismissibleModalWideNavigationRail。(I88568)
  • 将 xSmall、medium、large 和 xLarge 大小默认值添加到切换按钮默认值中。(Ie95d1)
  • 将 xSmall、medium、large 和 xLarge 大小默认值添加到按钮默认值中。(If8b6d)

bug 修复

  • 根据规范,过滤条件条状标签的尾随图标颜色已从 Primary 更新为 OnSurfaceContainer。根据规范,所有条状标签的轮廓颜色已从 Outline 更新为 Outline Variant。(I68bd4)

版本 1.4.0-alpha03

2024 年 10 月 30 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha03。版本 1.4.0-alpha03 中包含这些提交内容

API 变更

  • 已弃用具有密度的 SheetState 构造函数,转而使用位置和速度阈值。(Ifd16e)
  • 添加了包含更新后的定位逻辑的 rememberTooltipPositionProvider。废弃了 rememberPlainTooltipPositionProviderrememberRichTooltipPositionProvider。(Ie66e2)
  • 新增了 ModalBottomSheetProperties,可用于自定义状态栏和导航栏颜色。默认情况下,这些更新基于内容颜色,而不是系统深色主题状态。(Ib874eb/362539765
  • 改进了日期选择器的输入体验:在输入模式下,日期文本字段将处于聚焦状态,以便立即输入文本。此更改向 DatePickerDateRangePicker 添加了 requestFocus 参数。您可以通过传递 false 来阻止焦点。(I12d09b/286399710b/340102743
  • 将形状默认值缓存到 Shape 对象中。将切换按钮的形状默认值设为 @Composable。由于变体指向的是同一令牌文件,因此默认将形状折叠为一个形状。(Iaa014)

bug 修复

  • 优化了 Scaffold contentPadding 行为,以避免在 contentPadding 发生变化时始终重新组合正文内容。(I8c8e2b/373904168
  • TextFieldLabelScope progress 已重命名为 labelMinimizedProgress
  • TextFieldLabelPosition Default 已重命名为 Attached。已移除接口成员。(If75c6)
  • 修复了输入模式下 DatePicker 的一个问题,即验证错误可能会导致组件的高度发生变化。(I2e229b/280462363
  • 使 Material 滑块在按下控制键时更改其值。(I1c442)

版本 1.4.0-alpha02

2024 年 10 月 16 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha02。版本 1.4.0-alpha02 中包含这些提交内容

API 变更

  • 更新了日期选择器,以确保在通过 DatePickerStateDateRangePickerState 直接设置语言区域时,DatePickerDateRangePicker 中始终使用一致的语言区域。请注意,当直接将语言区域设置为状态时,您需要确保标题和头条新闻文本相应地进行本地化,因为系统仍会根据默认平台语言区域应用其默认文本。(I37073b/326490763b/321657276
  • SheetState.isAnimationRunning 现已公开。(I9a3d7)
  • DatePickerColors 现在可以正确优先于主题的排版文本样式中定义的任何冲突颜色。另请注意,此更新调整了日期选择器函数中 color 参数的位置,并引入了 contentColor 参数,用于自定义标题和标题文本颜色。(I30d03b/347031394
  • SplitButton 重命名为 SplitButtonLayout,并移除 SplitButton 颜色变体 API,变体将通过重用 SplitButtonDefaults 提供的按钮变体来实现。(I44c36)
  • ModalBottomSheet 现在具有 sheetGestureEnabled 参数(I856cbb/288211587
  • standardMotionSchemeexpressiveMotionScheme 重命名为标准和表现性。现在,您可以通过调用 MotionScheme.standard()MotionScheme.expressive(),通过 MotionScheme 同伴对象访问这两个函数。(Iceccf)
  • 向纯文本和富文本提示添加了 maxWidth 参数。默认情况下,纯文本提示的设计规范为 200 dp,富文本提示为 320 dp。(I30ce9)

bug 修复

  • DatePickerDateRangePicker 现在可以在通过其状态的 displayedMonthMillis 进行设置时正确更新显示的月份。(If9e47b/333414302
  • ModalBottomSheet 内容现在可将内容移离状态栏。(I5114cb/321877275b/336962418b/342093067
  • [底部操作表] 将返回回调优先级更改回 PRIORITY_DEFAULT,以允许 IME 键盘先关闭。(I447fb)
  • 修复了当可选择的最小年份设置为未来年份时,DatePickerDateRangePicker 中发生的崩溃问题。(I78656b/319395747
  • 修复了日期选择器问题,以便在应用更新后的 SelectableDates 实例时更新界面。(Iad59ab/290135807b/339898760

版本 1.4.0-alpha01

2024 年 10 月 2 日

发布了 androidx.compose.material3:material3-*:1.4.0-alpha01。版本 1.4.0-alpha01 中包含这些提交内容

行为变更

  • 该库不再添加对 material-icons-core 的依赖项,因此如果您的项目依赖于该依赖项,则必须在 build.gradle[.kts] 文件中显式添加该依赖项。(I735ffb/349894318
  • NavigationBarItemNavigationRailItem 的有效标签颜色从 onSurface 更改为 secondary,以提高可用性、色彩对比度并改进系统内的一致性 (Ibc297);如需恢复到之前的行为,请复制默认颜色并将 selectedTextColor 更改为 MaterialTheme.colorScheme.onSurface
  • Material 3 组件现在使用新的 MotionScheme 来定义其运动。(Ie0f93)
  • 不确定环形进度指示器运动变化 (I3c07e)
  • 更新了 OutlinedIconButtonColorsOutlinedIconToggleButtonColors,以提高颜色对比度。(I2743d)
  • 更新了 FilledIconToggleButtonColorsFilledTonalIconToggleButtonColors 的容器和内容颜色。(Ic5d0f)
  • 已将 OutlinedButton 边框颜色从 outline 更新为 outlineVariant。(057f00)

API 变更

  • TopAppBarenterAlwaysScrollBehavior 函数添加了可选的 reverseLayout 参数,以更好地支持使用 reverseLayout 设置的内容。(I4e0e5)
  • SegmentedButton 现在支持 contentPadding 实参。(I5ad91b/358414376
  • PullToRefreshState 不再具有 isAnimating 的默认实现 (I6a593)
  • 添加了使用 TextFieldState 的 Material TextFieldOutlinedTextField 的新过载。添加了与 TextFieldDecorator 兼容的装饰框 API。(If13a1)
  • 添加了用于控制文本字段 labelPosition 的参数。使用 alwaysMinimize 可实现以下界面模式:即使文本字段未处于聚焦状态,也能同时在其中显示标签和占位文本。(I1ef2c)
  • 为密码输入字段添加了 Material SecureTextFieldOutlinedSecureTextField。(I7e22d)
  • 为文本字段标签添加了用于查询动画进度的范围。(If5ec8)
  • 向提示添加了对 MotionEvent.CLASSIFICATION_DEEP_PRESS 的支持。(I62e6a)
  • TimePickerStateisAfternoon 现在是扩展值,而不是接口中的变量,并已重命名为 isPm (I89a97)
  • 更新了排版类,以支持强调型字体比例。(Ifa13c)
  • 添加了 ModalWideNavigationRail API,并将 ModalExpandedNavigationRail API 重命名为 DismissibleModalWideNavigationRail。(Ic9118)
  • 更新了 FloatingAppBarScrollBehavior,以自动计算 screenOffset,而无需 @Composable。(Idf349)
  • 更新了 LoadingIndicator API,以修复其默认对象中的命名问题。在 PullToRefresh 中添加了 LoadingIndicatorElevation 常量。(I1d72b)
  • 更新了 LoadingIndicator API,以修复其默认对象中的命名问题。在 PullToRefresh 中添加了 LoadingIndicatorElevation 常量。(I1d72b)
  • LinearWavyProgressIndicatorCircularWavyProgressIndicator 的不确定变体添加了 amplitudewaveSpeed 参数。(I2a0c5)
  • 支持根据图标切换按钮的按下或选中状态更改其形状。(Ibc781)
  • 更新了排版类,以支持强调型字体比例。(Ifa13c)
  • SplitButton 形状会根据默认状态 / 按下状态发生变形。移除了 AnimatedTrailingButton API,因为 TrailingButton API 可以提供相同的自定义设置 (I95066)
  • 添加修饰符以实现 FAB 显示和隐藏的动画效果,例如在内容滚动时。(I8338d)
  • ButtonGroupDefaults 添加了连接的按钮组形状和间距,以便在示例中使用。(I68e30)
  • 为尾随按钮添加了水平内边距,并启用了根据起始角和结束角差异计算的光学居中 (I122e2)
  • 引入了新的 Material MotionScheme,用于设置组件的运动方案。方案通过 MaterialTheme 设置。(Id50c2)

bug 修复

  • 将正确的焦点遍历索引应用于 Scaffold 子可组合项。顺序为 topBarbottomBar、FAB、内容、Snackbar。(I5936b)
  • 修复了 DatePickerDateRangePicker 中在某些语言区域和格式骨架中,部分日期元素(例如月份名称)未以大写字母开头的问题。(I1430f)
  • 集成了 FAB 和 FAB 菜单组件令牌(对内边距和文本进行了细微的视觉更新)(Ib57f3)
  • ModalBottomSheet 现在位于语义遍历顺序的首位,后面是遮罩。(I436f9b/358594665
  • 修复了在边到边模式下,当在导航药丸下方滚动时,底部应用栏不会完全消失的问题 (I3ee21)

Compose Material3 版本 1.3

版本 1.3.2

2025 年 4 月 9 日

发布了 androidx.compose.material3:material3-*:1.3.2。版本 1.3.2 中包含这些提交内容

bug 修复

  • ListItem 修正了其固有高度计算,现在可在布局中预留适当的空间。
  • 移除过多的 NavigationBarItem 标签内边距,正确对齐规范。
  • 修正了 RTL 模式下的 TabRow 布局。

版本 1.3.1

2024 年 10 月 30 日

发布了 androidx.compose.material3:material3-*:1.3.1。版本 1.3.1 中包含这些提交内容

bug 修复

  • DatePickerDateRangePicker 现在可以在通过其状态的 displayedMonthMillis 进行设置时正确更新显示的月份。(If9e47b/333414302
  • 修复了当可选择的最小年份设置为未来年份时,DatePickerDateRangePicker 中发生的崩溃问题。(I78656b/319395747
  • 修复了日期选择器问题,以便在应用更新后的 SelectableDates 实例时更新界面。(Iad59ab/290135807b/339898760
  • 将底部工作表使用的返回回调优先级更改为 PRIORITY_DEFAULT,以允许 IME 键盘先关闭。(I447fb)

版本 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+ 上进行预测性返回(Iccf32b/281967264b/304850357
  • [SearchBar] 现在支持 U+ 上的预测性返回 (I657f8)
  • 抽屉式导航栏(ModalDrawerSheetDismissibleDrawerSheet)现在支持在 U+ 上选择启用预测性返回功能 (Ie5b0b)
  • DropdownMenu 现在支持自定义颜色、形状、高度和边框。(I8e981b/289554448b/301887035b/283654243
  • 更新了滑块,通过添加间隙和停止指示器来提高无障碍性。(I3058e)
  • 更新了 ProgressIndicator,通过添加间隙和停止指示器来提高无障碍功能。(I21451)
  • 为富信息提示添加了默认光标,支持根据锚点 LayoutCoordinates 绘制自定义光标。(Ifd42c) 重大变更
  • 新增了下拉刷新 API:
    • 简化了 PullToRefreshState,以使用小数值代替 Dp 单位。
    • isRefreshing 状态由用户控制,而不是由 PullToRefreshState 控制。
    • PullToRefreshState 中分离出嵌套的滚动连接。它由新的 PullToRefreshBoxModifier.pullToRefresh 处理。
    • 此更新是对之前实验性 API 的重大更改。(I0adebb/314496282b/317177684b/323787138b/324573502b/317177683) 视觉效果方面的重大变更
  • 将焦点状态叠加层更新为 0.1f,以确保足够的色彩对比度。(I7ea77)
  • lightColorSchemedarkColorScheme 中的 Surface 和背景颜色默认值进行了小幅调整。(I9db52)
  • 更新了滑块和 ProgressIndicator 颜色,以遵循新的非文本对比度规范。(I26807)
  • 组件现在使用 SurfaceContainer 变体。之前使用 SurfaceTonalElevation 正式计算颜色的组件现在默认使用 SurfaceContainer 角色,这些角色不受色调海拔高度的影响。(b/304584161)
  • Surface 和 Surface 容器的基准角色已略作调整,可在浅色主题和深色主题中提供更多色调。(I677a5)
  • 将实验性 API 升级到了稳定版!
  • 提升了性能

版本 1.3.0-rc01

2024 年 8 月 21 日

发布了 androidx.compose.material3:material3-*:1.3.0-rc01。版本 1.3.0-rc01 中包含这些提交内容

bug 修复

  • ModalBottomSheet 现在位于语义遍历顺序的首位,后面是遮罩。(I436f9b/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,使 enabled 成为布尔值,而不是 lambda。支持 PullToRefreshBox 中的内容对齐 (I75679)
  • TooltipScope 设为密封接口,并创建内部实现以在 TooltipBox 和 Label 中使用。(I3833e)
  • CarouselItemScope 添加了两个新的修饰符 - maskClipmaskBorder - 以便轻松为任何轮播内容项添加形状和边框 (Id67a1)
  • TimePickerState 现在是一个接口,允许设置时间 (I88546)
  • 更新了用于设置链接样式的 API:将 TextLinkStyles 移到了 TextStyle,并从 Material 中移除了 TextDefaults。(I5477b)

bug 修复

  • ModalBottomSheet 状态栏和导航栏图标现在会响应深色主题状态。(Ie1fe7b/338342149
  • ModalBottomSheet 屏障添加了关闭工作表的语义。(0e61cbb/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 的重大更改。(I0adebb/314496282b/317177684b/323787138b/324573502b/317177683

API 变更

  • 已移除 RippleConfiguration#isEnabled,并将 LocalRippleConfiguration 设置为可为 null。如需停用涟漪效果,请向 LocalRippleConfiguration 提供 null,而不是提供带有 isEnabled = falseRippleConfiguration。(I22725)
  • 启用全屏显示时,ModalBottomSheet 可更准确地在状态栏上绘制微光。模态底部动作条内容现在可以占用窗口边衬区,从而使可见内容显示在导航栏上方。ModalBottomSheet 参数 windowInsets 已重命名为 contentWindowInsets,用于指定插边将应用到的位置,这些位置不再与窗口逻辑相关联。contentWindowInsets 类型已更改为返回 WindowInsets 的函数,以便在新的窗口中解析该类型。(I39630b/274872542b/300280229b/290893168
  • PrimaryScrollableTabRowSecondaryScrollableTabRow 现在使用自定义布局,而不是子合成,这应该可以提高性能。(I991e0)
  • 除了正常样式、悬停样式和聚焦样式之外,文本链接还获得了按下状态样式选项。TextDefaults 方法各自获得了一个 pressedStyle 实参来支持该功能。(Ic473fb/139312671

bug 修复

  • 导航抽屉的拖动锚点现在与 drawerContent 的宽度一致。(Ibc72fb/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 提供。(I50c73b/275074248b/278773336b/326627700
  • 已将 lambda drawTick 添加到公共 API,以便在需要时自定义刻度 (I0c048)

API 变更

  • 除了正常样式、悬停样式和聚焦样式之外,文本链接还获得了按下状态样式选项(I5f864b/139312671
  • 更新了 CarouselItemInfo 以公开项被剪裁的遮罩 Rect (I785d8)
  • 从 Material 3 公共 API 中移除了 BasicTooltipState。在 Foundation 的 BasicTooltip 稳定之前,其功能将与 TooltipState 相结合。(Icda29)
  • 添加了 TextDefaults 对象,其中包含用于构建 LinkAnnotation 和解析 HTML 加标记字符串的方法,这些方法会将 MaterialTheme 应用于链接(I98532b/139312671
  • ExposedDropdownMenuBoxScope 不再允许使用子类。公开的下拉菜单现在具有 MenuAnchorType,应将其传递给 menuAnchor 以支持更好的无障碍功能。应使用此方法,而不是将 focusable 传递给 ExposedDropdownMenu(此方法现已弃用)。menuAnchor 新增了一个用于控制 enabled 状态的参数。(I55ee6b/257209915b/308840226
  • 修复了停用 OutlinedButton 时的边框颜色。添加了可接受启用状态的 ButtonDefaults.outlinedButtonBorder("enabled") 过载。(Ie650bb/318461363
  • 添加了新的 CarouselItemInfo 类,以帮助客户端获取有关商品尺寸的信息。(I9070c)
  • 不带 Surface 容器的 ColorScheme 构造函数现已弃用。请迁移到包含 Surface 容器的构造函数。(I35c11)
  • [已添加轮廓]TextFieldDefaults ContainerBox 已重命名为 Container。(Ie8d3b)

bug 修复

  • 如果 sheetSwipeEnabled 为 false,BottomSheetScaffold 将不再从嵌套滚动中滚动。(I5e1c1b/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 现在支持为固定部分和可折叠部分设置自定义高度。 (Ib8b0cb/323403446

API 变更

  • 顶部应用栏 API 现在支持为固定部分和可折叠部分设置自定义高度。修复了在滚动内容时导致单行顶部应用栏重新组合次数过多的问题。解决了以下问题:在字体/显示设置较大的设备上,MediumTopAppBar 截断了标题。(Ib8b0cb/323403446b/300953236b/286296147b/330410290b/308540676
  • SegmentedButton 和关联的 API 现已稳定 (I8a158)
  • SwipeToDismissBoxSwipeToDismissBoxDefaultsSwipeToDismissBoxStateSwipeToDismissBoxValue 现在标记为稳定。(I5f000)
  • 移除了已弃用的 DismissDirectionDismissValue 枚举和 API。(I89ccd)
  • 为 Carousel 的 CarouselState 同伴对象添加了实验性标记。(I94154)
  • 弃用了 LocalMinimumInteractiveComponentEnforcement,并引入了 LocalMinimumInteractiveComponentSize 来取代它。(I7a7ac)
  • SearchBarColors 构造函数现已公开。(I769ca)
  • SwipeToDismissBox 添加了 gesturesEnabled 参数。(Idc59fb/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 中的 Surface 和背景颜色默认值进行了小幅调整。(I9db52)

新功能

  • 添加了用于自定义 ExposedDropdownMenu 的参数。具体而言,菜单现在具有 focusable 参数(默认值为 true),在处理可编辑的文本字段时,应将其设置为 false。(I4184cb/323694447b/278609042

API 变更

  • 已移除 ScaffoldSubcomposeInMeasureFix 标志。(Ie2a4b)
  • NavigationRailItemColors 现在标记为 @Immutable。(If6112b/327660613
  • NavigationBarItemColors 现在标记为 @Immutable。(I42a30b/298064514
  • 对滑块轨道可组合项中的参数进行了重新排序。(I9f315)
  • ExposedDropdownMenu 现在使用 Popup 实现。行为应保持不变,但具有可编辑文本字段的可聚焦菜单可能会在通过键盘输入时被关闭。

bug 修复

  • Surface 和 Surface 容器的基准角色已略作调整,可在浅色主题和深色主题中提供更多色调。(I677a5)
  • 更新了滑块和 ProgressIndicator 颜色,以遵循新的非文本对比度规范。(I26807)
  • 将焦点状态叠加层更新为 0.1f,以确保足够的色彩对比度。(I7ea77)
  • lightColorSchemedarkColorScheme 中的 Surface 和背景颜色默认值进行了小幅调整。(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 中。(I82ab2b/322269951
  • 导航组件现在使用新的 SurfaceContainer 角色。DrawerDefaults 现在提供不同的 standardContainerColormodalContainerColor 属性。DrawerDefaults.ModalDrawerElevation 现为 0.dp。(I7fbac)
  • Slider 的状态中移除了 @Stable,因为我们将 state.onValueChangeFinished 更改为 var。(Ied34ab/322269951
  • ModalBottomSheetStandardBottomSheet 动画规范现在是 TweenSpec,已从弹簧动画更新。这解决了明显的过冲问题。已移除不含密度的弃用 SheetState 构造函数。(I7babcb/285847707

bug 修复

  • 组件现在使用 SurfaceContainer 变体。之前使用 Surface 和 TonalElevation 正式计算颜色的组件现在默认使用 SurfaceContainer 角色,这些角色不受色调高度的影响。(b/304584161)
  • 修复了导致 ElevatedFilterChip 的未选中、已停用容器颜色为黑色的 bug。(I400e6b/322407043
  • 修复了进度为 0 时不确定进度指示器的问题 (Id6582)
  • 修复了 RTL 布局(Iab0e1)中 SliderRangeSlider 存在的问题
  • 为滑块范围计算添加了 SliderRangeTolerance,因为浮点数舍入可能不准确。(Ic918ab/324934900
  • 确保在嵌套 DateRangePicker 时或在小屏幕上以较大字体显示任何类型的日期选择器时,DatePickerDialog 会显示其按钮。(Ie4758b/325107799b/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 容器颜色现在为 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+ 上的预测性返回(Iccf32b/281967264b/304850357
  • 更新了 Compose M3 SearchBar,以支持 U+ 上的预测性返回 (I657f8)
  • 更新了滑块,通过添加间隙和停止指示器来提高无障碍性。(I3058e)
  • 更新了 ProgressIndicator,通过添加间隙和停止指示器来提高无障碍功能。(I21451)
  • 为富信息提示添加了默认插入符号,新的富信息提示 API 现在允许根据锚点 LayoutCoordinates 绘制自定义插入符号。(Ifd42c)

行为变更

  • Material 组件已迁移为使用新的涟漪 API,不再查询 RippleTheme

API 变更

  • 有趣的 drawStopIndicator 现已公开发布。(I3f59f)
  • DatePickerformatWithSkeleton 函数标记为内部函数 (Ic65dc)
  • DropdownMenu 现在支持自定义颜色、形状、高度和边框。(I8e981b/289554448b/301887035b/283654243
  • 公开 MutableInteractionSource 的 Material3 组件已更新为现在公开可为 null 的 MutableInteractionSource,其默认值为 null。这里没有语义变化:传递 null 表示您不希望提升 MutableInteractionSource,如果需要,它将在组件内部创建。更改为 null 可让某些组件永远不分配 MutableInteractionSource,并允许其他组件仅在需要时延迟创建实例,从而提高这些组件的性能。如果您不使用传递给这些组件的 MutableInteractionSource,建议您改为传递 null。我们还建议您在自己的组件中进行类似的更改。(I41abbb/298048146
  • 添加了 RippleConfigurationLocalRippleConfiguration,以允许使用固定值对涟漪进行组件级 / 子树级自定义。例如,更改您无法控制的组件的颜色,或为组件停用涟漪效果。在大多数情况下,应使用默认值:这些 API 是用于自定义各个组件 / 有限子树的应急方案。对于更广泛的更改和自定义设计系统,您应改为使用 createRippleModifierNode 构建自己的涟漪效果。(I7b5d6b/298048146
  • 在 Material 3 中添加了新的涟漪 API,以取代已废弃的 rememberRipple。还添加了临时 CompositionLocalLocalUseFallbackRippleImplementation,以将 material3 组件恢复为使用已弃用的 rememberRipple / RippleTheme API。此属性将在下一个稳定版本中移除,仅用于在您提供自定义 RippleTheme 的情况下临时帮助迁移。(I34cbcb/298048146

bug 修复

  • 移除了 ModalBottomSheet 内的子合成,以提高性能。修复了 ModalBottomSheet 在特定场景中与 LookaheadScope 结合使用时可能崩溃的问题。(I2a198)
  • 移除了 BottomSheetScaffold 内的子合成,以提高性能。修复了 BottomSheetScaffold 在特定场景中与 LookaheadScope 结合使用时会崩溃的问题。(Ie6401)
  • 调整了标记对齐方式,使其更靠近右上角的锚定内容中心。(I18a28)
  • 修复了 DateRangePicker 的无障碍功能问题,即向屏幕阅读器、开关控制和语音控制用户传达了“月份-年份”文本标题可操作的信息。(I2ac55)
  • 修复了 mediumTopAppBarColors 参数顺序 bug。(Ibe64a)

版本 1.2

版本 1.2.1

2024 年 3 月 6 日

发布了 androidx.compose.material3:material3-*:1.2.1。版本 1.2.1 中包含这些提交内容

bug 修复

  • 使滑块状态再次稳定。将 State.onValueChangeFinished 重新设为 val。将 onValueChangeFinished 封装在 rememberUpdatedState 中。(Ie8fd0b/322269951
  • Slider 的状态中移除了 @Stable,因为我们将 state.onValueChangeFinished 更改为 var。(I82ba1b/322269951
  • 修复了 NavigationBar 个自定义颜色,以从默认颜色复制。(80a779b/326894020
  • 修复了 ExposedDropdownMenu 中的回归问题,使其再次可聚焦(3fcec1b/323694447
  • 修复了按钮颜色缓存问题(3e5bbcb/327371655

版本 1.2.0

2024 年 2 月 7 日

发布了 androidx.compose.material3:material3-*:1.2.0版本 1.2.0 中包含这些提交内容

已知问题

  • PrimaryTabRow 中,为了提升性能,引入了一个 View-Compose 互操作渲染bug。解决方法是将 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 中包含这些提交内容

bug 修复

  • 修复了 mediumTopAppBarColors 参数顺序 bug。(Ibe64a)
  • 修复了 CardDefaults.cardColors1.2.0-beta02 引入的 bug,该 bug 导致 contentColor 未根据 containerColor 参数值进行更新。(Iee041b/319671246
  • 修复了 1.2.0-beta02 中引入的 disabledContentColor 中的 bug,并添加了小幅优化。(I6dda1b/318428829

版本 1.2.0-beta02

2024 年 1 月 10 日

发布了 androidx.compose.material3:material3-*:1.2.0-beta02版本 1.2.0-beta02 中包含这些提交内容

已知 bug

  • IconButtonColors 中的一个 bug 会默认将 disabledContentColor 分配给 LocalContentColor 的 alpha(0.38f),而不是用户指定的 contentColor。解决方法是明确设置 disabledContentColor。此问题将在下一版本中修复。

API 变更

  • 添加了为纯 Tooltip API 启用提示信息插入符号的功能。(Ibf767)
  • SwipeToDismissStaterememberSwipeToDismissSwipeToDismissValue 都已重命名为具有 _SwipeToDismissBox_。(I68d6d)

bug 修复

  • 修复了 ListItem 结束边衬区值,使其与规范保持一致。(Ibd68bb/305342674
  • 现在,带轮廓的卡片的轮廓颜色已正确映射到 OutlineVariant。(I75480b/310979715
  • 动态配色现在从系统定义的颜色角色中提取。这可提高无障碍内容的对比度,并使动态配色更符合 Material 规范。(I1de96)
  • 修复了在 Android T/13 及更高版本上,当 android:enableOnBackInvokedCallback="true"ModalBottomSheet 后退处理的问题。(I728dcb/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 现在标记为介于 0.01.0 之间的 FloatRange。现已移除 DismissState 中已弃用的 Saver 和 Constructor。已将 SwipeToDismiss 组件、状态和默认对象重新标记为实验性。(Ib54f2)

bug 修复

  • 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 中提供下拉刷新实现。(I16456b/261760718

API 变更

  • SwipeToDismissBox DismissDirectionDismissValue 标记为实验性。(I517b0)
  • 已将 SwipeToDismiss 重命名为 SwipeToDismissBox。将 background 重命名为 backgroundContent,并将 dismissContent 重命名为尾随 content lambda。(I7f4d3)
  • ChipElevationSelectableChipElevation 的构造函数设为公开。(Ie0c48b/308432421
  • 添加了 ModalBottomSheetProperties。正在将 securePolicy 移到 ModalBottomSheetProperties 中。将 isFocusableshouldDismissOnBackPress 添加到 ModalBottomSheetProperties。这些新的布尔值有助于确定模态底部工作表应如何处理 IME 事件。(Iea56fb/278216859
  • 更新了 RangeSliderSlider 状态,以移除 initialOnValueChange、初始前缀和相应的 kdoc。(I57d30)
  • 弃用 ChipBorder 类及其关联的函数调用,建议直接使用 BorderStroke。(I89cc2)
  • 基础工具提示 API 现已设为 @ExperimentalFoundationApi。(I30b0b)
  • TabRowScrollableTabRow 不再被弃用。新的主要变体和次要变体标记为实验性。(I0def6)
  • 过滤和输入条状标签现在直接使用 BorderStroke。(I07a8d)
  • SegmentedButton 现在直接使用 BorderStroke。(I89b9b)
  • 将通用 AlertDialog 函数重命名为 BasicAlertDialog,并弃用之前的函数。(Idbe52)
  • SwipeToDismiss API 重命名为 SwipeDismiss,并将新的 SwipeDismiss API 提升为稳定版。(I14cbe)
  • 向提示 API 添加了 tonalElevationshadowElevation。此外,由于 TooltipBoxPlainTooltipRichTooltip API 意外发布为稳定版,因此将其移回实验版。(If0f66b/293939035
  • 将实验性 chip API 升级为稳定版。(Iea2c3)
  • 从 Material3 可点击卡片中移除了 @ExperimentalMaterial3Api 注解。(I88dbf)

bug 修复

  • 修复了以下问题:在某些场景中,如果嵌套了 Lookahead 和 Lazy 布局,SwipeToDismiss 会发生崩溃。(Ica8d1b/297226562

版本 1.2.0-alpha10

2023 年 10 月 18 日

发布了 androidx.compose.material3:material3-*:1.2.0-alpha10版本 1.2.0-alpha10 中包含这些提交内容

API 变更

  • BadgeBadgedBox 升级为稳定版。(I67f16b/261565132
  • securePolicy 添加为 ModalBottomSheet 的形参,以便用户可以定义 WindowManager.LayoutParams.FLAG_SECURE 的行为。(Icdac8b/296250262
  • 添加了新的 LinearProgressIndicatorCircularProgressIndicator 过载,这些过载采用 progress 作为 lambda。这些版本应比之前的版本性能更高。(I824e6b/295616656
  • StandardSizeClasses 重命名为 AllSizeClasses。(I8cb07)
  • 合并窗口大小类的计算函数。(Iad935)

bug 修复

  • 修复了当显示的月份位于允许的年份范围边缘时,快速点击导航箭头按钮导致的 DatePicker 崩溃。(I46f36b/290954897b/297002119
  • [导航轨道/栏] 支持为指示器设置透明颜色。(Ie0a9bb/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 的替代方案。(I70326b/291524052
  • 固定和可滚动 TabRows 现在具有主要和次要变体。这些值可正确映射到 Material3 中定义的颜色和指示器行为。
  • PrimaryScrollableTabRowSecondaryScrollableTabRow 现在会公开滚动状态。(Iec8f5b/260572337
  • 添加了一个新的 sheetMaxWidth 参数,开发者可以设置该参数来指定动作条将跨越的最大宽度。如果需要跨越整个屏幕宽度的工作表,可以为参数传入 Dp.Unspecified。(Ifb7c9b/266697696
  • 重新添加了 PlainTooltipBoxRichTooltipBox API,但将其作为已弃用的方法。(I246fa)

bug 修复

  • 修复了以下情况下的崩溃问题:DatePicker 使用 DatePickerFormatter 进行初始化,而该 DatePickerFormatter 具有在转换为日期模式时保持不变的特定日期框架(例如 YY)。(I01f29)

版本 1.2.0-alpha08

2023 年 9 月 20 日

发布了 androidx.compose.material3:material3-*:1.2.0-alpha08版本 1.2.0-alpha08 中包含这些提交内容

行为破坏性变更

  • ColorScheme 现在是不可变的,这使得单独的颜色更新效率较低,但使得更常见的颜色使用方式效率更高。此项变更背后的原因是,大多数应用都不会将更新单个颜色作为主要使用情形。虽然仍有可能,但它会比以前重新组合更多次,从而显著减少所有 Material 代码中的状态订阅数量,并影响更多标准用例的初始化和运行时费用。(Ic447db/297212873
  • 为了与规范保持一致,色调高程不再在不同的互动状态下以动画形式显示。(Icdd12)

API 变更

  • 添加了一个新的 BottomAppBar,该函数接受 BottomAppBarScrollBehavior 作为参数,以便在滚动内容时自动隐藏该参数。还添加了 FabPosition.EndOverlay,使 FAB 能够叠加在 Scaffold 中的底部应用栏上,而不是锚定在底部应用栏上方。(Iecb47)
  • 添加了一个基于 BasicTooltipBox 构建的简单标签组件,该组件在点按标签边界之外的区域时不会关闭。(I821f9)

bug 修复

  • 移除了对提示使用 rememberSaveable 的情况。(Icc131b/299500338
  • 引入了一个临时标志,用于控制 Scaffold 应在测量期间还是在放置期间测量其子项。默认情况下,此属性将以测量单位进行衡量。如果您在使用新行为时遇到问题,请提交问题报告。(I0b354)
  • 通过使用正确的设备屏幕宽度测量值,在 BottomSheet 中实现固定的水平边到边效果。(I1df0cb/299058752
  • 修复了以下 bug:通过在工作表上向下滑动来关闭 ModalBottomSheet 时,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)
  • 将 shape 更改为必需参数。在形状辅助函数中将 position 重命名为 index。(I34941)
  • 更新了 DatePicker formatWithSkeleton,以包含用作缓存的地图,从而提高性能。(I3195f)
  • compose.foundation 添加了 BasicTooltipBox,并更新了 PlainTooltipBoxRichTooltipBox,以使用包含新 PlainTooltipRichTooltip 可组合项的 TooltipBox。(I79e1d)

bug 修复

  • dynamicLightColorSchemedynamicDarkColorScheme 现在会针对 surface 和 surfaceContainer 角色返回色度更高的颜色。(I5e901)
  • 修复了以下问题:LookaheadScope 内使用子合成(例如 BottomSheetScaffold)的部分组件过早尝试读取其大小。(I297b4I871f1b/295536718

版本 1.2.0-alpha06

2023 年 8 月 23 日

发布了 androidx.compose.material3:material3-*:1.2.0-alpha06版本 1.2.0-alpha06 中包含这些提交内容

bug 修复

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

bug 修复

版本 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,并且已将明确的 lineHeight(以 sp 为单位)添加到 TypographyTextStyle 中。如果您想自定义这些值,请参阅 API 文档;如需深入了解这些变化,请参阅这篇博文。(I6266fIcabc3

新功能

  • RangeSlider 添加了一个重载,该重载是组件的有状态版本。创建了 RangeSliderState,用于保存当前有效轨道的所有信息、RangeSlider 各组件的测量数据以及拖动和手势逻辑。(I8c270)
  • 搜索栏现在支持通过新添加的 shadowElevation 参数添加阴影。(Ia5369b/271040353
  • ColorScheme 现在支持新的 SurfaceContainer 角色
  • 现在可以使用 LocalTonalElevationEnabled 组合本地停用表面色调海拔叠加层。(Ic203cb/277774590

API 变更

  • 打开分量颜色构造函数。(I8c4a6)
  • 为两个提示 API 添加了 focusable 参数,以便开发者可以控制提示是否使用触摸事件。请注意,这可能会中断无障碍焦点自动遍历。(Ie32d8)
  • 针对性能和内存分配优化了无障碍功能。(Iede48)
  • 公开 DefaultSizeClasses 并为 WindowSizeClasses 创建 StandardSizeClasses (I91838)
  • WindowWidth/HeightSizeClass 更改为浮点值类 (Ie686e)

bug 修复

  • Scaffold 的 contentWindowInsets 参数现在会考虑已消耗的窗口边衬区。请注意,当提供这些参数时,基于 topBarbottomBar 的内容内边距行为保持不变。(I08b73b/264601542
  • 修复了居中顶部应用栏的对齐问题,以确保长标题不会渲染到操作图标或导航图标上方。(I4369fb/236994621
  • 标签页位置现在强制要求内容宽度至少为 24 dp。这为标签页指示器提供了一个可访问的触控目标。(Id8861)
  • 来自 dynamicLightColorSchemedynamicDarkColorScheme 的动态调色板现在支持新的 Surface 角色。(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 的窗口边衬区。(I31200b/274872542b/272973615b/272334475b/268432129b/275849044b/275486106b/268433162
  • 弃用了 Indicator,并添加了 Primary/SecondaryIndicator 以匹配 M3 规范。PrimaryIndicator 的宽度与标签页内容的宽度一致,而 SecondaryIndicator 则会占据整个可用宽度。SecondaryIndicator 等同于现已弃用的 Indicator,可以直接替换。(I27604)
  • 添加了一个选项,用于在构建 DropdownMenuExposedDropdownMenu 时传入 ScrollState,以控制所显示菜单项的垂直滚动状态。(Ia0734b/185304441
  • Slider 添加了一个重载,该重载是组件的有状态版本。创建了 SliderState,用于保存当前有效轨道的所有信息、Slider 各组件的测量数据以及拖动和手势逻辑。(I124a5)
  • 将语义属性 isContainer 重命名为 isTraversalGroup (I121f6)
  • 添加了经过优化的 TextStyle.merge(...),其中包含完整的参数列表。(Iad234b/246961787
  • TooltipStateRichTooltipStatePlainTooltipState 设为公共接口。为默认状态添加了 RichTooltipStateImplPlainTooltipStateImpl。添加了 remember*State 函数以获取这些已实现的状态。移除了 TooltipSync,取而代之的是 TooltipDefault.GlobalMutatorMutex。(I7813d)
  • 更新了 DatePickerColors,以包含日期选择器分隔线、导航和文本输入字段颜色的其他自定义选项。(I1a685b/274626815
  • DatePickerStateDateRangePickerState 现在是公共接口,具有可通过 rememberDatePickerStaterememberDateRangePickerState 检索的默认实现。(I71c52)
  • DatePickerDateRangePicker 中移除了 dateValidator,并引入了 SelectableDates 接口,该接口可在状态中设置,以控制界面中可选择的日期或年份。(Ic2fc6)
  • 从稳定版 API 中移除了 TimePicker,状态 API 预计会发生进一步的更改 (I3f39a)
  • ModalBottomSheet 已移至仅限 Android。不建议在桌面设备上使用 ModalBottomSheet,并且我们不会积极维护该功能。(Ib3778)

bug 修复

  • 修复了以下问题:当操作堆叠在一起以适应对话框的宽度时,AlertDialog 关闭操作会显示在确认操作下方。此修复使实现与 Material Design 规范保持一致。(I029deb/235454277
  • 修复了 ListItem 中为三行项目使用错误内边距的 bug。(I6e235)
  • ModalBottomSheet 现在可以显示 IME 键盘(Idc508b/262140644b/268380384b/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 中包含这些提交内容。

bug 修复

  • 修复了修饰符错误地传递给两个可组合项的问题。(b/282761472)
  • 修复了以下问题:当使用 23 小时初始化 TimePickerState 时,该函数会返回错误的小时数。(b/278242122)
  • 修复了中午和分钟验证的初始切换状态。(b/269768197b/282790635
  • 修复了 state.hour 针对晚上 11 点返回错误值的问题。(b/282761472b/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 中包含这些提交内容

bug 修复

  • 添加了对 ModalBottomSheet 的调用,但没有 windowInset 实参,以实现二进制文件兼容性。(Ib7959)
  • ModalBottomSheet 添加了窗口边衬区形参。
    • 现在,如果将 windowInsets 设置为零,ModalBottomSheet 的遮罩可能会绘制在状态栏后面
    • 更新了默认 ModalBottomSheet 功能,使其位于系统栏(包括导航栏)之外
    • 在全屏模式下,拖动手柄可提供状态栏边衬区处理。
    • BottomSheetDefaults 包含 BottomSheetWindow 的窗口边衬区。(I31200b/274872542b/272973615b/272334475b/268432129b/275849044b/275486106b/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 变更

  • 从稳定版 API 中移除了 TimePicker,状态 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.HiddenShapeI839f4b/273870234

bug 修复

  • 启用触控浏览功能后,不会将表盘从小时切换到分钟。(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 更改,允许在创建日期选择器时传递 null 标题。您现在可以传递 null 标题、标题和 showToggleMode = false,以显示无头选择器。(Id3f3ab/266132421b/267194809

bug 修复

  • 搜索栏现在会在变为非活动状态时自动清除焦点。(I22a7cb/261444487
  • 更新了 DateRangePicker,以允许选择开始日期和结束日期相同的范围。(I16529b/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 添加了功能,以允许在初始创建状态后设置日期,以及通过设置 null 时间戳来重置选择。手动设置日期时应谨慎操作,如果提供的日期不符合前提条件(请参阅文档),新的 setSelection 函数将抛出异常。(Ifa645b/268609314b/270427389
  • 将折叠状态 SheetValue 重命名为 PartiallyExpanded,以便更准确、更灵活地描述此状态下的行为。(Ia1491)
  • ListItem 参数名称更新为 _content,而不是 _text。默认 getter 现在为 ReadOnlyComposables(如果适用)。(I69a25)
  • 将交互式 Surface API 从实验阶段毕业。(I90d59b/261561812

bug 修复

  • 修复了以下问题:ModalBottomSheetHalfExpanded 状态的计算不正确,且动作条看起来像是悬浮的。(I45e84b/268411386
  • ModalBottomSheet 添加了 confirmValueChange 检查以用于微光幕点按。(I2311ab/270425759
  • 将语义 BottomSheet 操作移至拖动手柄。(I158ba)
  • ModalBottomSheet 现在在启动时命令焦点,处理返回按钮。(I4d2ab)
  • 现在,在嵌套滚动快速滑动期间也会处理 ModalBottomSheet onDismissRequest。(I655c5b/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。(I7a6c3b/267194809
  • 添加了 Material 3 输入模式支持,以便通过 DateRangePicker API 选择日期范围。(Ifdbc4)
  • 文本字段颜色现在允许自定义:
    • 输入字段和占位符文本颜色,具体取决于焦点和错误状态。textColor 参数已重命名为 unfocusedTextColor,且 placeholderColor 已重命名为 unfocusedPlaceholderColor
    • 基于错误状态的已填充文本字段的容器颜色,使用新的 errorContainerColor 参数。
  • 公开的下拉菜单文本字段颜色已更新,并添加了参数以支持新的前缀和后缀 API。(I9c8b4b/254284181b/264766350

API 变更

  • 还原了一些滑块 API 版本,并移除了由新的实验性滑块(带有自定义滑块和轨道)涵盖的冗余滑块重载。将 RangeSlider 升级为稳定版。(Ie8fbd)
  • 在芯片的海拔高度函数中,将 defaultElevation 重命名为 elevation。(I0f872)
  • 以下 Material 3 文本字段 API 不再是实验性 API:TextFieldOutlinedTextFieldtextFieldWithLabelPaddingtextFieldWithoutLabelPaddingoutlinedTextFieldPadding。(Ieb5c0b/261561819
  • TimePickers is24Hour 使用系统设置 (I18856)
  • 从 Scaffold API 中移除了实验性注解。(Ibb51eb/261565765b/261436953

bug 修复

  • ModalBottomSheet 的默认形状现在始终为 SheetDefaults.ExpandedShape。(I0dfca)
  • 针对 Material 3 DatePickerDateRangePicker 改进了无障碍功能。(I5087e)
  • 修复了最大高度限制条件被传播并可能导致崩溃的 bug。(I30d8c)
  • 从可点击和可选择的 Surface 中移除了语义角色,更新了通过它们使用 modifier.semantics 设置角色的组件 (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 中包含这些提交内容

新功能

  • 文本字段现在支持前缀和后缀文本(Ia8578b/179884561
  • 添加了 TimePicker 函数,以显示符合 Material 3 规范的时间选择器。该函数会与 TimePickerState 和便捷方法 rememberTimePickerState 结合使用 (I71910)
  • 日期输入现在是 DatePicker 中的显示模式。添加了对在日期选择器模式和日期输入模式之间切换的支持。(Ieeff7)
  • RichTextTooltips 添加了 API。(I58ef3)
  • 新增了 Material 3 的模态底部动作条实现(包括 ModalBottomSheetModalBottomSheetDefaults)。此外,还引入了 SheetStaterememberSheetState,它们可用于未来的动作条组件。(I0853ab/244189383

API 变更

  • 稳定了 API showSnackbarI195c2b/261424370
  • 为辅助条状标签和建议内容信息条稳定了 API(Ibb67bb/261424370
  • ListItemListItemDefaultsListItemColors API 提升为非实验性 API(I7e7fab/261438882
  • SliderPositionsSliderDefaults.ThumbSliderDefaults.Track 提升到了稳定版,并添加了包含自定义滑块和滑道的非实验性 SliderRangeSlider API。同时废弃了之前的 SliderRangeSlider API。(Ie5ea6b/261566890
  • Modifier.tooltipAnchor() 设为了公开模式,以便开发者可以将其传递给锚点,以指示应在长按时显示提示。更新了 PlainTooltipBox API,使 TooltipState 不再可为 null,而是现在有默认值。(Ie2fb7)
  • ProgressIndicatorDefaults.circularTrackColor 已被标记为 @Composable,以保持一致。(Id29cc)
  • 恢复了属性 getter 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。此 API 仍在更改中。(I722b9)
  • 通过 PlainTooltipBox 添加了对普通提示的支持。(I0cdfb)
  • 搜索栏 (Iad128)
  • SwipeToDismissI458a8b/242889540

API 变更

  • 在 Surface 上添加了 IsContainer 语义属性。此属性将在稍后的更改中使用,它会根据 Surface 等元素的语义含义确定遍历顺序。(I63379)
  • 将与抽屉式导航栏相关的 API 标记为稳定。(Iab01eb/261439597
  • 为圆形进度指示器添加了滑道颜色参数,并为圆形和线形进度指示器添加了描边上限参数。(Ie668cb/216325962b/222964817
  • 更多已废弃隐藏函数的返回值类型可为 null (Ibf7b0)
  • 添加了 Modifier.minimumInteractiveComponentSize。它可用于预留至少 48dp 的大小,以便在元素尺寸较小时消除触摸交互的歧义。(I33f58b/258495559
  • 为具有内容槽位的 AlertDialog 可组合项添加了实验性 API。(Iec4a2)

bug 修复

  • 进度指示器的进度现已正确限定到预期范围。(I8a7ebb/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(),并将 Modifiers 公开。(Ie44e1)
  • 为具有图标的文本按钮添加了新的默认内容内边距供使用。(I8f662)
  • 为导航栏和侧边栏添加了已停用的颜色。(Ia7892b/258867034
  • 添加了 Modifier API,用于查询祖先实体滚动信息。(I2ba9db/203141462
  • 在手势可以变为滚动事件时,用于在 Clickable 中正确延迟按下互动。
  • 修复了在 Scrollable ViewGroup 内使用时 Clickables 无法正确延迟涟漪效果的问题。
  • 更新了抽屉式导航栏和动作条,以便在手势可变为滚动事件时正确延迟按下操作。

依赖项更新

  • Compose UICompose Material 现在依赖于 Lifecycle 2.5.1。(I05ab0b/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 在滚动时显示菜单的问题)。(I7579ab/212091796
  • 在 Material 和 Material3 Text、TextFieldOutlinedTextField 中添加了 minLines 参数,从而能够根据行数设置组件的最小高度 (I4af1d)
  • 废弃了 TopAppBarDefaults smallTopAppBarColors 函数,取而代之的是创建 TopAppBar 时应使用的新 topAppBarColors 函数。(Ie6cb9)
  • BasicTextBasicTextField 添加了 minLines 参数。它允许根据行数设置这些可组合项的最小高度(I24294b/122476634

bug 修复

  • 将 Material3 IconButtonIconToggleBotton 的内容裁剪到组件的状态层形状(例如圆形)上。(I9da8f)
  • 更新了 Material3 Medium 和 Large 顶部应用栏,以在整个界面上应用相同的背景颜色,并允许设置使用透明颜色值替换默认颜色。(I67659b/249688556b/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 中包含这些提交内容

bug 修复

  • 修复了使用 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 中包含这些提交内容

bug 修复

  • 更新了 Material3 Medium 和 Large 顶部应用栏,以在整个界面上应用相同的背景颜色,并允许设置使用透明颜色值替换默认颜色。(I67659b/249688556b/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 检索窗口大小类别实例,该实例可用于确定界面的显示方式,例如针对较大的窗口显示侧边导航栏(而非底部导航栏)。如需了解详情并查看用法示例,请参阅 WindowSizeClass 的 API 参考文档

  • 如需了解详情,请参阅这篇博文

版本 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)
  • 为当前的 Slider API 添加了两个过载方法,以允许用户传入滑块或滑道来填充此滑块。(I21c00)

bug 修复

  • 已将“On Error”容器的深色主题颜色映射更新为色调 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 Scaffold 组件现在包含一个 contentWindowInsets 参数,可用于指定要为内容槽处理的边衬区量。(Icf11ab/243713323
  • 废弃了实验性 Material 3 SmallTopAppBar 函数,并引入了等效的 TopAppBar 函数。请改为使用新的 TopAppBar 函数。(I74404b/226918634
  • 添加了对顶部应用栏滑动和贴靠行为的控制。(I15c81)
  • 从 Divider 中移除了 startIndent,并移动了颜色以作为最后一个参数。(If7be2)

bug 修复

  • 通过在对话框显示时读出 Dialog 一词,让 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 组件签名,以与 Surface API 匹配 (I3afaa)
  • 添加了对顶部应用栏、抽屉式导航栏、导航栏和侧边栏的边衬区内置支持。这些组件单独使用或与 Scaffold 搭配使用时,会自动为开发者处理边衬区。注意:此变更不会自动处理状态栏图标以及状态栏和导航栏的透明度。请继续手动完成上述操作,以确保实现最佳无边框体验。(I7e4e6b/183161866
  • 更新了组件默认对象,以缩减 API Surface,便于未来实现灵活性和性能改进。(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 和 LeadingIconTab 的参数进行了重新排序,以便在 API 内保持一致 (Ie2637)
  • BadgeDefaults 标记成了实验性对象。(I98ef3)
  • 移除了已废弃的抽屉式导航栏函数。(I4f2db)
  • 对 Material 3 中的滑块参数进行了重新排序,以便在 API 内保持一致 (I0aee7)
  • NavigationBarNavigationRail 参数重新排序,以便在 API 中保持一致 (I51cda)
  • 对 Material 3 中的参数进行了重新排序,以便在整个 API 中保持一致。(If4ae1)
  • 对 Material 3 中的滑块参数进行了重新排序,以便在 API 内保持一致 (I62673)
  • 图标参数已重命名为相关操作,以便与顶部应用栏保持一致 (Id75be)
  • BadgeBadgedBox 标记成了实验性,因为锚点对齐仍为 influx。(I1712eb/236524516
  • 将图标按钮变体上的 @ExperimentalMaterial3Api 注解更改为 @OptIn (I070b5)
  • 将抽屉式导航栏的内容拆分到自己的可组合项中,以支持在其上指定自定义宽度。(Ia7f10)
  • MenuDefaultsTabDefaults 中移除了 Divider (I4e33c)

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

bug 修复

  • 针对目录应用,从输入条状标签示例中移除了无效的尾随图标,以避免用户在此类应用中感到困惑。(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 颜色提供了额外的支持。(I55244b/235792432
  • 添加了 BottomAppBar 默认 FAB (Ida4c8)
  • 添加了 ColorScheme.surfaceColorAtElevation (Id41af)
  • Compose 库中的接口现在使用 jdk8 默认接口方法构建 (I5bcf1)
  • WindowWidthSizeClassWindowHeightSizeClass 现在实现了 Comparable,因此可以使用运算符(<、<=、>=、>)和其他 API 进行比较。(I747d0)

bug 修复

  • 更新了标记示例以提供更有意义的内容说明。(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 变更

  • 支持在配置更改时保持顶部应用栏的位置。(I10459b/216160958

版本 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 中包含这些提交内容

bug 修复

  • 滑块父项的宽度现在可以为 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 中包含这些提交内容

新功能

  • 向 Material 3 添加了 RangeSlider (I18e38)
  • 添加了对 Material3 AssistChipInputChip 的支持 (I0d25a)
  • 添加了对 Material3 FilterChipSuggestionChip 的支持 (I9fdf3)

API 变更

  • TextFieldDefaults.BorderStroke 可组合项(用于在 OutlinedTextField 中绘制边框描边)重命名为 TextFieldDefaults.BorderBox。(I5f295)
  • 切换 m3 视觉变化 (Iab30e)
  • 允许将颜色传递给标准图标按钮。(Ia2445)

bug 修复

  • 向 material3/Scaffold 添加了 lint 检查,以确保使用了内部内边距(I72293b/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 检索窗口大小类别实例,该实例可用于确定界面的显示方式,例如针对较大的窗口显示侧边导航栏(而非底部导航栏)。如需了解详情并查看用法示例,请参阅 WindowSizeClass 的 API 参考文档。如需详细了解窗口大小类别的定义,请参阅有关支持不同屏幕尺寸的公开指南。

API 变更

  • BottomAppBar 添加了默认的 FAB 高度,从带有 FAB 的 BottomAppBar 中移除了尾随 lambda。(I92c47)
  • 添加了 Material3 FilledIconButtonFilledTonalIconButtonOutlinedIconButton。(Ib2bda)
  • 更新了 Material 3 Snackbar API,以接受可选操作和关闭操作的颜色值。(Ibe4b4)
  • 废弃了 PointerInputChange 中的部分操作(向下或定位)。您可以借助 consume() 完全使用此更改。您可以使用 isConsumed 来确定其他人之前是否使用过此更改。
  • PointerInputChange::copy() 现在始终会创建浅层副本。这意味着,在使用完其中一个副本后,将会使用 PointerInputChange 的副本。如需创建未绑定的 PointerInputChange,请改用构造函数。(Ie6be4b/225669674
  • 更改了 Cards API,以通过 CardColors 接口接收容器颜色和内容颜色,并支持可点击卡片的停用状态。(I927df)
  • Material 3 文本字段中的参数 backgroundColor 已重命名为 containerColor,以提高与其他组件的一致性。(I6fbd9)

bug 修复

  • 更新了标准 IconButton,使其符合 Material3 规范。(I09eab)
  • 将 Material3 Scaffold 的顶部栏高度移动到传递给内容的内边距,使内容能够在顶部应用栏下方呈现。如果 PaddingValues 被忽略,顶部栏可能会遮盖内容。(I83cbcb/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)
  • ColorScheme 类添加了 surfaceTint 颜色参数。(I2f558)

bug 修复

  • 修复了 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 位于对话框中)。(I660aeb/219572936
  • 新增了 LazyVerticalGrid API,用于定义交叉轴的大小 (I17723)

bug 修复

  • 更新了 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 变更

  • 添加了表示抽屉式导航栏中单个目的地的 NavigationDrawerItemIc396fb/218286829
  • 以实验性 API 的形式添加了 PermanentNavigationDrawerDismissibleNavigationDrawer。这些抽屉式导航栏非常适合大屏幕设备。(I5f8abb/218286829
  • 添加了 Material 3 底部应用栏支持 (Ic432a)
  • NavigationDrawer 已重命名为 ModalNavigationDrawerI1807db/218286829
  • 添加了 Material 3 滑块类和令牌 (I1ccee)
  • 添加了 Tab 实现,请参阅用法示例文档 (Ie0146)

bug 修复

  • 修复了 TalkBack 屏幕阅读器线性导航选择空白的顶部应用栏标题的问题。(Id4690)
  • FloatingActionButtonDefaults 添加了 IconSize。(Ia71cf)
  • 修复了在使用 LazyColumn 添加长文本时隐藏 AlertDialog 按钮的bug。(Ib2cc9b/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)

bug 修复

版本 1.0.0-alpha04

2022 年 1 月 26 日

发布了 androidx.compose.material3:material3:1.0.0-alpha04版本 1.0.0-alpha04 中包含这些提交内容

API 变更

  • 针对无复杂逻辑的现有方法,向其重载的方法添加了 NonRestartableComposable。对于在所调用内部函数中重复的所有参数,这会减少编译器产生的记忆检查 (equals)。(I90490)
  • 添加了 Material 3 分隔线。(Ica5fc)
  • 使用实验性 API 注解标记了 Checkbox 和 RadioButton。(Ie44bb)
  • 添加了对 Material 3 进度指示器的支持。(Iff232b/205023841

bug 修复

版本 1.0.0-alpha03

2022 年 1 月 12 日

发布了 androidx.compose.material3:material3:1.0.0-alpha03版本 1.0.0-alpha03 中包含这些提交内容

bug 修复

  • 向 Material 3 的 MaterialTheme 中添加了 LocalIndication。(I7ce4e)
  • 修复了向复选框应用的圆角半径存在的问题(I38b03b/175198975b/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 的 scaffold 中移除了抽屉式导航栏。(I04f51)
  • 添加了 Material 3 Checkbox 支持。(Id5542)
  • 添加了 Material 3 RadioButton 支持。(I20334)

bug 修复

  • IconButton 涟漪效果半径从 40dp 缩减到了 20dp。(I68bbeb/206674345
  • compose.material 中移植了用于 Text 更改的字符串快速路径 (I30b03)
  • 修复了硬编码按钮始终处于启用状态的 bug。(Iea832b/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”部分。