Compose Material 3
最新更新 | 稳定版 | 发布候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2025 年 5 月 20 日 | 1.3.2 | - | - | 1.4.0-alpha15 |
结构
Compose 是 androidx
中七个 Maven Group 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.runtime | Compose 编程模型和状态管理的基本构建块,以及 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-alpha15" } 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-alpha15") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.1.1" } kotlinOptions { jvmTarget = "1.8" } }
有关依赖项的更多信息,请参阅 添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新问题或有改进此库的想法,请告诉我们。在创建新问题之前,请查看此库中的现有问题。您可以通过点击星形按钮为您已有的问题投票。
有关更多信息,请参阅 问题跟踪器文档。
Compose Material3 Common 版本 1.0
版本 1.0.0-alpha01
2024 年 4 月 17 日
发布了 androidx.compose.material3:material3-common:1.0.0-alpha01
、androidx.compose.material3:material3-common-android:1.0.0-alpha01
和 androidx.compose.material3:material3-common-desktop:1.0.0-alpha01
。版本 1.0.0-alpha01 包含这些提交。
新功能
可用于构建 Material Design 组件的无主题组件
- 色调调色板
- 图标
- 触控目标大小
Compose Material3 Adaptive Navigation Suite 版本 1.0
版本 1.0.0-alpha07
2024 年 5 月 1 日
发布了 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha07
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha07
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha07
。版本 1.0.0-alpha07 包含这些提交。
API 更改
- 将导航套件 API 设为非实验性 (If62af)
Bug 修复
- 默认情况下消耗内容的嵌入 (50266df)
版本 1.0.0-alpha06
2024 年 4 月 17 日
发布了 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha06
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha06
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha06
。版本 1.0.0-alpha06 包含这些提交。
API 更改
- 将
containerColor
和contentColor
添加到NavigationSuiteScaffoldDefaults
中。 (I64e3a, b/331993720) - 将
itemColors
函数添加到NavigationSuiteDefaults
中。 (Idf719, b/328480012) - 将
NavigationSuiteScope
设为 sealed。 (Iefa57)
版本 1.0.0-alpha05
2024 年 3 月 6 日
发布了 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha05
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha05
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha05
。版本 1.0.0-alpha05 包含这些提交。
API 更改
- 将
NavigationSuiteItemColors
构造函数设为 public。 (Ica83a, b/324886877)
版本 1.0.0-alpha04
2024 年 2 月 21 日
发布了 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha04
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha04
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha04
。版本 1.0.0-alpha04 包含这些提交。
依赖项更新
版本 1.0.0-alpha03
2024 年 2 月 7 日
发布了 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha03
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha03
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha03
。版本 1.0.0-alpha03 包含这些提交。
API 更改
- 将包名从 navigationsuite 更新为 navigation-suite (I7eff7)
- Material3 组件在其 API 中公开
MutableInteractionSource
的部分已更新,现在公开可为空的MutableInteractionSource
,默认为 null。这里没有语义上的更改:传递 null 意味着您不想提升MutableInteractionSource
,如果需要,它将在组件内部创建。更改为 null 允许某些组件从不分配MutableInteractionSource
,并允许其他组件仅在需要时惰性创建实例,这提高了这些组件的性能。如果您不使用传递给这些组件的MutableInteractionSource
,建议您改为传递 null。还建议您在自己的组件中进行类似的更改。 (I41abb, b/298048146)
版本 1.0.0-alpha02
2023 年 12 月 13 日
发布了 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha02
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha02
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha02
。版本 1.0.0-alpha02 包含这些提交。
新功能
- 添加一个 'None'
NavigationSuiteType
(If8cb1, b/313688598)
Bug 修复
- 修复当根表面有
modifier.fillMaxSize
时导航组件填充整个屏幕的问题。 (c9cf250, b/312664933)
版本 1.0.0-alpha01
2023 年 11 月 15 日
发布了 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha01
。版本 1.0.0-alpha01 包含这些提交。
新功能
Compose Material3 Adaptive 版本 1.0
版本 1.0.0-alpha06
2024 年 2 月 7 日
发布了 androidx.compose.material3:material3-adaptive:1.0.0-alpha06
、androidx.compose.material3:material3-adaptive-android:1.0.0-alpha06
和 androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha06
。版本 1.0.0-alpha06 包含这些提交。
新功能
版本 1.0.0-alpha05
2024 年 1 月 24 日
发布了 androidx.compose.material3:material3-adaptive:1.0.0-alpha05
、androidx.compose.material3:material3-adaptive-android:1.0.0-alpha05
和 androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha05
。版本 1.0.0-alpha05 包含这些提交。
新功能
- 在 Scaffold 导航和值计算中支持历史感知 (I71d46)
版本 1.0.0-alpha04
2024 年 1 月 10 日
发布了 androidx.compose.material3:material3-adaptive:1.0.0-alpha04
、androidx.compose.material3:material3-adaptive-android:1.0.0-alpha04
和 androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha04
。版本 1.0.0-alpha04 包含这些提交。
新功能
- 在 pane scaffolds 中添加了边缘到边缘支持 (I1b462)
API 更改
- 将 Posture 中的 hinge bounds 属性移动到铰链信息列表 (I24f90)
Bug 修复
- 修复
AnimatedPane
未重新组合的问题 (c3f573d)
版本 1.0.0-alpha03
2023 年 12 月 13 日
发布了 androidx.compose.material3:material3-adaptive:1.0.0-alpha03
、androidx.compose.material3:material3-adaptive-android:1.0.0-alpha03
和 androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha03
。版本 1.0.0-alpha03 包含这些提交。
API 更改
- 将 scaffold 角色更改为
ThreePaneScaffoldRole
的别名。 (I65bd1) - 为 scaffold 角色创建基类 (I4784d)
- 从
AnimatedPane
的内容中移除不必要的参数 (Ibc73b) - 重命名
collectWindowSizeAsState
并返回原始值而不是 (I480f4)
版本 1.0.0-alpha02
2023 年 11 月 29 日
发布了 androidx.compose.material3:material3-adaptive:1.0.0-alpha02
、androidx.compose.material3:material3-adaptive-android:1.0.0-alpha02
和 androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha02
。版本 1.0.0-alpha02 包含这些提交。
API 更改
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 自适应窗格 scaffold API
- 窗格 scaffold 基本 API
Compose Material3 版本 1.4
版本 1.4.0-alpha15
2025 年 5 月 20 日
发布了 androidx.compose.material3:material3-*:1.4.0-alpha15
。版本 1.4.0-alpha15 包含这些提交。
API 更改
- 添加了
MotionTheme.LocalMotionScheme
,composition local。这允许从CompositionLocalConsumerModifierNodes
访问主题动画方案,通过currentValueOf(MotionTheme.LocalMotionScheme)
。 (I014b1) - 不带 Fixed color 角色的
ColorScheme
构造函数现已弃用。请迁移到包含固定角色的构造函数。 (Iad0ee) - M3 Text 组件现在支持
TextAutoSize
。 (I7f524) - 添加了用于构建分割按钮尺寸变体的 API 并添加了示例。 (Ice30b)
Bug 修复
- 修复了启用边缘到边缘时
Snackbar
和FloatingActionButton
位置不正确的问题。Scaffold 现在正确地将水平嵌入应用于这些组件。 (Ib7c30, b/244400727) - 修复了
BottomSheet
从完全展开到部分展开的动作。当隐藏或折叠时,BottomSheet
现在使用MotionScheme
的快速效果,当展开时使用 default-spatial。 (Ifa46f, b/416063171) - 不带 surface container 角色的
ColorScheme
构造函数已被标记为隐藏,不再推荐使用。 (Ia7237) - 删除了
CircularWavyProgressIndicator
Size.minDimension > 0
要求,该要求以前会抛出异常,以提供更大的灵活性。 (Ic9418, b/377531195) Text(AnnotatedString)
中的超链接现在默认具有 Material 样式。 (I78288, b/339843816)- 修复了
RoundedPolygon
中的toShape()
函数缓存 Path 并在多次使用不同大小的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
添加了最大项目数,这对于正确实现顶部应用栏的材料规范是必要的。 (I92ce4) - 在
TooltipScope
中添加了一个方法来获取锚点的layoutCoordinates
。弃用drawCaret
方法,因为开发人员可以使用此新方法获取锚点边界layoutCoordinates
并创建包含尖角的适当形状。 (Ia2e12, b/329470609) - 添加了对 Date Pickers 的
java.time
支持:引入了接受 java.time 对象的rememberDatePickerState/rememberDateRangePickerState
重载(例如,初始LocalDate
,YearMonth
)。还在状态对象上添加了扩展函数,以使用LocalDate
和YearMonth
等类型获取/设置值。需要 API 26+ 或 desugaring。 (I70f29, b/266202516, b/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 更改
isAppearanceLightStatusBars
和isAppearanceLightNavigationBars
重新引入到ModalBottomSheetProperties
作为仅限 android 的参数。 (Id4bc0)- 添加一个
AppBarRow
可组合项,用于处理超出其边界的项目溢出。 (I742bd) - 更新了
DatePicker
和DateRangePicker
API,用于在切换到日期输入模式时请求焦点。我们已将requestFocus
布尔参数替换为接受FocusRequester
的可选focusRequester
参数。 (I14b69) - 从默认的可点击和可切换项目中移除修饰符和交互源。将其作为实现细节。 (I95ed6)
- 更新了
ButtonGroup
,当按钮过多无法适应屏幕时,会溢出到下拉菜单中。 (I7b88b)
Bug 修复
- 当 Bottomsheet 小于当前偏移量时,现在会消耗顶部嵌入。这允许用户为展开行为提供顶部嵌入。
BottomSheetDefaults.windowInsets
现在包含WindowInsets.safeDrawing.Top
。 (I0ab67, b/321877275, b/336962418, b/342093067) - 为 Chip 的前导图标/头像和尾随图标启用了进入/退出动画(淡入/滑动),当它们被添加或移除时。这主要有利于可选的 Chip(Filter, Input),但也普遍适用。 (I9af21)
- 修复了由
LookaheadScope
引起的 RTL Slider 行为损坏问题。 (Ieb152, b/408118041) - 修复了与隐藏系统 UI 滚动相关的 Bottom
AppBar
崩溃问题。 (Ic6140, b/405996228)
版本 1.4.0-alpha12
2025 年 4 月 9 日
发布了 androidx.compose.material3:material3-*:1.4.0-alpha12
。版本 1.4.0-alpha12 包含这些提交。
API 更改
- 从
ModalBottomSheetProperties
中删除了 Android 特定的参数 (Iab97f, b/362539765) - 引入拖动手柄大小默认值的重载函数 (I0ed0d)
- 添加新的
NavigationSuiteScaffold
和NavigationSuiteScaffoldLayout
函数以支持新的布局类型,并添加对可选主要操作内容的支持。 (Ib262a, b/353144478) - 弃用
Modifier.weight
在ButtonGroup
中的 fill 参数。添加一个没有 fill 的版本。 (Id32bb) - 将
xSmall-
和xLarge-
IconButton 组件默认值重命名为拼写出extra
。 (Ib6e0f) - 添加新的
NavigationSuite
、NavigationSuiteItem
和NavigationSuiteColors
函数以支持新的布局类型。 (I203d6) - 添加新的
NavigationSuiteTypes
并添加新的navigationSuiteType
函数,其中包括这些布局选择 (If68f9)
Bug 修复
ColorScheme.contentColorFor
现在将surfaceDim
映射到onSurface
。 (I8891a)- 更新了
DateInputTextField
的实现,以解决输入字段不反映以编程方式设置的日期的问题。 (I6c8d1, b/401143451) - 修复了导航栏和宽导航栏的 TalkBack 焦点顺序 (I6cf6f, b/407048224)
版本 1.4.0-alpha11
2025 年 3 月 26 日
发布了 androidx.compose.material3:material3-*:1.4.0-alpha11
。版本 1.4.0-alpha11 包含这些提交。
API 更改
- 更新了按钮和切换按钮默认对象中可组合属性的标题。在
ToggleButtonDefaults
和ButtonDefaults
中添加了方法,用于推荐的内容填充、形状、图标大小、图标间距和文本样式,具体取决于容器高度。 (Iea69e) - 移除了
FloatingToolbar
中已弃用的实验性函数和常量。 (I8f339) - Elevation 组件现在共享一个公共接口,并具有公共构造函数和属性。 (Ibb172)
- 在
ButtonGroupScope
中添加animateWidth
修饰符,需要与按钮组的子项一起使用才能正确动画化子项。 (Ia3bb6)
Bug 修复
- 修复了 Floating Toolbar 填充,以确保折叠时的视觉平衡,并提高了大内容的灵活性。 (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)
TabRow
和ScrollableTabRow
已弃用,取而代之的是每个的 Primary 和 Secondary 变体。Primary 和 Secondary Tab Row 的性能更好,更符合规范。 (I918e2)- 添加了
rememberSliderState
和rememberRangeSliderState
。 (I8e384) - 为
SliderState
添加了shouldAutoSnap
以控制自动吸附机制,禁用它可能对自定义动画有用。 (I07745) - 可滚动标签行的最小标签宽度现在是一个参数。主和次标签行变体不再是实验性的。 (If6f15, b/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 参数,并添加了展开和折叠高度的单独参数。 (Idd677, b/306697446, b/229134133, b/268068946)
Bug 修复
- 底部应用栏现在会观察触摸探索服务(例如
TalkBack
),并在服务开启时保持其可见。 (I4b34d)
版本 1.4.0-alpha08
2025 年 2 月 12 日
发布了 androidx.compose.material3:material3-*:1.4.0-alpha08
。版本 1.4.0-alpha08 包含这些提交。
新功能
添加了一个
TimePickerDialog
API,可用于TimePicker
、TimeInput
或拥有可切换版本。 (Id2d83)新的搜索栏 API
- 折叠式搜索栏和展开式搜索“视图”现在是独立的 Composable。
SearchBar
表示折叠状态的搜索栏。ExpandedFullScreenSearchBar
和ExpandedDockedSearchBar
表示展开状态的搜索栏。这些将在新窗口中打开。SearchBarState
用于控制搜索栏的状态TopSearchBar
用于添加嵌入处理和滚动行为InputField
的新重载,使用SearchBarState
(Ie0723, b/261496232, b/283311462, b/350916229, b/352872248)
API 更改
- 支持按下时图标按钮的角形状变形。 (I21843)
- 文本字段装饰器/装饰框 API 不再是实验性功能。 (I31d95)
- 添加了
ButtonGroup
连接变体的示例和默认值。 (I5c8ce) - 将
NavigationSuiteScaffold
和NavigationSuiteScaffoldLayout
中的状态参数放在最后。 (I9cc7b)
Bug 修复
- 为
FloatingToolbars
添加了自定义无障碍操作,因此无障碍服务现在可以展开或折叠所有FloatingToolbar
变体。配备 FAB 的版本将此应用于 FAB,而没有 FAB 的版本则应用于主内容。 (I26420) - FloatingToolbars 现在观察触摸探索服务(例如 TalkBack),并在服务开启时保持工具栏展开并可见。 (I02172)
- 修复了在进度和加载指示器中,如果传递
Float.NaN
作为进度时发生的崩溃。 (I4fa96, b/352364576)
版本 1.4.0-alpha07
2025 年 1 月 29 日
发布了 androidx.compose.material3:material3-*:1.4.0-alpha07
。版本 1.4.0-alpha07 包含这些提交。
新功能
- 通过新的 API 增加了自定义 Checkboxes 外观的灵活性。此 API 提供了 Stroke 参数,可以更好地控制勾选标记和复选框轮廓的渲染方式。 (I65a88)
- 添加了
TwoRowsTopAppBar
API,这是一个更可定制的替代 Medium 和 Large 应用栏,用于创建双行顶部应用栏。开发人员现在可以控制折叠和展开状态下标题和副标题的内容,并为每种状态定制高度。 (I0be3c, b/306697446, b/229134133, b/268068946)
API 更改
- 将实验性
BottomAppBar
变体重命名为FlexibleBottomAppBar
,提供对内容排列和高度的更多控制。 (Iaa448) - 更新按钮组默认对象中的属性命名,使其采用
CapitalCase
。更新animateFraction
的名称,使其更精确地表示其行为。 (I545cd) - 为常用按钮添加了重载,允许在按压交互时进行动画形状。添加了缓存的按钮形状。 (I5ec20)
- 您现在可以通过提供
FloatingToolbarScrollBehavior
来控制带 FAB 的FloatingToolbar
如何响应滚动。对于沿中心边缘(如顶部或底部中心)定位的工具栏,我们建议使用滚动行为在滚动时隐藏整个组件,以获得更简洁的外观。这也防止了 FAB 偏离中心,这在使用expanded
标志进行折叠时可能发生。 (I33f67) - 更新了实验性
TopAppBar
API,在设置标题和副标题对齐方式时使用Alignment.Horizontal
而不是自定义TopAppBarTitleAlignment
。 (I70ca2) SliderState#onValueChange
现已公开,以便用户获得更多控制权 (I104eb)- 引入
NavigationSuiteScaffoldState
以允许导航组件的动画。还引入了NavigationSuiteScaffold
和NavigationSuiteScaffoldLayout
的重载,它们具有状态参数。 (I6a8c9, b/328674235)
Bug 修复
- 将
IconButtonColors
和IconToggleButtonColors
类从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 包含这些提交。
行为更改
- 还原 aosp/3212478 引入的
iconButtonColors
、iconToggleButtonColors
、outlinedIconButtonColors
、outlinedIconToggleButtonColors
和outlinedIconToggleButtonBorder
的颜色更改。将现在已还原的行为移入一组新的函数中,称为iconButtonVibrantColors
等,以强调返回的高对比度颜色。 (Iffd8d, b/362508045)
API 更改
- 更新了
TopAppBar
API。将带有副标题的 medium 和 large top app bars 重命名为*FlexibleTopAppBar
。将颜色变体统一到单个TopAppBarDefault.topAppBarColors()
函数中,并添加了一个subtitle
颜色参数,用于应用于提供的副标题 Composable (I41b65) - 删除
WideNavigationRailArrangement
API,转而使用Arrangement.Vertical
(Id0341) - 添加一个新的
VerticalSlider @Composable
。 (I2bfba) - 添加一个新的 Track
@Composable
,允许指定自定义外部轨道角和轨道图标。 (I436a4) - 更新了浮动工具栏 API,以使用
FloatingToolbarColors
对象而不是单个容器颜色。 (I9a054) - 添加并使用新的实验性注解
ExperimentalMaterial3ComponentOverrideApi
(Ia1eaf) Modifier.indicatorLine
现在接受一个用于文本字段的形状来处理剪切。 (I8c5f3, b/380704151)- 将实验性
FloatingAppBar
函数重命名为FloatingToolbar
(I1dbf8) - 添加了一个新的
floatingToolbarVerticalNestedScroll
,可以附加到可滚动容器,根据超过阈值的滚动运动更新浮动工具栏的展开状态。 (I6d65f) - 引入了一个新的 API,用于创建带有附加浮动操作按钮 (FAB) 的浮动工具栏。该 API 提供了灵活的自定义选项,允许您水平或垂直排列工具栏,并将 FAB 放置在工具栏的开头或结尾。 (I9e350)
Bug 修复
- 修复了 Snackbar 的无障碍问题,该问题导致当
TalkBack
开启时,在关闭时会自行播报。 (/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
。使修饰符内部化。将 padding 参数替换为最大开始和结束偏移量。 (I0b904) - 更改
WideNavigationRailState
以具有 current/target 值,删除枚举以支持布尔值。 (Idfa29, b/356039090) - 添加
NavigationBarItemComponentOverride
。 (I3a06a)
Bug 修复
- 修复顶部和底部应用栏的行为,使其在内容完全滚动时可靠地改变颜色。 (Idc4e8, b/293665988)
- 顶部和底部应用栏的滚动行为函数现在返回一个记住的行为,以便在重组时表现更好。 (I0fdbe, b/207957336)
- 现在在内部修饰符(如拖动行为和语义)之后应用修饰符参数,而不是之前。这会影响修饰符的应用顺序。 (I8d83f)
- 展开的 Bottom Sheet 在尺寸变化时保持展开。 (I2870b, b/324934884)
- 正确地为窗口属性路由状态和导航栏标志。 (Ie674d, b/362539765)
- 将修饰符参数移动到 scaffold 的根目录,如文档所述。这使得实现与 M2 对齐。 (I0235e, b/372311595)
外部贡献
- 通用化了
DatePickerDialog
函数。 (I7dced)
版本 1.4.0-alpha04
2024 年 11 月 13 日
发布了 androidx.compose.material3:material3-*:1.4.0-alpha04
。版本 1.4.0-alpha04 包含这些提交。
行为变更
- 回滚 aosp/3212478 中引入的
iconButtonColors
、iconToggleButtonColors
、outlinedIconButtonColors
、outlinedIconToggleButtonColors
和outlinedIconToggleButtonBorder
的颜色更改。将现在已回滚的行为移入一组新的函数中,称为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 修复
- 根据规范,Filter chip 的尾随图标颜色已从 Primary 更新为
OnSurfaceContainer
。根据规范,所有 chip 轮廓颜色都已从 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
。弃用了rememberPlainTooltipPositionProvider
和rememberRichTooltipPositionProvider
。 (Ie66e2) - 额外的
ModalBottomSheetProperties
允许自定义状态栏和导航栏颜色。默认情况下,这些颜色根据内容颜色而不是系统深色主题状态进行更新。 (Ib874e, b/362539765) - 改进了日期选择器的输入体验:在输入模式下,日期文本字段将获得焦点,以便立即进行文本输入。此更改为
DatePicker
和DateRangePicker
添加了一个requestFocus
参数。您可以通过传递false
来阻止焦点。 (I12d09, b/286399710, b/340102743) - 将形状默认值缓存到 Shape 对象中。将切换按钮的形状默认值设为
@Composable
。将形状合并为一个形状默认值,因为变体指向同一个 token 文件。 (Iaa014)
Bug 修复
- 优化 Scaffold
contentPadding
行为,避免在contentPadding
更改时总是重新组合主体内容。 (I8c8e2, b/373904168) TextFieldLabelScope
progress
重命名为labelMinimizedProgress
TextFieldLabelPosition
Default
重命名为Attached
。接口成员已被移除。 (If75c6)- 修复了输入模式下
DatePicker
的问题,其中验证错误可能导致组件高度发生变化。 (I2e229, b/280462363) - 使 Material Slider 在按下控制键时改变其值。 (I1c442)
版本 1.4.0-alpha02
2024 年 10 月 16 日
发布了 androidx.compose.material3:material3-*:1.4.0-alpha02
。版本 1.4.0-alpha02 包含这些提交。
API 更改
- 日期选择器更新,以确保在使用
DatePickerState
或DateRangePickerState
直接设置区域设置时,DatePicker
和DateRangePicker
在整个过程中一致地使用区域设置。请注意,当直接向状态设置区域设置时,您需要确保标题和标题文本相应地进行了本地化,因为它们的默认文本仍将根据默认平台区域设置应用。(I37073, b/326490763, b/321657276) SheetState.isAnimationRunning
现已公开。( I9a3d7)DatePickerColors
现在正确地优先于主题 Typography 文本样式中定义的任何冲突颜色。另请注意,此更新调整了日期选择器函数中color
参数的位置,并引入了contentColor
参数用于自定义标题和标题文本颜色。(I30d03, b/347031394)- 将
SplitButton
重命名为SplitButtonLayout
,并移除SplitButton
颜色变体 API;变体将通过重复使用SplitButtonDefaults
提供的按钮变体来实现。(I44c36) ModalBottomSheet
现在有sheetGestureEnabled
参数 (I856cb, b/288211587)- 将
standardMotionScheme
和expressiveMotionScheme
重命名为 standard 和 expressive。现在,通过调用MotionScheme.standard()
和MotionScheme.expressive()
,这两个函数都可以通过MotionScheme
伴生对象访问。(Iceccf) - 为普通和富文本工具提示添加
maxWidth
参数。普通工具提示默认为设计规范的 200 dp,富文本工具提示默认为 320 dp。(I30ce9)
Bug 修复
DatePicker
和DateRangePicker
现在在使用其状态的displayedMonthMillis
设置时,能正确更新显示的月份。(If9e47, b/333414302)ModalBottomSheet
内容现在会避开状态栏。( I5114c, b/321877275, b/336962418, b/342093067)- [底部工作表] 将回调优先级改回
PRIORITY_DEFAULT
,以允许 IME 键盘优先关闭。(I447fb) - 修复
DatePicker
和DateRangePicker
在可选择的最小年份设置为未来年份时崩溃的问题。(I78656, b/319395747) - 修复日期选择器问题,使其在应用更新的
SelectableDates
实例时更新 UI。(Iad59a, b/290135807, b/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]
文件中明确添加该依赖。(I735ff, b/349894318) NavigationBarItem
和NavigationRailItem
的活动标签颜色从onSurface
更改为secondary
,以提高可用性、颜色对比度并改善系统内的连贯性 (Ibc297),要恢复到以前的行为,请复制默认颜色并将selectedTextColor
更改为MaterialTheme.colorScheme.onSurface
。- Material 3 组件现在使用新的
MotionScheme
来定义其运动。(Ie0f93) - 不确定圆形进度指示器运动变化 (I3c07e)
- 更新了
OutlinedIconButtonColors
和OutlinedIconToggleButtonColors
以提供更好的颜色对比度。(I2743d) - 更新了
FilledIconToggleButtonColors
和FilledTonalIconToggleButtonColors
的容器和内容颜色。(Ic5d0f) - 将
OutlinedButton
边框颜色从outline
更新为outlineVariant
。(057f00)
API 更改
- 为
TopAppBar
的enterAlwaysScrollBehavior
函数添加了可选的reverseLayout
参数,以便更好地支持设置为reverseLayout
的内容。(I4e0e5) SegmentedButton
现在支持contentPadding
参数。(I5ad91, b/358414376)PullToRefreshState
不再具有isAnimating
的默认实现 (I6a593)- 新增了 Material
TextField
和OutlinedTextField
的新重载,它们使用TextFieldState
。新增了与TextFieldDecorator
兼容的装饰框 API。(If13a1) - 添加了控制文本字段
labelPosition
的参数。使用alwaysMinimize
可以在文本字段中同时显示标签和占位符的 UI 模式,即使字段未聚焦。(I1ef2c) - 为密码输入字段添加了 Material
SecureTextField
和OutlinedSecureTextField
。(I7e22d) - 为文本字段标签添加了一个作用域,用于查询动画进度。(If5ec8)
- 添加了对工具提示中
MotionEvent.CLASSIFICATION_DEEP_PRESS
的支持。(I62e6a) TimePickerState
的isAfternoon
现在是扩展 val,而不是接口中的 var,并重命名为isPm
(I89a97)- 更新排版类以支持强调字号。( Ifa13c)
- 添加了
ModalWideNavigationRail
API,并将ModalExpandedNavigationRail
API 重命名为DismissibleModalWideNavigationRail
。(Ic9118) - 更新了
FloatingAppBarScrollBehavior
,使其能自动计算screenOffset
,不再需要@Composable
。(Idf349) - 更新了
LoadingIndicator
API,修复了其默认对象中的命名问题。在PullToRefresh
中添加了LoadingIndicatorElevation
常量。(I1d72b) - 更新了
LoadingIndicator
API,修复了其默认对象中的命名问题。在PullToRefresh
中添加了LoadingIndicatorElevation
常量。(I1d72b) - 为
LinearWavyProgressIndicator
和CircularWavyProgressIndicator
的不确定变体添加了amplitude
和waveSpeed
参数。(I2a0c5) - 支持根据图标切换按钮的按下或选中状态更改其形状。(Ibc781)
- 更新排版类以支持强调字号。( Ifa13c)
SplitButton
形状根据默认/按下状态变化。移除了AnimatedTrailingButton
API,因为TrailingButton
API 可以提供相同的自定义功能 (I95066)- 添加修改器,用于动画显示和隐藏 FAB,例如当内容滚动时。( I8338d)
- 将连接按钮组的形状和间距添加到
ButtonGroupDefaults
中,以供示例使用。(I68e30) - 分割按钮为尾随按钮添加水平填充,并启用根据起始和结束角差异计算的光学居中。(I122e2)
- 引入新的 Material
MotionScheme
,允许为组件的运动设置方案。该方案通过MaterialTheme
进行设置。(Id50c2)
Bug 修复
- 将正确的焦点遍历索引应用于
Scaffold
子 Composables。顺序是topBar
、bottomBar
、fab、content、snackbar。(I5936b) - 修复了
DatePicker
和DateRangePicker
中的一个问题:在某些区域设置和格式骨架下,某些日期元素(例如月份名称)没有以大写字母开头。(I1430f) - 整合 FAB 和 FAB 菜单组件令牌(对填充和文本进行微小的视觉更新)(Ib57f3)
ModalBottomSheet
现在是语义遍历顺序中的第一个,其次是 scrim。(I436f9, b/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 修复
DatePicker
和DateRangePicker
现在在使用其状态的displayedMonthMillis
设置时,能正确更新显示的月份。(If9e47, b/333414302)- 修复
DatePicker
和DateRangePicker
在可选择的最小年份设置为未来年份时崩溃的问题。(I78656, b/319395747) - 修复日期选择器问题,使其在应用更新的
SelectableDates
实例时更新 UI。(Iad59a, b/290135807, b/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 组件
- 旋转木马 (Carousel)
HorizontalMultiBrowseCarousel
和HorizontalUncontainedCarousel
对现有 Material Design 3 组件的增强。
- [
ModalBottomSheet
] 现在支持 U+ 上的预测返回 (Iccf32, b/281967264, b/304850357) - [
SearchBar
] 现在支持 U+ 上的预测返回 (I657f8) - 导航抽屉(
ModalDrawerSheet
和DismissibleDrawerSheet
)现在通过选择加入的方式支持 U+ 上的预测返回 (Ie5b0b) DropdownMenu
现在支持自定义颜色、形状、高程和边框。(I8e981,b/289554448, b/301887035, b/283654243)- 更新了 Slider,通过添加间隙和停止指示器来提高可访问性。(I3058e)
- 更新了
ProgressIndicator
以通过添加间隙和停止指示器来改善可访问性。(I21451) - 为富工具提示添加了默认的尖角,并支持在给定锚点
LayoutCoordinates
的情况下绘制自定义尖角。(Ifd42c) 突破性更改 - 新的下拉刷新 API
- 简化了
PullToRefreshState
,使其使用小数而不是 Dp 单位。 isRefreshing
状态由用户控制,而不是由PullToRefreshState
控制。- 将嵌套滚动连接从
PullToRefreshState
中分离出来。它由新的PullToRefreshBox
或Modifier.pullToRefresh
处理。 - 此更新对以前的实验性 API 造成了突破性更改。(I0adeb, b/314496282, b/317177684, b/323787138, b/324573502, b/317177683) 视觉突破性更改
- 简化了
- 更新焦点状态叠加层为 0.1f,以确保足够的颜色对比度。(I7ea77)
- 对
lightColorScheme
和darkColorScheme
中的表面和背景颜色默认值进行了微调。(I9db52) - 更新了 Slider 和
ProgressIndicator
颜色,以遵循新的非文本对比度规范。(I26807) - 组件现在使用
SurfaceContainer
变体。以前使用Surface
和TonalElevation
计算颜色的组件,现在默认使用SurfaceContainer
角色,这些角色不受色调高程影响。(b/304584161) - 表面和表面容器基准角色已略作调整,在浅色和深色主题中提供了更多色调。(I677a5)
- 将实验性 API 提升为稳定版!
- 性能改进
版本 1.3.0-rc01
2024年8月21日
androidx.compose.material3:material3-*:1.3.0-rc01
发布。版本 1.3.0-rc01 包含这些提交。
Bug 修复
ModalBottomSheet
现在是语义遍历顺序中的第一个,其次是 scrim。(I436f9, b/358594665)
版本 1.3.0-beta05
2024年7月24日
androidx.compose.material3:material3-*:1.3.0-beta05
发布。版本 1.3.0-beta05 包含这些提交。
- 修复了 Android N 和 O 上
BottomSheet
内容缺失或被截断的问题 (a10a2d) - 增加了 Slider 的语义边界,以便
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
支持高程,更新 Pull To Refresh API,使 enabled 成为布尔值而不是 lambda。支持PullToRefreshBox
中的内容对齐。(I75679)- 将
TooltipScope
设为密封接口,并创建内部实现以用于TooltipBox
和 Label。(I3833e) - 向
CarouselItemScope
添加了两个新的修改器 -maskClip
和maskBorder
- 以方便地为任何轮播项添加形状和边框 (Id67a1) TimePickerState
现在是一个接口,并允许设置时间。(I88546)- 更新了链接样式 API:将
TextLinkStyles
移至TextStyle
,并从 material 中移除了TextDefaults
。(I5477b)
Bug 修复
ModalBottomSheet
状态和导航栏图标现在会响应深色主题状态。(Ie1fe7, b/338342149)- 向
ModalBottomSheet
遮罩添加了关闭工作表语义。(0e61cb,b/328801864)
外部贡献
版本 1.3.0-beta01
2024年5月14日
androidx.compose.material3:material3-*:1.3.0-beta01
发布。版本 1.3.0-beta01 包含这些提交。
API 更改
- 使用
DpSize
而不是CaretProperties
。移除CaretProperties
。将CaretScope
重命名为TooltipScope
。(Id9a76) - 更新了在文本中获取 Material 主题链接的 API。具体来说,移除了
TextDefaults
中用于构造主题LinkAnnotations
和解析带主题链接的 HTML 的方法。取而代之,添加了一个TextLinkStyles
类,允许将链接样式作为参数传递给 Text composable。(I31b93)
版本 1.3.0-alpha06
2024 年 5 月 1 日
androidx.compose.material3:material3-*:1.3.0-alpha06
发布。版本 1.3.0-alpha06 包含这些提交。
突破性更改
新的下拉刷新 API
- 简化了
PullToRefreshState
,使其使用小数而不是 Dp 单位。 isRefreshing
状态由用户控制,而不是由PullToRefreshState
控制。- 将嵌套滚动连接从
PullToRefreshState
中分离出来。它由新的PullToRefreshBox
或Modifier.pullToRefresh
处理。 - 此更新对以前的实验性 API 造成了突破性更改。(I0adeb, b/314496282, b/317177684, b/323787138, b/324573502, b/317177683)
- 简化了
API 更改
RippleConfiguration#isEnabled
已被移除,LocalRippleConfiguration
已被设为可空。要禁用涟漪效果,不要提供isEnabled = false
的RippleConfiguration
,而是向LocalRippleConfiguration
提供null
。(I22725)ModalBottomSheet
在启用边缘到边缘时更准确地在状态栏上绘制遮罩。模态底部工作表内容现在可以消费窗口内边距,允许导航栏上方的内容可见。ModalBottomSheet
参数windowInsets
重命名为contentWindowInsets
以指定内边距将应用的位置,这些不再与窗口逻辑绑定。contentWindowInsets
类型已更改为返回WindowInsets
的函数,以允许其在新窗口中解析。(I39630, b/274872542, b/300280229, b/290893168)PrimaryScrollableTabRow
和SecondaryScrollableTabRow
现在使用自定义布局而不是子组合,这应该会提高性能。(I991e0)- 文本链接除了普通样式、悬停和聚焦样式外,还获得了按下状态样式选项。
TextDefaults
的每个方法都获得了一个pressedStyle
参数来支持这一点。(Ic473f, b/139312671)
Bug 修复
- 导航抽屉的拖动锚点现在与
drawerContent
的宽度匹配。(Ibc72f, b/245355396) OutlinedTextField
标签顶部填充现在考虑了系统字体大小。(Idc781)- 修正了
CalendarLocale
的包位置。(Ifa235) - [预测返回] 更新预测返回动画以使用 (0.1, 0.1, 0, 1) 的插值曲线 (I2591a)
版本 1.3.0-alpha05
2024 年 4 月 17 日
androidx.compose.material3:material3-*:1.3.0-alpha05
发布。版本 1.3.0-alpha05 包含这些提交。
新功能
SearchBar
和DockedSearchBar
具有新的重载,它们接受一个文本字段参数。这允许将文本字段与搜索栏的其余部分分开样式,以及传入自定义文本字段。当前实现的文本字段已作为SearchBarDefaults.InputField
提供。(I50c73, b/275074248, b/278773336, b/326627700)- lambda
drawTick
已添加到公共 API 中,以便在需要时自定义刻度。(I0c048)
API 更改
- 文本链接除了普通样式、悬停和聚焦样式外,还获得了按下状态样式选项 (I5f864, b/139312671)
- 更新了
CarouselItemInfo
,以公开正在裁剪项目的遮罩 Rect。(I785d8) - 从 Material 3 公共 API 中移除了
BasicTooltipState
。在 Foundation 的BasicTooltip
稳定之前,其功能与TooltipState
合并。(Icda29) - 添加了一个
TextDefaults
对象,其中包含用于构造LinkAnnotation
和解析应用MaterialTheme
到链接的 HTML 标记字符串的方法。(I98532, b/139312671) ExposedDropdownMenuBoxScope
不再允许子类化。现在,暴露的下拉菜单具有MenuAnchorType
,应将其传递给menuAnchor
以支持更好的辅助功能。这应取代将focusable
传递给已弃用的ExposedDropdownMenu
。menuAnchor
有一个新参数来控制enabled
状态。(I55ee6, b/257209915, b/308840226)- 修复了
OutlinedButton
禁用时的边框颜色。添加了接受启用状态的ButtonDefaults.outlinedButtonBorder("enabled")
重载。(Ie650b, b/318461363) - 添加了一个新的
CarouselItemInfo
类,以帮助客户端获取有关项目大小的信息。(I9070c) - 不带 surface 容器的
ColorScheme
构造函数现已弃用。请迁移到包含 surface 容器的构造函数。(I35c11) - [Outlined]
TextFieldDefaults
ContainerBox
重命名为Container
。(Ie8d3b)
Bug 修复
- 如果
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 Carousel 的两个实验版本 -
HorizontalMultiBrowseCarousel
和HorizontalUncontainedCarousel
(I88d64) - 更新了 Compose M3 导航抽屉(
ModalDrawerSheet
和DismissibleDrawerSheet
)以支持 U+ 上的预测返回功能,该功能为选择加入。(Ie5b0b) - 在 Icon 中添加了一个新 API,允许将颜色色调作为 lambda 传递,以避免重组。(I5b5a2)
- 顶部应用栏 API 现在支持固定和可折叠部分的自定义高度。(Ib8b0c, b/323403446)
API 更改
- 顶部应用栏 API 现在支持固定和可折叠部分的自定义高度。修复了导致单行顶部应用栏在滚动内容时重组次数过多的问题。解决了
MediumTopAppBar
在大字体/显示设置设备上截断标题的问题。(Ib8b0c, b/323403446, b/300953236, b/286296147, b/330410290, b/308540676) SegmentedButton
和相关 API 现已稳定 (I8a158)SwipeToDismissBox
、SwipeToDismissBoxDefaults
、SwipeToDismissBoxState
和SwipeToDismissBoxValue
现已标记为稳定版。(I5f000)- 移除了已弃用的
DismissDirection
和DismissValue
枚举和 API。(I89ccd) - 为 Carousel 的
CarouselState
伴生对象添加了实验性标签。(I94154) - 弃用
LocalMinimumInteractiveComponentEnforcement
并引入LocalMinimumInteractiveComponentSize
来替代它。(I7a7ac) SearchBarColors
构造函数现在是公共的。(I769ca)- 为
SwipeToDismissBox
添加了gesturesEnabled
参数。(Idc59f, b/324170119) - 移除了标记为已弃用和实验性的文本字段 API。(I1305f)
版本 1.3.0-alpha03
2024年3月20日
androidx.compose.material3:material3-*:1.3.0-alpha03
发布。版本 1.3.0-alpha03 包含这些提交。
视觉突破性更改
- 更新焦点状态叠加层为 0.1f,以确保足够的颜色对比度。(I7ea77)
- 对
lightColorScheme
和darkColorScheme
中的表面和背景颜色默认值进行了微调。(I9db52)
新功能
- 添加了参数以自定义
ExposedDropdownMenu
。特别是,菜单现在有一个focusable
参数(默认为true
),当使用可编辑文本字段时,应将其设置为false
。(I4184c, b/323694447, b/278609042)
API 更改
ScaffoldSubcomposeInMeasureFix
标志已移除。(Ie2a4b)NavigationRailItemColors
现在标记为@Immutable
。(If6112, b/327660613)NavigationBarItemColors
现在标记为@Immutable
。(I42a30, b/298064514)- 重排 Slider Track composable 中的参数。(I9f315)
ExposedDropdownMenu
现在使用Popup
实现。行为应该相同,只是可聚焦菜单与可编辑文本字段结合使用时,在键盘输入时可能会被关闭。
Bug 修复
- 表面和表面容器基准角色已略作调整,在浅色和深色主题中提供了更多色调。(I677a5)
- 更新了 Slider 和
ProgressIndicator
颜色,以遵循新的非文本对比度规范。(I26807) - 更新焦点状态叠加层为 0.1f,以确保足够的颜色对比度。(I7ea77)
- 对
lightColorScheme
和darkColorScheme
中的表面和背景颜色默认值进行了微调。(I9db52)
版本 1.3.0-alpha02
2024 年 3 月 6 日
androidx.compose.material3:material3-*:1.3.0-alpha02
发布。版本 1.3.0-alpha02 包含这些提交。
API 更改
- 再次使滑块状态稳定。再次将
State.onValueChangeFinished
设为 val。将onValueChangeFinished
包装在rememberUpdatedState
中。(I82ab2, b/322269951) - 导航组件现在使用新的
SurfaceContainer
角色。DrawerDefaults
现在提供独立的standardContainerColor
和modalContainerColor
属性。DrawerDefaults.ModalDrawerElevation
现在为0.dp
。(I7fbac) - 从
Slider
的状态中移除@Stable
,因为我们正在将state.onValueChangeFinished
更改为var
。(Ied34a, b/322269951) ModalBottomSheet
和StandardBottomSheet
动画规范现在是TweenSpec
,已从弹簧动画更新。这解决了可见过冲的问题。不带密度的SheetState
构造函数现已弃用。(I7babc, b/285847707)
Bug 修复
- 组件现在使用
SurfaceContainer
变体。以前使用 Surface 和TonalElevation
计算颜色的组件,现在默认使用SurfaceContainer
角色,这些角色不受色调高程影响。(b/304584161) - 修复了
ElevatedFilterChip
未选中、禁用容器颜色为黑色的 bug。(I400e6, b/322407043) - 修复了进度为 0 时不确定进度指示器的问题 (Id6582)
- 修复了 RTL 布局中
Slider
和RangeSlider
的问题 (Iab0e1) - 为滑块范围计算添加了
SliderRangeTolerance
,因为浮点数舍入可能不准确。(Ic918a, b/324934900) - 确保
DatePickerDialog
在嵌套DateRangePicker
或在屏幕较小、字体较大时显示任何类型的日期选择器时,都能显示其按钮。(Ie4758, b/325107799, b/277768544) Menu
现在利用SurfaceContainer
角色作为容器颜色。MenuDefaults.TonalElevation
现在为0.dp
。(I135b7)TextField
现在利用SurfaceContainerHighest
角色作为容器颜色。(I4dced)- 高架芯片现在利用
SurfaceContainerLow
角色 (I7cd2f) DatePicker
容器颜色现在是SurfaceContainerHigh
。DatePickerDefaults.TonalElevation
现在是0.dp
。(Ida753)- 更新底部工作表容器颜色和拖动手柄颜色。(I72a0a)
RichTooltip
容器颜色现在是SurfaceContainer
。(Ia8b45)SearchBar
容器颜色现在是SurfaceContainerHighest
。SearchBarDefaults.TonalElevation
现在是0.dp
。(I88604)- 更新了开关禁用和未选中状态的轨道/图标,以利用
SurfaceContainerHighest
颜色角色。(I7687a) AlertDialog
容器颜色现在是SurfaceContainerHigh
。(Ie0433)BottomAppBar
容器颜色现在是SurfaceContainer
。TopAppBar
onScroll
颜色现在是SurfaceContainer
。(I41630)ElevatedCard
容器颜色现在是SurfaceContainerLow
。FilledCard
的容器颜色为SurfaceContainerHighest
。(I35141)ElevatedButton
容器颜色现在是SurfaceContainerLow
。未选中的FilledIconButton
的容器颜色现在是SurfaceContainerHighest
。(I792c9)- 更新
TimePicker
容器颜色和时钟表盘颜色角色为SurfaceContainerHighest
。(I43b93)
版本 1.3.0-alpha01
2024 年 2 月 21 日
androidx.compose.material3:material3-*:1.3.0-alpha01
发布。版本 1.3.0-alpha01 包含这些提交。
新功能
- 更新 Compose M3
ModalBottomSheet
以支持 U+ 上的预测返回 (Iccf32, b/281967264, b/304850357) - 更新 Compose M3
SearchBar
以支持 U+ 上的预测返回 (I657f8) - 更新了 Slider,通过添加间隙和停止指示器来提高可访问性。(I3058e)
- 更新了
ProgressIndicator
以通过添加间隙和停止指示器来改善可访问性。(I21451) - 为富工具提示添加了默认的尖角,新的富工具提示 API 现在允许在给定锚点
LayoutCoordinates
的情况下绘制自定义尖角。(Ifd42c)
行为变更
- Material 组件已迁移为使用新的涟漪 API,不再查询
RippleTheme
。
API 更改
- 函数
drawStopIndicator
现已公开。(I3f59f) - 将
DatePicker
的formatWithSkeleton
函数标记为内部函数 (Ic65dc) DropdownMenu
现在支持自定义颜色、形状、高程和边框。(I8e981, b/289554448, b/301887035, b/283654243)- 在 API 中公开
MutableInteractionSource
的 Material3 组件已更新为现在公开可空的MutableInteractionSource
,其默认值为null
。这里没有语义上的更改:传递 null 意味着您不希望提升MutableInteractionSource
,如果需要,它将在组件内部创建。更改为 null 允许某些组件从不分配MutableInteractionSource
,并允许其他组件仅在需要时惰性创建实例,这提高了这些组件的性能。如果您不使用传递给这些组件的MutableInteractionSource
,建议您传递 null。也建议您在自己的组件中进行类似的更改。(I41abb, b/298048146) - 添加了
RippleConfiguration
和LocalRippleConfiguration
,以允许使用固定值对涟漪效果进行每个组件/子树的自定义。例如,要更改您无法控制的组件的颜色,或禁用组件的涟漪效果。在大多数情况下,应使用默认值:这些 API 是用于自定义单个组件/有限子树的逃生口。对于更广泛的更改和自定义设计系统,您应该改用createRippleModifierNode
构建自己的涟漪效果。(I7b5d6, b/298048146) - 在 Material3 中添加了新的涟漪 API,它取代了已弃用的
rememberRipple
。还添加了一个临时CompositionLocal
,LocalUseFallbackRippleImplementation
,以使 Material3 组件恢复使用已弃用的rememberRipple
/RippleTheme
API。这将在下一个稳定版本中移除,并且仅作为在您提供自定义RippleTheme
的情况下临时迁移的辅助。(I34cbc, b/298048146)
Bug 修复
- 移除了
ModalBottomSheet
内部的子组合,以提高性能。修复了ModalBottomSheet
在特定情况下与LookaheadScope
结合使用时可能崩溃的问题。(I2a198) - 移除了
BottomSheetScaffold
内部的子组合,以提高性能。修复了BottomSheetScaffold
在特定情况下与LookaheadScope
结合使用时会崩溃的问题。(Ie6401) - 调整了徽章对齐方式,使其更靠近锚点内容的中心,相对于右上角。(I18a28)
- 修复了
DateRangePicker
的辅助功能问题,其中月-年文本标题对屏幕阅读器、开关访问和语音访问用户来说被传达为可操作的。(I2ac55) - 修复了
mediumTopAppBarColors
参数顺序错误。(Ibe64a)
版本 1.2
版本 1.2.1
2024 年 3 月 6 日
androidx.compose.material3:material3-*:1.2.1
发布。版本 1.2.1 包含这些提交。
Bug 修复
- 再次使 Slider 状态稳定。再次将
State.onValueChangeFinished
设为 val。将onValueChangeFinished
包装在rememberUpdatedState
中。(Ie8fd0, b/322269951) - 从
Slider
的状态中移除@Stable
,因为我们正在将state.onValueChangeFinished
更改为var
。(I82ba1, b/322269951) - 修复
NavigationBar
自定义颜色从默认值复制的问题。(80a779, b/326894020) - 修复
ExposedDropdownMenu
中的回归问题,使其再次可聚焦 (3fcec1, b/323694447) - 修复按钮颜色缓存问题 (3e5bbcb/327371655)
版本 1.2.0
2024 年 2 月 7 日
androidx.compose.material3:material3-*:1.2.0
发布。版本 1.2.0 包含这些提交。
已知问题
PrimaryTabRow
中引入了一个 View-Compose 互操作渲染 bug,这是作为一项性能改进更改的一部分引入的。解决方法是使用TabRow
与TabRowDefaults.PrimaryIndicator
自 1.1.0 以来的重要变更
新的 Material Design 3 组件
- 下拉刷新
- 分段按钮
对现有 Material Design 3 组件的增强。
- 底部应用栏(RTL 对齐,滚动时自动隐藏)
- 选项卡视觉更新
- 徽章(对齐更新)
将实验性 API 提升为稳定版!
性能改进
- 更多详情请参阅此博客文章!
版本 1.2.0-rc01
2024 年 1 月 24 日
androidx.compose.material3:material3-*:1.2.0-rc01
发布。版本 1.2.0-rc01 包含这些提交。
Bug 修复
- 修复了
mediumTopAppBarColors
参数顺序错误。(Ibe64a) - 修复了在
1.2.0-beta02
中引入的CardDefaults.cardColors
中的一个错误,该错误没有根据containerColor
参数值更新contentColor
。(Iee041, b/319671246) - 修复了在
1.2.0-beta02
中引入的disabledContentColor
中的一个错误,并添加了小的优化。(I6dda1, b/318428829)
版本 1.2.0-beta02
2024 年 1 月 10 日
androidx.compose.material3:material3-*:1.2.0-beta02
发布。版本 1.2.0-beta02 包含这些提交。
已知错误
IconButtonColors
中的一个错误默认会将disabledContentColor
分配给LocalContentColor
的 alpha (0.38f),而不是用户指定的contentColor
。解决方法是显式设置disabledContentColor
。这将在下一个版本中修复。
API 更改
- 增加了为 Plain
Tooltip
API 启用工具提示尖角的功能。(Ibf767) SwipeToDismissState
、rememberSwipeToDismiss
和SwipeToDismissValue
都已重命名为_SwipeToDismissBox_
。(I68d6d)
Bug 修复
- 修复了
ListItem
末尾填充值以与规范对齐。(Ibd68b, b/305342674) - 外框卡的轮廓颜色现在正确映射到
OutlineVariant
。(I75480, b/310979715) - 动态颜色现在从系统定义的颜色角色中提取。这改善了可访问内容的对比度,并使动态颜色更接近 Material 规范。(I1de96)
- 修复了在 Android T/13+ 上,当
android:enableOnBackInvokedCallback="true"
时,ModalBottomSheet
后退处理的问题。(I728dc, b/306196110)
版本 1.2.0-beta01
2023 年 12 月 13 日
androidx.compose.material3:material3-*:1.2.0-beta01
发布。版本 1.2.0-beta01 包含这些提交。
API 更改
- 将
TabIndicatorScope
标记为实验性。(I45c88) - 移除了已弃用的实验性工具提示 API。(I438cb)
- 更改新的
TabRow
重载,使其不使用子组合。这导致了以不同方式构建带有自定义修饰符的TabRow
指示器。(Ife741) - 弃用
DismissDirection
和DismissValue
API。这些已合并到SwipeToDismissValue
,其值指示SwipeToDismissBox
的位置和方向。DismissState.progress
现在标记为0.0
和1.0
之间的FloatRange
。DismissState
弃用的 Saver 和构造函数现已移除。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)- 将 Modifier 工厂函数标记为
@Stable
。(Ib109f)
版本 1.2.0-alpha11
2023 年 11 月 15 日
androidx.compose.material3:material3-*:1.2.0-alpha11
发布。版本 1.2.0-alpha11 包含这些提交。
新功能
- 实现了
PullToRefreshContainer
和PullToRefreshState
,它们共同提供了 Material3 中的下拉刷新实现。(I16456, b/261760718)
API 更改
- 将
SwipeToDismissBox
的DismissDirection
和DismissValue
标记为实验性。(I517b0) - 将
SwipeToDismiss
重命名为SwipeToDismissBox
。将background
重命名为backgroundContent
,将dismissContent
重命名为 trailingcontent
lambda。(I7f4d3) - 使
ChipElevation
和SelectableChipElevation
的构造函数公开。(Ie0c48, b/308432421) - 添加
ModalBottomSheetProperties
。将securePolicy
移入ModalBottomSheetProperties
。将isFocusable
和shouldDismissOnBackPress
添加到ModalBottomSheetProperties
。这些新的布尔值有助于确定模态底部工作表应如何处理 IME 事件。(Iea56f, b/278216859) - 更新了
RangeSlider
和Slider
状态,以移除initialOnValueChange
、初始前缀以及相应的 kdocs。(I57d30) - 弃用
ChipBorder
类及其相关函数调用,建议直接使用BorderStroke
。(I89cc2) - Foundation Tooltip APIs 现在是
@ExperimentalFoundationApi
。(I30b0b) TabRow
和ScrollableTabRow
不再被弃用。新的主要和次要变体被标记为实验性。(I0def6)- 筛选和输入芯片现在直接使用
BorderStroke
。(I07a8d) SegmentedButton
现在直接使用BorderStroke
。(I89b9b)- 将通用
AlertDialog
函数重命名为BasicAlertDialog
,并弃用以前的函数。(Idbe52) - 将
SwipeToDismiss
API 重命名为SwipeDismiss
,并将新的SwipeDismiss
API 提升为稳定版。(I14cbe) - 为工具提示 API 添加
tonalElevation
和shadowElevation
。此外,将TooltipBox
、PlainTooltip
和RichTooltip
API 移回实验性阶段,因为它们意外地作为稳定版发布。(If0f66, b/293939035) - 将实验性芯片 API 提升为稳定版。(Iea2c3)
- 从 Material3 可点击卡片中移除了
@ExperimentalMaterial3Api
注解。(I88dbf)
Bug 修复
- 修复了
SwipeToDismiss
在某些情况下与嵌套的 Lookahead 和 Lazy 布局结合使用时会崩溃的问题。(Ica8d1, b/297226562)
版本 1.2.0-alpha10
2023年10月18日
androidx.compose.material3:material3-*:1.2.0-alpha10
发布。版本 1.2.0-alpha10 包含这些提交。
API 更改
- 将
Badge
和BadgedBox
提升为稳定版。(I67f16, b/261565132) - 将
securePolicy
作为参数添加到ModalBottomSheet
,以便用户可以定义WindowManager.LayoutParams.FLAG_SECURE
的行为。(Icdac8, b/296250262) - 添加了
LinearProgressIndicator
和CircularProgressIndicator
的新重载,它们将progress
作为 lambda。这些应该比以前的版本性能更好。(I824e6, b/295616656) - 将
StandardSizeClasses
重命名为AllSizeClasses
。(I8cb07) - 合并窗口大小类的计算函数。(Iad935)
Bug 修复
- 修复了
DatePicker
在显示月份位于允许年份范围边缘时,快速点击导航箭头按钮导致崩溃的问题。(I46f36, b/290954897, b/297002119) - [导航栏/底栏] 支持指示器透明颜色。(Ie0a9b, b/267289987)
版本 1.2.0-alpha09
2023年10月4日
androidx.compose.material3:material3-*:1.2.0-alpha09
发布。版本 1.2.0-alpha09 包含这些提交。
API 更改
- 将
ModalNavigationDrawer
和DismissibleNavigationDrawer
迁移到新的AnchoredDraggable
API。DrawerState
的animateTo
已被 open 和 close 方法取代,偏移量现在公开为浮点数而不是状态对象。您可以通过currentOffset
直接访问偏移量。(I0a72c) - 已添加非 Composable 函数,用于直接创建
DatePickerState
和DateRangePickerState
。这些函数可以在需要时作为 ComposablerememberDatePickerState
和rememberDateRangePickerState
函数的替代方案。(I70326, b/291524052) - 固定和可滚动
TabRows
现在有主次变体。它们正确映射到 Material3 中定义的颜色和指示器行为。 PrimaryScrollableTabRow
和SecondaryScrollableTabRow
现在公开滚动状态。(Iec8f5, b/260572337)- 添加了新的
sheetMaxWidth
参数,开发人员可以设置该参数来指定工作表将跨越的最大宽度。如果需要跨越整个屏幕宽度的工作表,可以为该参数传入 Dp.Unspecified。(Ifb7c9, b/266697696) - 添加回
PlainTooltipBox
和RichTooltipBox
API 作为已弃用的方法。(I246fa)
Bug 修复
- 修复了
DatePicker
在使用某些日期骨架的DatePickerFormatter
初始化时发生的崩溃问题,这些骨架在转换为日期模式时保持不变(例如 YY)。(I01f29)
版本 1.2.0-alpha08
2023年9月20日
androidx.compose.material3:material3-*:1.2.0-alpha08
发布。版本 1.2.0-alpha08 包含这些提交。
行为突破性更改
ColorScheme
现在是不可变的,这使得单个颜色更新效率较低,但使更常见的颜色使用效率更高。此更改的原因是,大多数应用程序不会将更新单个颜色作为主要用例。这仍然是可能的,但它会比以前更频繁地重组,反过来我们显著减少了 Material 代码中状态订阅的数量,并将影响更标准用例的初始化和运行时成本。(Ic447d, b/297212873)- 色调高程不再在不同的交互状态下动画以匹配规范。(Icdd12)
API 更改
- 添加了一个新的
BottomAppBar
,它接受BottomAppBarScrollBehavior
作为参数,以便在内容滚动时自动隐藏。还添加了FabPosition.EndOverlay
,允许 FAB 在 Scaffold 中覆盖底部应用栏,而不是锚定在其上方。(Iecb47) - 添加了一个简单的 Label 组件,它建立在
BasicTooltipBox
之上,在点击标签边界外部时不会消失。(I821f9)
Bug 修复
- 移除了工具提示对
rememberSaveable
的使用。(Icc131, b/299500338) - 引入了一个临时标志来控制 Scaffold 是否在测量期间或放置期间测量其子级。默认情况下,这将在测量期间测量。如果您遇到新行为的问题,请提交问题。(I0b354)
- 通过使用正确的设备屏幕宽度测量值,修复了
BottomSheet
中的横向边缘到边缘问题。(I1df0c, b/299058752) - 修复了
ModalBottomSheet
在通过向下滑动工作表关闭时未调用onDismissedRequest
的问题。(Idfdd8)
版本 1.2.0-alpha07
2023年9月6日
androidx.compose.material3:material3-*:1.2.0-alpha07
发布。版本 1.2.0-alpha07 包含这些提交。
新功能
compose material 1.6.0-alpha05
中已添加自动镜像图标支持,请参阅发行说明以了解自动镜像图标的详细信息。
API 更改
SliderState
实现DraggableState
(I9b116)- 将 shape 设为必需参数。在 shape 辅助函数中将
position
重命名为index
。(I34941) - 更新
DatePicker
formatWithSkeleton
以包含一个用作缓存以提高性能的映射。(I3195f) - 在
compose.foundation
中添加了BasicTooltipBox
,并更新了PlainTooltipBox
和RichTooltipBox
以使用TooltipBox
和新的PlainTooltip
及RichTooltip
可组合项。(I79e1d)
Bug 修复
dynamicLightColorScheme
和dynamicDarkColorScheme
现在为 surface 和surfaceContainer
角色返回更高饱和度的颜色。(I5e901)- 修复了在
LookaheadScope
中使用 Scaffold,且 Scaffold 内部使用 Subcomposition (例如BottomSheetScaffold
) 时,某些组件过早尝试读取其大小的问题。(I297b4, I871f1, b/295536718)
版本 1.2.0-alpha06
2023 年 8 月 23 日
androidx.compose.material3:material3-*:1.2.0-alpha06
已发布。版本 1.2.0-alpha06 包含这些提交。
Bug 修复
- 修复了
DropdownMenu
的offset
计算,现在 x 偏移量仅取决于局部布局方向,当菜单靠近屏幕底部时,y 偏移量将不再反转。(Iccc74, b/294103942) - 修复了
DropdownMenu
的offset
计算,现在 x 偏移量仅取决于局部布局方向,当菜单靠近屏幕底部时,y 偏移量将不再反转。(Ib87a2, b/294103942)
版本 1.2.0-alpha05
2023 年 8 月 9 日
androidx.compose.material3:material3-*:1.2.0-alpha05
已发布。版本 1.2.0-alpha05 包含这些提交。
API 更改
- Checkbox 和
TriStateCheckbox
颜色更新。CheckboxDefaults.colors()
的disabledUncheckedColor
现在只影响 Checkbox 的边框。当禁用和未选中时需要设置内部框颜色的特殊情况,需要自定义构造CheckboxColors
实例并指定所需的颜色值。(I77d17, b/291943198)
版本 1.2.0-alpha04
2023 年 7 月 26 日
androidx.compose.material3:material3-*:1.2.0-alpha04
已发布。版本 1.2.0-alpha04 包含这些提交。
新功能
- 实验性分段按钮 API (Ifc8fb)
- 分割线现在有一个参数用于控制方向,以支持垂直分割线。(I4c899, b/288438593)
API 更改
- 我们正在将密度依赖性移动到组件级别。这适用于以下组件:
SwipeToDismiss
和基于 Sheet 的组件。请使用新提供的以密度为参数的重载。(I1846e) - 用于指定可组合项允许输入的附加注解 (Ief234)
- 为分段按钮添加图标参数,拆分语义,以便分段按钮可以是可选择的以实现单选,也可以是可切换的以实现多选,分别通过
SelectableSegmentedButtonRow
和ToggelableSegmentedButtonRow
实现。(I38740) - Divider 已重命名为
HorizontalDivider
。添加了VerticalDivider
功能。(I5975c) - 在实验性 Material3 API 中,将
ClosedFloatingPointRange
的使用更改为更轻量的FloatRange
,以最大程度地减少自动装箱。(I4aab5) - 为
FabPosition
添加了新的 Start 对齐方式 (Ib7aea, b/170592777)
Bug 修复
ModalBottomSheet
尊重局部布局方向。(Ib4f44, b/285628622)
版本 1.2.0-alpha03
2023 年 6 月 21 日
androidx.compose.material3:material3-*:1.2.0-alpha03
已发布。版本 1.2.0-alpha03 包含这些提交。
行为变更
- Material 3 排版中,
includeFontPadding
现在默认为false
。默认行高样式也已更改为Trim.None
和Alignment.Center
,并且已将明确的lineHeight
(以 sp 为单位) 添加到Typography
的TextStyle
s 中。如果您想自定义这些值,请查阅API 文档,有关这些更改的深入解释,请参阅博客文章。(I6266f, Icabc3)
新功能
- 为
RangeSlider
添加了一个重载,它是组件的状态版本。创建了RangeSliderState
,它包含当前活动轨道的全部信息、RangeSlider
组件的测量值以及拖动和手势逻辑。(I8c270) - 搜索栏现在通过新添加的
shadowElevation
参数支持阴影。(Ia5369, b/271040353) ColorScheme
现在支持新的SurfaceContainer
角色。- 表面色调高程叠加现在可以通过
LocalTonalElevationEnabled
组合本地禁用。(Ic203c, b/277774590)
API 更改
- 打开组件颜色构造函数。(I8c4a6)
- 为两个工具提示 API 添加了 focusable 参数,以便开发者可以控制工具提示是否消耗触摸事件。请注意,这可能会破坏可访问性焦点自动遍历。(Ie32d8)
- 优化了可访问性以提高性能和内存分配。(Iede48)
- 公开
DefaultSizeClasses
并为WindowSizeClasses
创建StandardSizeClasses
(I91838) - 将
WindowWidth/HeightSizeClass
更改为浮点值类 (Ie686e)
Bug 修复
- Scaffold 的
contentWindowInsets
参数现在尊重已消耗的窗口内边距。请注意,当提供topBar
和bottomBar
参数时,基于这些参数的内容填充行为保持不变。(I08b73, b/264601542) - 修复了中心顶部应用栏的对齐方式,以确保长标题不会渲染到操作图标或导航图标之上。(I4369f, b/236994621)
- Tab 位置现在强制执行最小内容宽度为 24.dp。这为 Tab 指示器提供了可访问的触摸目标。(Id8861)
- 来自
dynamicLightColorScheme
和dynamicDarkColorScheme
的动态调色板现在支持新的表面角色。(I1252e) - 更新了徽章通知的对齐方式,使其在与曾祖父组件碰撞时不会被裁剪。(Idf75a)
版本 1.2.0-alpha02
2023 年 5 月 24 日
androidx.compose.material3:material3-*:1.2.0-alpha02
已发布。版本 1.2.0-alpha02 包含这些提交。
API 更改
- 为
ModalBottomSheet
添加了窗口内边距参数。ModalBottomSheet
的背景遮罩现在可以在状态栏后面绘制,windowInsets
设置为零。- 更新了默认
ModalBottomSheet
功能,使其保持在包括导航栏在内的系统栏之外。 - 在边缘到边缘模式下,状态栏内边距处理由拖动手柄提供。
BottomSheetDefaults
包含BottomSheetWindow
的窗口内边距。(I31200, b/274872542, b/272973615, b/272334475, b/268432129, b/275849044, b/275486106, b/268433162)
- 弃用
Indicator
,并添加Primary
/SecondaryIndicator
以匹配 M3 规范。PrimaryIndicator
匹配 Tab 内容的宽度,而SecondaryIndicator
跨越所有可用宽度。SecondaryIndicator
等同于现已弃用的Indicator
,可以直接替代。(I27604) - 在构造
DropdownMenu
或ExposedDropdownMenu
时,添加了一个传递ScrollState
的选项,用于控制显示菜单项的垂直滚动状态。(Ia0734, b/185304441) - 为
Slider
添加了一个重载,它是组件的状态版本。创建了SliderState
,它包含当前活动轨道的全部信息、Slider
组件的测量值以及拖动和手势逻辑。(I124a5) - 将 Semantics 属性
isContainer
重命名为isTraversalGroup
(I121f6) - 添加了优化后的
TextStyle.merge(...)
,包含完整参数列表。(Iad234, b/246961787) - 将
TooltipState
、RichTooltipState
和PlainTooltipState
设为公共接口。为默认状态添加了RichTooltipStateImpl
和PlainTooltipStateImpl
。添加了remember*State
函数以获取这些已实现的状态。删除了TooltipSync
,转而使用TooltipDefault.GlobalMutatorMutex
。(I7813d) - 更新了
DatePickerColors
,以包含日期选择器分隔线、导航和文本输入字段颜色的额外自定义选项。(I1a685, b/274626815) DatePickerState
和DateRangePickerState
现在是公共接口,具有可以通过rememberDatePickerState
和rememberDateRangePickerState
检索的默认实现。(I71c52)- 从
DatePicker
和DateRangePicker
中移除了dateValidator
,并引入了一个SelectableDates
接口,可以在状态上设置该接口以控制 UI 中哪些日期或年份可选。(Ic2fc6) TimePicker
已从稳定 API 中移除,状态 API 预计会有进一步的更改 (I3f39a)ModalBottomSheet
已移至仅限 Android。不建议将ModalBottomSheet
用于桌面端,且其功能未积极维护。(Ib3778)
Bug 修复
- 修复了
AlertDialog
的 dismiss 操作,使其在操作堆叠以适应对话框宽度时出现在 confirm 操作下方。此修复使实现与 Material Design 规范保持一致。(I029de, b/235454277) - 修复了
ListItem
使用不正确的三行项目填充的问题。(I6e235) ModalBottomSheet
现在可以显示 IME 键盘 (Idc508, b/262140644, b/268380384, b/272483584)
版本 1.2.0-alpha01
2023 年 5 月 10 日
androidx.compose.material3:material3:1.2.0-alpha01
和 androidx.compose.material3:material3-window-size-class:1.2.0-alpha01
已发布。版本 1.2.0-alpha01 包含这些提交。
版本 1.1
版本 1.1.2
2023年9月20日
androidx.compose.material3:material3:1.1.2
和 androidx.compose.material3:material3-window-size-class:1.1.2
已发布。版本 1.1.2 包含这些提交。
Bug 修复
- 修复了修饰符被错误地传递给两个可组合项的问题。(b/282761472)
- 修复了
TimePickerState
在用 23 小时初始化时返回不正确小时数的问题。(b/278242122) - 修复了中午和分钟验证的初始切换状态。(b/269768197, b/282790635)
- 修复了
state.hour
对于晚上 11 点返回不正确值的问题。(b/282761472, b/278242122)
版本 1.1.1
2023 年 6 月 21 日
androidx.compose.material3:material3:1.1.1
和 androidx.compose.material3:material3-window-size-class:1.1.1
已发布。版本 1.1.1 包含这些提交。
Bug 修复
- 添加了不带
windowInset
参数的ModalBottomSheet
调用以实现二进制兼容性。(Ib7959) - 为
ModalBottomSheet
添加了窗口内边距参数。ModalBottomSheet
的背景遮罩现在可以在状态栏后面绘制,windowInsets
设置为零。- 更新了默认
ModalBottomSheet
功能,使其保持在包括导航栏在内的系统栏之外。 - 在边缘到边缘模式下,状态栏内边距处理由拖动手柄提供。
BottomSheetDefaults
包含BottomSheetWindow
的窗口内边距。(I31200, b/274872542, b/272973615, b/272334475, b/268432129, b/275849044, b/275486106, b/268433162)
版本 1.1.0
2023 年 5 月 10 日
androidx.compose.material3:material3:1.1.0
和 androidx.compose.material3:material3-window-size-class:1.1.0
已发布。版本 1.1.0 包含这些提交。
1.1.0 的主要功能
新的 Material Design 3 组件
- 底部工作表 (Bottom sheets)
- 日期选择器 (Date pickers)
- 搜索 (Search)
- 滑动以关闭 (SwipeToDismiss)
- 时间选择器 (Time Pickers)
- 工具提示 (Tooltips)
对现有 Material Design 3 组件的增强。
将实验性 API 提升为稳定版!
请参阅此博客文章了解更多详情!
版本 1.1.0-rc01
2023 年 4 月 19 日
androidx.compose.material3:material3:1.1.0-rc01
和 androidx.compose.material3:material3-window-size-class:1.1.0-rc01
已发布。版本 1.1.0-rc01 包含这些提交。
API 更改
TimePicker
已从稳定 API 中移除,状态 API 预计会有进一步的更改 (I3f39a)ModalBottomSheet
已移至仅限 Android。不建议将ModalBottomSheet
用于桌面端,且其功能未积极维护。(Ib3778)
版本 1.1.0-beta02
2023 年 4 月 5 日
androidx.compose.material3:material3:1.1.0-beta02
和 androidx.compose.material3:material3-window-size-class:1.1.0-beta02
已发布。版本 1.1.0-beta02 包含这些提交。
API 更改
SheetState
现在具有可选的skipHiddenState
参数。rememberStandardBottomSheetState
现在具有可选的skipHiddenState
参数。BottomSheetScaffold
现在有一个定义的 Hidden 锚点,尽管它默认禁用。SheetState.requireOffset
文档已更新。BottomSheetDefaults.MinimizedShape
已重命名为BottomSheetDefaults.HiddenShape
(I839f4, b/273870234)
Bug 修复
- 当启用触摸探索时,不要将拨号盘从小时切换到分钟。(I717d0)
ModalBottomSheet
和BottomSheetScaffold
拖动手柄的语义现在已合并。(I05afb)BottomSheetScaffold
的 modifier、containerColor
和contentColor
参数现在仅影响内容。(I992cb)BottomSheetScaffold nestedScroll
用于工作表内容现在实现了快速滑动。(I992cb)
版本 1.1.0-beta01
2023 年 3 月 22 日
androidx.compose.material3:material3:1.1.0-beta01
和 androidx.compose.material3:material3-window-size-class:1.1.0-beta01
已发布。版本 1.1.0-beta01 包含这些提交。
API 更改
- 为
TimePicker
可组合项添加了布局类型参数。它允许根据屏幕配置使用不同的布局。(Ia0e16) SearchBarDefaults
已标记为实验性。(I65561)- 为
BottomSheetScaffold
添加了阴影高程 (I94e0f) - 添加了对不带标题部分的日期选择器显示的支持。API 更改允许在创建日期选择器时传递空标题。您现在可以传递空 headline、title 和
showToggleMode = false
以显示无标题选择器。(Id3f3a, b/266132421, b/267194809)
Bug 修复
- 搜索栏现在在变为非活动状态时自动清除焦点。(I22a7c, b/261444487)
- 更新了
DateRangePicker
,允许选择开始和结束日期相同的范围。(I16529, b/272882497) - 文本字段现在在其文本元素字体大小小于预期时正确定位。根据字体设置和脚本,这可能会导致您的应用程序出现几个像素的差异。(I8b8d0)
- 底部工作表语义操作现在有标签。(I277b0)
版本 1.1.0-alpha08
2023 年 3 月 8 日
androidx.compose.material3:material3:1.1.0-alpha08
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha08
已发布。版本 1.1.0-alpha08 包含这些提交。
新功能
- 添加了对
BottomSheetScaffold
和BottomSheetScaffoldState
的支持。(I063d4)
API 更改
- 为
DatePickerState
和DateRangePickerState
添加了功能,允许在状态初始创建后设置日期,以及通过设置 null 时间戳来重置选择。手动设置日期应谨慎进行,如果提供的日期不满足前提条件(请参阅文档),新的setSelection
函数将抛出异常。(Ifa645, b/268609314, b/270427389) - 将 Collapsed
SheetValue
重命名为PartiallyExpanded
,以更准确、灵活地描述此状态下的行为。(Ia1491) - 更新了
ListItem
参数名称,将 _text 更改为 _content。默认 getter 现在在相关时为ReadOnlyComposables
。(I69a25) - 将交互式 Surface API 从实验性升级。(I90d59, b/261561812)
Bug 修复
- 修复了
ModalBottomSheet
的HalfExpanded
状态计算不正确导致工作表看起来漂浮的问题。(I45e84, b/268411386) - 为
ModalBottomSheet
的背景遮罩点击添加confirmValueChange
检查。(I2311a, b/270425759) - 将语义
BottomSheet
操作移动到拖动手柄。(I158ba) ModalBottomSheet
现在在启动时强制获取焦点,并处理返回按钮。(I4d2ab)ModalBottomSheet onDismissRequest
现在在嵌套滚动快速滑动期间也得到处理。(I655c5, b/268433166)
版本 1.1.0-alpha07
2023 年 2 月 22 日
androidx.compose.material3:material3:1.1.0-alpha07
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha07
已发布。版本 1.1.0-alpha07 包含这些提交。
新功能
- 添加了一个 Time Input 可组合项,它与
rememberTimePickerState()
配合使用,并遵循 M3 规范进行时间输入。(Ia4fab) - 添加了 Material 3
DateRangePicker
API,用于选择日期范围。(I7a6c3, b/267194809) - 为通过
DateRangePicker
API 选择日期范围添加了 Material 3 输入模式支持。(Ifdbc4) - 文本字段颜色现在允许自定义:
- 输入字段和占位符文本颜色基于焦点和错误状态。
textColor
参数已重命名为unfocusedTextColor
,placeholderColor
已重命名为unfocusedPlaceholderColor
。 - 填充文本字段的容器颜色基于错误状态,使用新的
errorContainerColor
参数。
- 输入字段和占位符文本颜色基于焦点和错误状态。
- 暴露的下拉菜单文本字段颜色已更新,带有参数以支持新的前缀和后缀 API。(I9c8b4, b/254284181, b/264766350)
API 更改
- 恢复了一些 Slider API 版本,并移除了新实验性 Slider (带自定义滑块和轨道) 所覆盖的冗余 Slider 重载。将
RangeSlider
提升为稳定版。(Ie8fbd) - 将 chip 的 elevation 函数中的
defaultElevation
重命名为elevation
。(I0f872) - 以下 Material 3 文本字段 API 不再是实验性:
TextField
、OutlinedTextField
、textFieldWithLabelPadding
、textFieldWithoutLabelPadding
、outlinedTextFieldPadding
。(Ieb5c0, b/261561819) TimePickers
的is24Hour
使用系统设置。(I18856)- 从 Scaffold API 中移除了实验性注解。(Ibb51e, b/261565765, b/261436953)
Bug 修复
ModalBottomSheet
的默认形状现在始终是SheetDefaults.ExpandedShape
。(I0dfca)- Material 3
DatePicker
和DateRangePicker
的可访问性改进。(I5087e) - 修复了最大高度约束被传播并可能导致崩溃的 bug。(I30d8c)
- 从可点击和可选择的表面中移除了语义角色,并更新了使用它们的组件,以使用 modifier.semantics 设置角色。(I793d9)
版本 1.1.0-alpha06
2023 年 2 月 8 日
androidx.compose.material3:material3:1.1.0-alpha06
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha06
已发布。版本 1.1.0-alpha06 包含这些提交。
新功能
- 文本字段现在支持前缀和后缀文本 (Ia8578, b/179884561)
- 添加了
TimePicker
函数,用于显示遵循 Material 3 规范的时间选择器,与TimePickerState
和便捷方法rememberTimePickerState
配合使用。(I71910) - 日期输入现在是
DatePicker
的一种显示模式。添加了在日期选择器和日期输入模式之间切换的支持。(Ieeff7) - 添加了
RichTextTooltips
的 API。(I58ef3) - Material 3 的模态底部工作表实现,包括
ModalBottomSheet
和ModalBottomSheetDefaults
。还引入了SheetState
和rememberSheetState
,可用于未来的工作表组件。(I0853a, b/244189383)
API 更改
- 稳定化 API
showSnackbar
(I195c2, b/261424370) - 稳定化 Assist Chip 和 Suggestion Chip 的 API (Ibb67b, b/261424370)
- 将
ListItem
、ListItemDefaults
和ListItemColors
API 提升为非实验性。(I7e7fa, b/261438882) - 将
SliderPositions
、SliderDefaults.Thumb
和SliderDefaults.Track
提升为稳定版,并添加了包含自定义拇指和轨道的非实验性Slider
和RangeSlider
API。还弃用了之前的Slider
和RangeSlider
API。(Ie5ea6, b/261566890) - 使
Modifier.tooltipAnchor()
公开,以便开发者可以将其传递给锚点,以指示在长按时应显示工具提示。更新了PlainTooltipBox
API,使其不再将TooltipState
设置为可空,现在有一个默认值。(Ie2fb7) ProgressIndicatorDefaults.circularTrackColor
已标记为@Composable
以保持一致性。(Id29cc)- 恢复了属性 getter
LocalMinimuTouchTargetEnforcement
并将其标记为已弃用,重定向到LocalMinimumInteractiveComponentEnforcement
。(I60dd5)
版本 1.1.0-alpha05
2023 年 1 月 26 日
androidx.compose.material3:material3:1.1.0-alpha05
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha05
已发布。版本 1.1.0-alpha05 包含这些提交。
新功能
DatePickerDialog
和可访问性支持。- 为
RangeSlider
添加了自定义滑块和轨道。
依赖项更新
Compose UI
和Compose Material
现在依赖于 Lifecycle 2.6.0。
版本 1.1.0-alpha04
2023 年 1 月 11 日
androidx.compose.material3:material3:1.1.0-alpha04
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha04
已发布。版本 1.1.0-alpha04 包含这些提交。
新功能
- 用于通过日历 UI 选择单个日期的初始
DatePicker
API。此 API 仍在更改中。(I722b9) - 通过
PlainTooltipBox
添加了对纯文本工具提示的支持。(I0cdfb) - 搜索栏 (Iad128)
SwipeToDismiss
(I458a8, b/242889540)
API 更改
- 在 Surface 上添加了
IsContainer
语义属性。此属性将在后续更改中用于根据 Surface 等元素的语义含义确定遍历顺序。(I63379) - 将导航抽屉相关 API 标记为稳定。(Iab01e, b/261439597)
- 为圆形进度指示器添加了轨道颜色参数,为圆形和线性进度指示器添加了笔触上限参数。(Ie668c, b/216325962, b/222964817)
- 更多返回类型可空性已弃用的隐藏函数 (Ibf7b0)
- 添加了
Modifier.minimumInteractiveComponentSize
。如果元素测量尺寸较小,它可用于预留至少 48.dp 的尺寸,以消除触摸交互的歧义。(I33f58, b/258495559) - 为具有内容槽的
AlertDialog
可组合项添加了实验性 API。(Iec4a2)
Bug 修复
- 进度指示器的进度现在已正确地限制在其预期范围内。(I8a7eb, b/262262727)
已知问题
- 从
androidx.compose.foundation:1.4.0-alpha03
更新到androidx.compose.foundation:1.4.0-alpha04
时,您可能会遇到java.lang.NoSuchFieldError
错误。此处是最初报告此问题的地方。已提交修复,将在下一次 Compose 更新中提供。作为临时解决方案,请将您的androidx.compose.material
和androidx.compose.material3
库更新到最新版本 (1.1.0-alpha04),或将您的androidx.compose.foundation
降级到 1.4.0-alpha03。
版本 1.1.0-alpha03
2022 年 12 月 7 日
androidx.compose.material3:material3:1.1.0-alpha03
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha03
已发布。版本 1.1.0-alpha03 包含这些提交。
API 更改
- 将
consumedWindowInsets()
重命名为consumeWindowInsets()
,将withConsumedWindowInsets()
重命名为onConsumedWindowInsetsChanged()
,并使修饰符公开。(Ie44e1) - 为带有图标的文本按钮添加了新的默认内容填充。(I8f662)
- 添加了导航栏和导航轨道的禁用颜色。(Ia7892, b/258867034)
- 添加了一个 Modifier API 来查询祖先滚动信息。(I2ba9d, b/203141462)
- 用于
Clickable
,以便在手势可能变为滚动事件时正确延迟按下交互。 - 修复了
Clickables
在Scrollable ViewGroup
中使用时未正确延迟涟漪的问题。 - 更新了抽屉和工作表,以便在手势可能变为滚动事件时正确延迟按下。
依赖项更新
Compose UI
和Compose Material
现在依赖于 Lifecycle 2.5.1。(I05ab0, b/258038814)
版本 1.1.0-alpha02
2022 年 11 月 9 日
androidx.compose.material3:material3:1.1.0-alpha02
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha02
已发布。版本 1.1.0-alpha02 包含这些提交。
API 更改
awaitFirstDown
和waitForUpOrCancellation
现在接受PointerEventPass
以提高灵活性(也修复了ExposedDropdownMenuBox
在滚动时显示菜单的问题)。(I7579a, b/212091796)- 在 material 和 material3 Text、
TextField
和OutlinedTextField
中添加了minLines
参数,允许根据行数设置组件的最小高度。(I4af1d) - 弃用
TopAppBarDefaults smallTopAppBarColors
函数,转而使用新的topAppBarColors
函数,该函数应在创建TopAppBar
时使用。(Ie6cb9) - 为
BasicText
和BasicTextField
添加了minLines
参数。它允许以行数设置这些可组合项的最小高度。(I24294, b/122476634)
Bug 修复
- 将 Material3
IconButton
和IconToggleBotton
的内容裁剪到组件的状态层形状(例如圆形)。(I9da8f) - 更新了 Material3 Medium 和 Large 顶部应用栏,以在其整个表面应用相同的背景颜色,并允许使用透明颜色值覆盖默认颜色。(I67659, b/249688556, b/250838918)
版本 1.1.0-alpha01
2022 年 10 月 24 日
androidx.compose.material3:material3:1.1.0-alpha01
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha01
已发布。版本 1.1.0-alpha01 包含这些提交。
Bug 修复
- 修复了顶部应用栏在标题应用 TextStyle 和 Brush 时出现的问题。(If667e)
版本 1.0
版本 1.0.1
2022 年 11 月 9 日
androidx.compose.material3:material3:1.0.1
和 androidx.compose.material3:material3-window-size-class:1.0.1
已发布。版本 1.0.1 包含这些提交。
Bug 修复
- 更新了 Material3 Medium 和 Large 顶部应用栏,以在其整个表面应用相同的背景颜色,并允许使用透明颜色值覆盖默认颜色。(I67659, b/249688556, b/250838918)
版本 1.0.0
2022 年 10 月 24 日
androidx.compose.material3:material3:1.0.0
和 androidx.compose.material3:material3-window-size-class:1.0.0
已发布。版本 1.0.0 包含这些提交。
1.0.0 的主要功能
这是 Compose Material 3 的第一个稳定版本!
Material Design 3 主题和 Material You 动态颜色
Material Design 3 组件
- 徽章 (Badge)
- 底部应用栏 (Bottom App Bar)
- 按钮 (Buttons)
- FAB 和扩展 FAB
- 卡片 (Cards)
- 复选框 (Checkbox)
- 纸片 (Chips)
- 对话框 (Dialogs)
- 分割线 (Divider)
- 下拉菜单 (Dropdown Menu)
- 列表 (List)
- 导航栏 (Navigation bar)
- 导航抽屉 (Navigation drawer)
- 导航轨道 (Navigation rail)
- 进度指示器 (Progress Indicator)
- 单选按钮 (Radio Button)
- 滑块 (Slider)
- 开关 (Switch)
- 标签页 (Tabs)
- 文本字段 (Text Fields)
- 顶部应用栏 (Top app bar)
- 图标
- Text
- Surface
- 布局 (Layout)
- 内容颜色 (Content color)
窗口大小类 (Window Size Class)
material3-window-size-class
是一个新库,提供窗口大小类支持:一组用于您设计、开发和测试可调整大小的应用布局的规范视图端口断点。您可以使用calculateWindowSizeClass
检索窗口大小类实例,您可以使用它来确定 UI 应如何显示,例如为更大的窗口大小显示导航轨道而不是底部导航。有关更多信息和示例用法,请参阅WindowSizeClass
的 API 参考文档。请参阅这篇博客文章了解更多详情!
版本 1.0.0-rc01
2022 年 10 月 5 日
androidx.compose.material3:material3:1.0.0-rc01
和 androidx.compose.material3:material3-window-size-class:1.0.0-rc01
已发布。版本 1.0.0-rc01 包含这些提交。
API 更改
- 为文本字段 API 添加了用于支持文本的槽参数。(Iaac0d, b/227146125)
版本 1.0.0-beta03
2022 年 9 月 21 日
androidx.compose.material3:material3:1.0.0-beta03
和 androidx.compose.material3:material3-window-size-class:1.0.0-beta03
已发布。版本 1.0.0-beta03 包含这些提交。
API 更改
ExposedDropdownMenuDefaults
现在公开了菜单项的填充值。(I34ee1)ExposedDropdownMenuBoxScope
现在有一个Modifier.menuAnchor()
修饰符,该修饰符应传递给文本字段以实现正确的无障碍行为。(I27fa3)- 为当前 Slider API 添加了两个重载方法,允许用户传入拇指或轨道来填充滑块。(I21c00)
Bug 修复
- 更新了 On Error Container 的深色主题颜色映射到色调 90 (Ic5612)
- 修复了允许为小型 Material 3 顶部应用栏设置透明背景的问题。(I645e2, b/245575782)
版本 1.0.0-beta02
2022 年 9 月 7 日
androidx.compose.material3:material3:1.0.0-beta02
和 androidx.compose.material3:material3-window-size-class:1.0.0-beta02
已发布。版本 1.0.0-beta02 包含这些提交。
API 更改
- beta01 版本中引入的 m3 组件中的默认组件内边距不再考虑 IME 内边距。
- Material3 Scaffold 组件现在有一个
contentWindowInsets
参数,允许指定内容槽要处理的内边距量。(Icf11a, b/243713323) - 弃用实验性的 Material 3
SmallTopAppBar
函数,并引入等效的TopAppBar
函数。请将您的用法迁移到新的函数。(I74404, b/226918634) - 增加了对顶部应用栏滑动和吸附行为的控制。(I15c81)
- 移除了 Divider 中的 startIndent,并将 color 移至最后一个参数。(If7be2)
Bug 修复
- 让对话框在显示时通过 TalkBack 告知用户“对话框”一词,以便其识别自身。(I857ef)
版本 1.0.0-beta01
2022 年 8 月 24 日
androidx.compose.material3:material3:1.0.0-beta01
和 androidx.compose.material3:material3-window-size-class:1.0.0-beta01
已发布。版本 1.0.0-beta01 包含这些提交。
API 参考
要查看最新的主题、组件和其他可组合项,请查阅 Compose Material 3 API 参考概述。
API 更改
- 更新了 Material 3 顶部应用栏,使其可以吸附到完全折叠或完全展开的状态。此外,更新了
TopAppBarDefaults
行为函数,使其成为 Composables,并为其顶部应用栏状态和动画规范提供默认值。(I642b3) - 更新了 FAB 组件签名以匹配 surface API (I3afaa)
- 为顶部应用栏、抽屉、导航栏和导航轨道添加了内置内边距支持。这些组件单独使用或与 Scaffold 一起使用时,将自动为开发者处理内边距。注意:此更改不添加状态栏图标以及状态栏和导航栏透明度的自动处理。请继续手动执行此操作,以确保最佳的边缘到边缘体验。(I7e4e6, b/183161866)
- 更新了组件默认值以减少 API 表面,从而实现未来的灵活性和性能改进。(I31820)
- 重新排列了芯片和导航抽屉工作表参数,以保持 API 的一致性。(I45d0b)
- 从 Divider 中移除了
startIndent
,并将 color 移至最后一个参数。(If7be2)
版本 1.0.0-alpha16
2022 年 8 月 10 日
androidx.compose.material3:material3:1.0.0-alpha16
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha16
已发布。版本 1.0.0-alpha16 包含这些提交。
新功能
- 支持为导航抽屉指定自定义宽度。(Ia7f10)
API 更改
- 重新排列 Tab 和 Leading icon tab 参数,以保持 API 内的一致性。(Ie2637)
- 将
BadgeDefaults
标记为实验性。(I98ef3) - 删除已弃用的导航抽屉函数。(I4f2db)
- 重新排列 Material 3 中的滑块参数,以保持 API 内的一致性。(I0aee7)
- 重新排列
NavigationBar
和NavigationRail
参数,以保持 API 内的一致性。(I51cda) - 重新排列 Material 3 中的参数以保持整个 API 的一致性。(If4ae1)
- 重新排列 Material 3 中的滑块参数,以保持 API 内的一致性。(I62673)
- 将 icons 参数重命名为 actions,以与顶部应用栏保持一致。(Id75be)
- 将
Badge
和BadgedBox
标记为实验性,因为锚点对齐方式仍在变动中。(I1712e, b/236524516) - 将图标按钮变体上的
@ExperimentalMaterial3Api
注解更改为@OptIn
(I070b5) - 将导航抽屉的内容分离到其自己的可组合项中,以支持为其指定自定义宽度。(Ia7f10)
- 从
MenuDefaults
和TabDefaults
中移除了Divider
(I4e33c)
版本 1.0.0-alpha15
2022 年 7 月 27 日
androidx.compose.material3:material3:1.0.0-alpha15
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha15
已发布。版本 1.0.0-alpha15 包含这些提交。
新功能
- 允许直接从顶部应用栏拖动。(I65c00, b/205873416)
API 更改
- 更新了
FilterChip
和ElevatedFilterChip
API,移除了selectedIcon
槽,并提倡重用leadingIcon
来显示选中状态。(Ie5dc2) - 添加了 scrim 和 outline 变体颜色角色。(Id6d54)
- 修复了可组合项默认值的命名约定。(I62b27)
- 将
ListItemDefaults
和ListItemColors
标记为实验性。(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-alpha14
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha14
已发布。版本 1.0.0-alpha14 包含这些提交。
新功能
- 添加了 M3 列表实现,请参阅文档以获取示例用法。(Id7a20)
API 更改
- 在
RangeSlider
中将参数名称从 values 更改为 value。(I3b79a) - 更改了
InputChip
的 API 实现,以支持 Material Design 规范中的可选状态。在FilterChip
颜色中增加了对选定禁用状态的支持。(I55244, b/235792432) - 添加了
BottomAppBar
默认 FAB (Ida4c8) ColorScheme.surfaceColorAtElevation
已添加。(Id41af)- Compose 库中的接口现在使用 jdk8 默认接口方法构建。(I5bcf1)
WindowWidthSizeClass
和WindowHeightSizeClass
现在实现了 Comparable 接口,因此可以使用运算符 (<, <=, >=, >) 和其他 API 进行比较。(I747d0)
Bug 修复
- 更新徽章示例以提供更有意义的内容描述。(I10b9d)
- 添加了在 Material 3 目录主题选择器中使用系统字体大小的选项。(I10605)
- 添加了徽章和不确定进度指示器的示例代码。(I8fbe0)
版本 1.0.0-alpha13
2022 年 6 月 1 日
androidx.compose.material3:material3:1.0.0-alpha13
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha13
已发布。版本 1.0.0-alpha13 包含这些提交。
API 更改
- 支持在配置更改时保持顶部应用栏的位置。(I10459, b/216160958)
版本 1.0.0-alpha12
2022 年 5 月 18 日
androidx.compose.material3:material3:1.0.0-alpha12
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha12
已发布。版本 1.0.0-alpha12 包含这些提交。
Bug 修复
- 滑块父级现在可以有 0 宽度。(b/231707291)
版本 1.0.0-alpha11
2022 年 5 月 11 日
androidx.compose.material3:material3:1.0.0-alpha11
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha11
已发布。版本 1.0.0-alpha11 包含这些提交。
新功能
- 在 Material 3 中添加了
RangeSlider
(I18e38) - 添加了 Material3
AssistChip
和InputChip
支持 (I0d25a) - 添加了 Material3
FilterChip
和SuggestionChip
支持 (I9fdf3)
API 更改
- 将
OutlinedTextField
中绘制边框的TextFieldDefaults.BorderStroke
可组合项重命名为TextFieldDefaults.BorderBox
。 (I5f295) - 切换 m3 视觉更改 (Iab30e)
- 允许将颜色传递给标准图标按钮。 (Ia2445)
Bug 修复
- 为 material3/Scaffold 添加 Lint 检查,以确保使用内部填充 (I72293, b/226951418)
版本 1.0.0-alpha10
2022 年 4 月 20 日
androidx.compose.material3:material3:1.0.0-alpha10
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha10
已发布。版本 1.0.0-alpha10 包含以下提交。
新功能
material3-window-size-class
是一个新的库,为窗口尺寸类别提供支持:一组规范的视口断点,供您设计、开发和测试可调整大小的应用布局。您可以使用calculateWindowSizeClass
来检索窗口尺寸类别实例,该实例可用于确定 UI 的显示方式,例如在较大的窗口尺寸下显示导航栏而不是底部导航。有关更多信息和示例用法,请参阅WindowSizeClass
的 API 参考文档。有关窗口尺寸类别定义的更多信息,请参阅有关支持不同屏幕尺寸的公开指南。
API 更改
- 为
BottomAppBar
添加了默认的 FAB 高度,并移除了带 FAB 的BottomAppBar
中的尾随 lambda。 (I92c47) - 添加了 Material3
FilledIconButton
、FilledTonalIconButton
和OutlinedIconButton
。 (Ib2bda) - 更新了 Material 3 Snackbar API,以接受可选操作和关闭操作的颜色值。 (Ibe4b4)
PointerInputChange
中的部分消耗(按下或位置)已被弃用。您可以使用consume()
完全消耗该更改。您可以使用isConsumed
来确定是否有人以前消耗了该更改。PointerInputChange::copy()
现在总是创建浅拷贝。这意味着一旦其中一个副本被消耗,PointerInputChange
的副本也会被消耗。如果要创建无绑定PointerInputChange
,请改用构造函数。 (Ie6be4, b/225669674)- 对 Cards API 进行了更改,以通过
CardColors
接口接收容器和内容颜色,并支持可点击卡片的禁用状态。 (I927df) - 在 Material 3 文本字段中,参数
backgroundColor
已重命名为containerColor
,以提高与其他组件的一致性。 (I6fbd9)
Bug 修复
- 更新了标准
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 是展开还是折叠,并在每种状态之间提供动画效果。为不带图标的 ExtendedFAB 添加了带尾随文本的 Extended FAB 重载。 (Iba7f1)
版本 1.0.0-alpha08
2022 年 3 月 23 日
androidx.compose.material3:material3:1.0.0-alpha08
已发布。版本 1.0.0-alpha08 包含以下提交。
新功能
- 添加了对 Material 3 文本字段的支持。 (I795cc, b/199377790)
API 更改
Bug 修复
- 修复了 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)
LazyVerticalGrid
和LazyHorizontalGrid
现在已稳定。 (I307c0)LazyVerticalGrid/LazyHorizontalGrid
和所有相关 API 已移至 .grid 子包。请将您的导入从 androidx.compose.foundation.lazy 更新为 androidx.compose.foundation.lazy.grid。 (I2d446)- 恢复了之前仅依赖 View 进行
WindowInsetsControllerCompat
的更改,并再次要求使用 Window(管理某些窗口标志所必需)。弃用了ViewCompat.getWindowInsetsController
,转而使用WindowCompat.getInsetsController
,以确保使用正确的 Window(例如,如果 View 在对话框中)。 (I660ae, b/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 更改
- 添加了
NavigationDrawerItem
,它表示抽屉中的单个目的地 (Ic396f, b/218286829) PermanentNavigationDrawer
和DismissibleNavigationDrawer
已作为实验性 API 添加。这些抽屉非常适合大屏幕设备。 (I5f8ab, b/218286829)- 添加了 Material 3 底部应用栏支持 (Ic432a)
NavigationDrawer
已重命名为ModalNavigationDrawer
(I1807d, b/218286829)- 添加了 Material 3 Slider 类和令牌 (I1ccee)
- 添加了 Tab 实现,请参阅文档了解示例用法 (Ie0146)
Bug 修复
- 修复了
TalkBack
屏幕阅读器线性导航选择空顶部应用栏标题的问题。 (Id4690) - 将
IconSize
添加到FloatingActionButtonDefaults
。 (Ia71cf) - 修复了在使用
LazyColumn
添加长文本时AlertDialog
按钮隐藏的错误。 (Ib2cc9, b/216663029)
版本 1.0.0-alpha05
2022 年 2 月 9 日
androidx.compose.material3:material3:1.0.0-alpha05
已发布。版本 1.0.0-alpha05 包含以下提交。
新功能
添加了 Material Design 3 组件
API 更改
- 弃用了接受 onClick 回调的
Surface
函数。可点击的表面应使用InteractionSource
和Modifier.clickable()
创建。 (I211c6) - 添加了对 FAB 的按下和聚焦高程支持。 (Ibb584)
- 更改了
Surface
API,以接收一个 InteractionSource,从而可以控制其在不同状态下的外观。 (Iafbc8)
Bug 修复
- 在动态配色方案中添加了缺失的第三色 (I456c4, b/214588434)
版本 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 进度指示器的支持。 (Iff232, b/205023841)
Bug 修复
- 将禁用
TextButton
的容器颜色更新为透明 (I6b248, b/213339737)
版本 1.0.0-alpha03
2022 年 1 月 12 日
androidx.compose.material3:material3:1.0.0-alpha03
已发布。版本 1.0.0-alpha03 包含以下提交。
Bug 修复
- 将
LocalIndication
添加到 Material 3 的MaterialTheme
。 (I7ce4e) - 修复了应用于 Checkbox 的圆角半径 (I38b03, b/175198975, b/202309440)
依赖项更新
- 现在依赖于 Kotlin
1.6.10
。
版本 1.0.0-alpha02
2021 年 12 月 1 日
androidx.compose.material3:material3:1.0.0-alpha02
已发布。版本 1.0.0-alpha02 包含以下提交。
新功能
- 添加了对复选框和单选按钮的支持。
- 更新以与 Kotlin
1.6.0
兼容
API 更改
- 从 Material 3 的 scaffold 中移除了抽屉。 (I04f51)
- 添加了 Material 3
Checkbox
支持。 (Id5542) - 添加了 Material 3
RadioButton
支持。 (I20334)
Bug 修复
- 将
IconButton
的波纹半径从 40dp 减小到 20dp。 (I68bbe, b/206674345) - 从
compose.material
移植Text
更改的字符串快速路径 (I30b03) - 修复了按钮硬编码为始终启用的问题。 (Iea832, b/205335456)
版本 1.0.0-alpha01
2021 年 10 月 27 日
androidx.compose.material3:material3:1.0.0-alpha01
已发布。版本 1.0.0-alpha01 包含以下提交。
新功能
Material Design 3 主题和 Material You 动态颜色
Material Design 3 组件
- 按钮 (Buttons)
- FAB 和扩展 FAB
- 对话框 (Dialogs)
- 导航栏 (Navigation bar)
- 导航抽屉 (Navigation drawer)
- 导航轨道 (Navigation rail)
- 顶部应用栏 (Top app bar)
- 徽章 (Badge)
- 图标
- Text
- Surface
- 布局 (Layout)
- 内容颜色 (Content color)
有关更多信息,请查看 Compose 中的 Material Theming 指南中的Material Design 3 和 Material You 部分。