Compose Material 3

使用 Material Design 3 组件(Material Design 的下一代演变)构建 Jetpack Compose UI。Material 3 包括更新的主题和组件以及 Material You 个性化功能(如动态颜色),旨在与新的 Android 12 视觉风格和系统 UI 保持一致。
最新更新 稳定版 候选版本 Beta 版 Alpha 版
2024 年 11 月 13 日 1.3.1 - - 1.4.0-alpha04

结构

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 组件(Material Design 的下一代演变)构建 Jetpack Compose UI。Material 3 包括更新的主题和组件以及 Material You 个性化功能(如动态颜色),旨在与新的 Android 12 视觉风格和系统 UI 保持一致。
compose.runtimeCompose 编程模型和状态管理的基本构建块,以及 Compose 编译器插件的目标核心运行时。
compose.ui与设备交互所需的 Compose UI 的基本组件,包括布局、绘图和输入。

声明依赖项

要添加对 Compose 的依赖项,必须将 Google Maven 存储库添加到项目中。阅读Google 的 Maven 存储库以获取更多信息。

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

Groovy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.1"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.1"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

有关依赖项的更多信息,请参阅添加构建依赖项

反馈

您的反馈有助于使 Jetpack 变得更好。如果您发现新问题或有改进此库的想法,请告诉我们。在创建新问题之前,请查看此库中现有的问题。您可以通过点击星形按钮为现有问题添加您的投票。

创建新问题

有关更多信息,请参阅问题跟踪器文档

Compose Material3 通用版本 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

错误修复

  • 默认情况下为内容使用内边距(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
  • itemColors函数添加到NavigationSuiteDefaults。(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 更改

  • 将 Posture 中的铰链边界属性移动到铰链信息列表中(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.4

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

错误修复

  • 筛选芯片尾随图标颜色已根据规范从 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)

错误修复

  • 优化 Scaffold contentPadding 行为,以避免在 contentPadding 更改时始终重新组合主体内容。 (I8c8e2b/373904168)
  • TextFieldLabelScope progress 重命名为 labelMinimizedProgress
  • TextFieldLabelPosition Default 重命名为 Attached。已删除接口成员。 (If75c6)
  • 修复了输入模式下 DatePicker 的一个问题,该问题会导致验证错误导致组件高度发生变化。 (I2e229b/280462363)
  • 使材质滑块在按下控制键时更改其值。 (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 现在可以正确优先于主题的 Typography 文本样式中定义的任何冲突颜色。另请注意,此更新调整了日期选择器函数中 color 参数的位置,并引入了 contentColor 参数以自定义标题和标题文本颜色。 (I30d03b/347031394)
  • SplitButton 重命名为 SplitButtonLayout 并删除 SplitButton 颜色变体 API,变体将通过重新使用 SplitButtonDefaults 提供的按钮变体来实现。 (I44c36)
  • ModalBottomSheet 现在具有 sheetGestureEnabled 参数 (I856cbb/288211587)
  • standardMotionSchemeexpressiveMotionScheme 重命名为 standard 和 expressive。现在可以通过 MotionScheme 伴随对象调用 MotionScheme.standard()MotionScheme.expressive() 来访问这两个函数。 (Iceccf)
  • 向普通和丰富的工具提示添加 maxWidth 参数。对于普通工具提示,默认为设计规范中的 200 dp,对于丰富的工具提示,默认为 320 dp。 (I30ce9)

错误修复

  • DatePickerDateRangePicker 现在可以在通过其状态的 displayedMonthMillis 设置时正确更新显示的月份。 (If9e47b/333414302)
  • ModalBottomSheet 内容现在会将内容移离状态栏。 (I5114cb/321877275b/336962418b/342093067)
  • [底部表单] 将回调优先级更改回 PRIORITY_DEFAULT 以允许 IME 键盘先关闭。 (I447fb)
  • 修复了当最小可选年份设置为未来年份时,DatePickerDateRangePicker 中的崩溃问题。 (I78656b/319395747)
  • 修复了日期选择器的一个问题,该问题会在应用更新的 SelectableDates 实例时更新 UI。 (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 更改为 secondaryIbc297)。要恢复到之前的行为,请复制默认颜色并将 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
  • 添加了 Material TextFieldOutlinedTextField 的新重载,它们使用 TextFieldState。添加了与 TextFieldDecorator 兼容的装饰框 API。(If13a1
  • 添加了用于控制文本字段 labelPosition 的参数。使用 alwaysMinimize 允许在文本字段中同时显示标签和占位符的 UI 模式,即使在字段未聚焦时也是如此。(I1ef2c
  • 为密码输入字段添加了 Material SecureTextFieldOutlinedSecureTextField。(I7e22d
  • 向文本字段标签添加了一个作用域以查询动画进度。(If5ec8
  • 为工具提示添加了对 MotionEvent.CLASSIFICATION_DEEP_PRESS 的支持。(I62e6a
  • TimePickerStateisAfternoon 现在是接口中的扩展 val 而不是 var,已重命名为 isPmI89a97
  • 更新排版类以支持强调类型刻度。(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

错误修复

  • 将正确的焦点遍历索引应用于 Scaffold 子 Composable。顺序为 topBarbottomBar、fab、content、snackbar。(I5936b
  • 修复了 DatePickerDateRangePicker 中的一个问题,在某些语言环境和格式框架中,某些日期元素(例如月份名称)没有以大写字母开头。(I1430f
  • 集成 FAB 和 FAB 菜单组件令牌(对填充和文本进行细微的视觉更新)(Ib57f3
  • ModalBottomSheet 现在在语义遍历顺序中排在第一位,其次是屏幕遮罩。(I436f9b/358594665
  • 修复底部应用栏在边缘到边缘模式下滚动到导航药丸下方时没有完全消失的问题(I3ee21

Compose Material3 版本 1.3

版本 1.3.1

2024年10月30日

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

错误修复

  • DatePickerDateRangePicker 现在可以在通过其状态的 displayedMonthMillis 设置时正确更新显示的月份。 (If9e47b/333414302)
  • 修复了当最小可选年份设置为未来年份时,DatePickerDateRangePicker 中的崩溃问题。 (I78656b/319395747)
  • 修复了日期选择器的一个问题,该问题会在应用更新的 SelectableDates 实例时更新 UI。 (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 中的表面和背景颜色的默认值进行了少量调整。(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 现在在语义遍历顺序中排在第一位,其次是屏幕遮罩。(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 并从材料中删除了 TextDefaults。(I5477b)

错误修复

  • 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 已变为可为空。要禁用波纹,请勿提供 isEnabled = falseRippleConfiguration,而是向 LocalRippleConfiguration 提供 null。(I22725)
  • ModalBottomSheet 在启用边缘到边缘时更准确地在状态栏上绘制遮罩。模态底部工作区内容现在可以消耗窗口内边距,允许在导航栏上方显示内容。ModalBottomSheet 参数 windowInsets 重命名为 contentWindowInsets 以指定将应用内边距的位置,它们不再与窗口逻辑绑定。contentWindowInsets 类型已更改为返回 WindowInsets 的函数,以允许在新的窗口中解析它。(I39630b/274872542b/300280229b/290893168)
  • PrimaryScrollableTabRowSecondaryScrollableTabRow 现在使用自定义布局而不是子合成,这应该可以提高性能。(I991e0)
  • 文本链接除了普通样式、悬停和聚焦之外,还获得了按下状态样式选项。TextDefaults 方法分别获得了 pressedStyle 参数以支持该功能。(Ic473fb/139312671)

错误修复

  • 导航抽屉拖动锚点现在与 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 以公开项目被裁剪的遮罩矩形 (I785d8)
  • 从 Material 3 公共 API 中删除了 BasicTooltipState。其功能与 TooltipState 结合使用,直到 Foundation 的 BasicTooltip 稳定为止。(Icda29)
  • 添加了一个 TextDefaults 对象,其中包含用于构建 LinkAnnotation 和解析 HTML 标记字符串的方法,这些方法将 MaterialTheme 应用于链接 (I98532, b/139312671)
  • ExposedDropdownMenuBoxScope 不再允许子类。展开式下拉菜单现在具有 MenuAnchorType,应将其传递给 menuAnchor 以更好地支持 a11y。这应该用于代替将 focusable 传递给 ExposedDropdownMenu,后者现已弃用。 menuAnchor 有一个新参数来控制 enabled 状态。(I55ee6, b/257209915, b/308840226)
  • 修复了禁用时 OutlinedButton 的边框颜色。添加了 ButtonDefaults.outlinedButtonBorder("enabled") 重载,它采用启用状态。(Ie650b, b/318461363)
  • 添加了一个新的 CarouselItemInfo 类来帮助客户端获取有关项目大小的信息。(I9070c)
  • 没有表面容器的 ColorScheme 构造函数现已弃用。请迁移到包含表面容器的构造函数。(I35c11)
  • [Outlined]TextFieldDefaults ContainerBox 重命名为 Container。(Ie8d3b)

错误修复

  • 如果 sheetSwipeEnabled 为 false,则 BottomSheetScaffold 将不再从嵌套滚动中滚动。(I5e1c1, b/306464779)
  • 删除了 IconButtonSamples.kt 中的一些 ExperimentalMaterial3Api OptIn 注解。(I111d1)

版本 1.3.0-alpha04

2024 年 4 月 3 日

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

新功能

  • 添加了 Material3 旋转木马 的两个实验版本 - 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)
  • 重新排序 Slider Track 可组合中的参数。(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)
  • 修复了 RTL 布局上 SliderRangeSlider 的问题 (Iab0e1)
  • 添加 SliderRangeTolerance 用于滑块范围计算,因为 Float 舍入可能不准确。(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)容器颜色现在为SurfaceContainer。顶部应用栏(TopAppBar)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+ 上的预测返回(Iccf32b/281967264b/304850357
  • 更新 Compose M3 SearchBar 以支持 U+ 上的预测返回(I657f8
  • 更新滑块以通过添加间隙和停止指示器来提高可访问性。(I3058e
  • 更新 ProgressIndicator 以通过添加间隙和停止指示器来提高可访问性。(I21451
  • 为丰富的工具提示添加默认插入符号,新的丰富的工具提示 API 现在允许根据锚LayoutCoordinates绘制自定义插入符号。(Ifd42c

行为变更

  • 材料组件已迁移到使用新的涟漪 API,不再查询RippleTheme

API 更改

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

错误修复

  • 删除ModalBottomSheet内部的子组合以提高性能。修复了在特定情况下ModalBottomSheetLookaheadScope组合时可能崩溃的问题。(I2a198
  • 删除BottomSheetScaffold内部的子组合以提高性能。修复了在特定情况下BottomSheetScaffoldLookaheadScope组合时可能崩溃的问题。(Ie6401
  • 徽章对齐方式已调整为更靠近锚内容相对于右上角的中心。(I18a28
  • 修复了DateRangePicker的辅助功能问题,其中月-年文本标题被传达为可操作的,供屏幕阅读器、切换访问和语音访问用户使用。(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中。(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中引入了视图-组合互操作渲染错误,作为性能改进更改的一部分。解决方法是使用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-beta02CardDefaults.cardColors中引入的错误,该错误没有根据containerColor参数值更新contentColor。(Iee041b/319671246
  • 修复了在1.2.0-beta02中引入的disabledContentColor中的错误并添加了少量优化。(I6dda1b/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结束填充值以与规范对齐。(Ibd68bb/305342674
  • 带轮廓卡片的轮廓颜色现在已正确映射到OutlineVariant。(I75480b/310979715
  • 动态颜色现在从系统定义的颜色角色中提取。这提高了辅助内容的对比度,并且使动态颜色更紧密地与 Material 规范对齐。(I1de96
  • 修复了 Android T/13+ 上ModalBottomSheet的后退处理,当android:enableOnBackInvokedCallback="true"时。(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 之间的 FloatRangeDismissState 已弃用的 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 中提供下拉刷新实现。(I16456b/261760718)

API 更改

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

错误修复

  • 修复了在某些情况下 SwipeToDismiss 在嵌套的 Lookahead 和 Lazy 布局中崩溃的问题。(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)

错误修复

  • 修复了当显示的月份位于允许的年份范围的边缘时,快速点击导航箭头按钮导致 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 已被 open 和 close 方法替换,并且偏移量现在以浮点数而不是状态对象的形式公开。您可以通过 currentOffset 直接访问偏移量。(I0a72c)
  • 已添加非组合函数以直接创建 DatePickerStateDateRangePickerState。在需要时,这些函数可以用作组合 rememberDatePickerStaterememberDateRangePickerState 函数的替代方案。(I70326b/291524052)
  • 修复并可滚动 TabRows 现在具有 Primary 和 Secondary 变体。这些正确地映射到 Material3 中定义的颜色和指示器行为。
  • PrimaryScrollableTabRowSecondaryScrollableTabRow 现在公开了滚动状态。(Iec8f5b/260572337)
  • 添加一个新的 sheetMaxWidth 参数,开发人员可以设置该参数来指定表单将跨越的最大宽度。如果需要跨越整个屏幕宽度的表单,则可以为参数传递 Dp.Unspecified。(Ifb7c9b/266697696)
  • PlainTooltipBoxRichTooltipBox API 作为已弃用方法添加回来。(I246fa)

错误修复

  • 修复了当DatePicker 初始化时使用具有某些在转换为日期模式时保持不变的日期框架(例如 YY)的 DatePickerFormatter 导致的崩溃问题。(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 在脚手架中覆盖底部应用栏,而不是锚定在其上方。(Iecb47
  • 添加了一个简单的 Label 组件,该组件建立在 BasicTooltipBox 之上,在点击标签边界之外时不会消失。(I821f9

错误修复

  • 删除了工具提示中 rememberSaveable 的使用。(Icc131b/299500338
  • 引入了临时标志来控制 Scaffold 是否应在测量期间或放置期间测量其子项。默认情况下,将在测量期间进行测量。如果您遇到新行为的问题,请提交问题。(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 现在为 surface 和 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,并且已将显式 lineHeight(以 sp 为单位)添加到 TypographyTextStyle 中。如果您想自定义这些值,请参阅 API 文档,并查看 博客文章 以获取有关这些更改的深入解释。(I6266fIcabc3

新功能

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

API 更改

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

错误修复

  • Scaffold 的 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 的窗口内嵌。(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 重命名为 isTraversalGroupI121f6
  • 添加了具有完整参数列表的优化 TextStyle.merge(...)。(Iad234b/246961787
  • 使 TooltipStateRichTooltipStatePlainTooltipState 成为公共接口。添加了 RichTooltipStateImplPlainTooltipStateImpl 作为默认状态。添加了 remember*State 函数以获取这些已实现的状态。删除了 TooltipSync,取而代之的是 TooltipDefault.GlobalMutatorMutex。(I7813d
  • 更新了 DatePickerColors,以包含日期选择器分隔符、导航和文本输入字段颜色的其他自定义选项。(I1a685b/274626815
  • DatePickerStateDateRangePickerState 现在是公共接口,具有可通过 rememberDatePickerStaterememberDateRangePickerState 获取的默认实现。(I71c52
  • DatePickerDateRangePicker 中删除了 dateValidator,并引入了 SelectableDates 接口,该接口可以设置在状态上以控制 UI 中哪些日期或年份可选。(Ic2fc6
  • TimePicker 从稳定 API 中移除,状态 API 中预计会有进一步的更改(I3f39a
  • ModalBottomSheet 移动到仅限 Android。不建议在桌面使用 ModalBottomSheet,并且该功能没有得到积极维护。(Ib3778

错误修复

  • 修复了 AlertDialog 的关闭操作,使其在操作堆叠以适应对话框宽度时出现在确认操作下方。此修复使实现与 Material Design 规范保持一致。(I029deb/235454277
  • 修复了 ListItem 中使用不正确填充的三行项目错误。(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 包含这些提交。

错误修复

  • 修复修饰符错误地传递给两个可组合项。(b/282761472
  • 修复了 TimePickerState 在使用 23 小时初始化时返回不正确的小时数。(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 包含这些提交。

错误修复

  • 添加了不带 windowInset 参数的 ModalBottomSheet 调用,以实现二进制兼容性。(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 更改

  • 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.HiddenShapeI839f4b/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 以显示无标题选择器。(Id3f3ab/266132421b/267194809)。

错误修复

  • 搜索栏现在在变为非活动状态时会自动清除焦点。(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 的功能,以允许在状态初始创建后设置日期,以及通过设置空时间戳重置选择。应谨慎手动设置日期,如果提供的日期不满足前提条件,则新 setSelection 函数将抛出异常(请参阅文档)。(Ifa645b/268609314b/270427389)。
  • 将折叠的 SheetValue 重命名为 PartiallyExpanded,以更准确和灵活地描述此状态下的行为。(Ia1491)。
  • ListItem 参数名称更新为 _content 而不是 _text。在相关情况下,默认 getter 现在是 ReadOnlyComposables。(I69a25)。
  • 将交互式 Surface API 从实验性升级。(I90d59b/261561812)。

错误修复

  • 修复了 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() 配合使用的 Time Input 可组合项,它遵循 M3 时间输入规范。(Ia4fab)。
  • 添加了一个用于选择日期范围的 Material 3 DateRangePicker API。(I7a6c3b/267194809)。
  • 添加了 Material 3 输入模式支持,用于通过 DateRangePicker API 选择日期范围。(Ifdbc4)。
  • 文本字段颜色现在允许自定义
    • 输入字段和占位符文本颜色,基于焦点和错误状态。textColor 参数已重命名为 unfocusedTextColorplaceholderColor 已重命名为 unfocusedPlaceholderColor
    • 填充文本字段的容器颜色,基于错误状态,使用新的 errorContainerColor 参数。
  • 已更新公开的组合菜单文本字段颜色,并添加了参数以支持新的前缀和后缀 API。(I9c8b4b/254284181b/264766350)。

API 更改

  • 恢复某些 Slider API 版本,并删除由带有自定义拇指和轨道的新的实验性 Slider 涵盖的冗余 Slider 重载。将 RangeSlider 提升为稳定版本。(Ie8fbd)。
  • 将芯片高度函数中的 defaultElevation 重命名为 elevation。(I0f872)。
  • 以下 Material 3 文本字段 API 现在不再是实验性的:TextFieldOutlinedTextFieldtextFieldWithLabelPaddingtextFieldWithoutLabelPaddingoutlinedTextFieldPadding。(Ieb5c0b/261561819)。
  • TimePickers is24Hour 使用系统设置。(I18856)。
  • 从表单 API 中删除了实验性注释。(Ibb51eb/261565765b/261436953)。

错误修复

  • ModalBottomSheet 的默认形状现在始终为 SheetDefaults.ExpandedShape。(I0dfca)。
  • Material 3 DatePickerDateRangePicker 的辅助功能改进。(I5087e)。
  • 修复了最大高度约束传播并可能导致崩溃的错误。(I30d8c)。
  • 从可点击和可选表面中删除了语义角色,更新了使用这些角色的组件以使用 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 showSnackbar。(I195c2b/261424370)。
  • 稳定辅助芯片和建议芯片的 API。(Ibb67bb/261424370)。
  • ListItemListItemDefaultsListItemColors API 提升为非实验性。(I7e7fab/261438882)。

  • SliderPositionsSliderDefaults.ThumbSliderDefaults.Track 提升至稳定版本,并添加非实验性的包含自定义滑块和轨道 的 SliderRangeSlider API。同时弃用之前的 SliderRangeSlider API。(Ie5ea6b/261566890
  • Modifier.tooltipAnchor() 设置为公开,以便开发者将其传递给锚点以指示在长按时应显示工具提示。更新了 PlainTooltipBox API,使其不再使 TooltipState 可为空,并且现在具有默认值。(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 包含这些提交。

新功能

  • 用于通过日历 UI 选择单个日期的初始 DatePicker API。此 API 仍在不断变化。(I722b9
  • 添加了对通过 PlainTooltipBox 使用普通工具提示的支持。(I0cdfb
  • 搜索栏(Iad128
  • SwipeToDismissI458a8b/242889540

API 更改

  • 在 Surface 上添加了 IsContainer 语义属性。此属性将在以后的更改中使用,该更改将根据元素(如 Surface)的语义含义确定遍历顺序。(I63379
  • 将与导航抽屉相关的 API 标记为稳定。(Iab01eb/261439597
  • 为圆形进度指示器添加了轨道颜色参数,并为圆形和线性进度指示器都添加了笔触端点参数。(Ie668cb/216325962b/222964817
  • 更多已弃用隐藏函数的返回类型可空性(Ibf7b0
  • 添加 Modifier.minimumInteractiveComponentSize。如果元素的测量尺寸较小,则可以使用它保留至少 48.dp 的大小以消除触摸交互的歧义。(I33f58b/258495559
  • 添加了具有内容插槽的 AlertDialog 可组合项的实验性 API。(Iec4a2

错误修复

  • 进度指示器的进度现在已正确限制在其预期范围内。(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(),并将修饰符设置为公开。(Ie44e1
  • 添加新的默认文本按钮带图标的内容填充以供使用。(I8f662
  • 为导航栏和轨道添加了禁用颜色。(Ia7892b/258867034
  • 添加了一个修饰符 API 来查询祖先滚动信息。(I2ba9db/203141462
  • Clickable 中使用,以在手势可能变成滚动事件时正确延迟按下交互。
  • 修复了 ClickablesScrollable ViewGroup 内部使用时未正确延迟波纹的问题。
  • 更新了抽屉和表单,以在手势可能变成滚动事件时正确延迟按下。

依赖项更新

  • 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 函数,转而使用新的 topAppBarColors 函数,该函数应在创建 TopAppBar 时使用。(Ie6cb9
  • BasicTextBasicTextField 添加了 minLines 参数。它允许根据行数设置这些可组合项的最小高度(I24294b/122476634

错误修复

  • 将 Material3 IconButtonIconToggleBotton 的内容裁剪到组件的状态层形状(例如圆形)。(I9da8f
  • 更新 Material3 中等和大型顶部应用栏,以在其整个表面上应用相同的背景颜色,并允许使用透明颜色值覆盖默认颜色。(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 包含这些提交。

错误修复

  • 修复了在标题使用 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 中等和大型顶部应用栏,以在其整个表面上应用相同的背景颜色,并允许使用透明颜色值覆盖默认颜色。(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 来检索窗口尺寸类实例,您可以使用它来确定 UI 应该如何显示,例如,对于更大的窗口尺寸显示导航轨道而不是底部导航。有关更多信息和示例用法,请参阅 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

错误修复

  • 更新了错误容器的深色主题颜色映射到色调 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 icon tab 参数,以在 API 中保持一致性(Ie2637
  • BadgeDefaults 标记为实验性。(I98ef3
  • 删除已弃用的导航抽屉函数。(I4f2db
  • 重新排序 Material 3 中的 Slider 参数,以在 API 中保持一致性(I0aee7
  • 重新排序 NavigationBarNavigationRail 参数,以在 API 中保持一致性(I51cda
  • 重新排序 Material 3 中的参数,以在整个 API 中保持一致性。(If4ae1
  • 重新排序 Material 3 中的 Slider 参数,以在 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)
  • 在 Material 3 文本字段中,参数 backgroundColor 已重命名为 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 添加了一个 expanded 参数,用于控制 FAB 是展开还是折叠,并在每个状态之间进行动画处理。添加了扩展 FAB 的重载,用于带有尾随文本的扩展 FAB,用于没有图标的扩展 FAB。 (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)

错误修复

  • 修复了 Material3 Button,使其从 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
  • 撤销了之前仅依赖 View 获取 WindowInsetsControllerCompat 的更改,并再次要求使用 Window,因为管理某些窗口标志需要 Window。已弃用 ViewCompat.getWindowInsetsController,建议使用 WindowCompat.getInsetsController 以确保使用正确的 Window(例如,如果 View 在对话框中)。(I660aeb/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 已添加,它表示抽屉内的单个目的地。(Ic396fb/218286829
  • PermanentNavigationDrawerDismissibleNavigationDrawer 已作为实验性 API 添加。这些抽屉非常适合大屏幕设备。(I5f8abb/218286829
  • 添加了 Material 3 底部应用栏支持。(Ic432a
  • NavigationDrawer 已重命名为 ModalNavigationDrawer。(I1807db/218286829
  • 添加了 Material 3 滑块类和标记。(I1ccee
  • 添加了 Tab 实现,请参阅文档以获取示例用法。(Ie0146

错误修复

  • 修复了 TalkBack 屏幕阅读器线性导航选择空顶部应用栏标题的问题。(Id4690
  • IconSize 添加到 FloatingActionButtonDefaults 中。(Ia71cf
  • 修复了在使用 LazyColumn 添加长文本时,隐藏的 AlertDialog 按钮的错误。(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 函数。可点击的 Surface 应使用 InteractionSourceModifier.clickable() 创建。(I211c6
  • 为 FAB 添加了按下和聚焦时的海拔支持。(Ibb584
  • 更改了 Surface API 以接收 InteractionSource,从而允许在不同状态下控制其外观。(Iafbc8

错误修复

  • 在动态颜色方案中添加了缺失的三级颜色。(I456c4b/214588434

版本 1.0.0-alpha04

2022年1月26日

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

API 更改

  • NonRestartableComposable 添加到现有方法的重载方法中,这些方法没有复杂的逻辑。这减少了对所有在内部调用的函数中重复的参数进行编译器生成的记忆化检查(等于)。(I90490
  • 添加了 Material 3 分隔线。(Ica5fc
  • 使用实验性 API 注释标记复选框和单选按钮。(Ie44bb
  • 添加了对 Material 3 进度指示器的支持。(Iff232b/205023841

错误修复

  • 将禁用的 TextButton 的容器颜色更新为透明。(I6b248b/213339737

版本 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。(I68bbeb/206674345
  • Text 更改的字符串快速路径从 compose.material 移植过来。(I30b03
  • 修复了将按钮始终设置为启用的错误。(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 部分。