Compose Material 3
最近更新时间 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 12 月 12 日 | 1.3.1 | - | - | 1.4.0-alpha05 |
结构
Compose 由 androidx
中的 7 个 Maven 组 ID 构成。每个组都包含一套特定用途的功能,并各有专属的版本说明。
下表介绍了各个组的内容,点击链接即可查看其版本说明。
组 | 说明 |
---|---|
compose.animation | 在 Jetpack Compose 应用中构建动画,丰富用户体验。 |
compose.compiler | 借助 Kotlin 编译器插件,转换 @Composable functions(可组合函数)并启用优化功能。 |
compose.foundation | 使用现成可用的构建块编写 Jetpack Compose 应用,还可扩展 Foundation 以构建您自己的设计系统元素。 |
compose.material | 使用现成可用的 Material Design 组件构建 Jetpack Compose UI。这是更高层级的 Compose 入口点,旨在提供与 www.material.io 上描述的组件一致的组件。 |
compose.material3 | 使用 Material Design 3(新一代 Material Design)组件构建 Jetpack Compose UI。Material 3 中包括了更新后的主题和组件,以及动态配色等 Material You 个性化功能,旨在与新的 Android 12 视觉风格和系统界面相得益彰。 |
compose.runtime | Compose 编程模型和状态管理的基本构建块,以及 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" } }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
Compose Material3 通用版本 1.0
版本 1.0.0-alpha01
2024 年 4 月 17 日
发布了 androidx.compose.material3:material3-common:1.0.0-alpha01
、androidx.compose.material3:material3-common-android:1.0.0-alpha01
和 androidx.compose.material3:material3-common-desktop:1.0.0-alpha01
。版本 1.0.0-alpha01 包含这些提交内容。
新功能
可用于构建 Material Design 组件的无主题组件:
- 色调调色板
- 图标
- 触摸目标大小
Compose Material3 自适应导航套件 1.0 版
版本 1.0.0-alpha07
2024 年 5 月 1 日
发布了 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha07
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha07
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha07
。版本 1.0.0-alpha07 包含这些提交内容。
API 变更
- 将导航套件 API 设为非实验性 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) - 向
NavigationSuiteDefaults
添加了itemColors
函数。(Idf719、b/328480012) - 使
NavigationSuiteScope
密封。(Iefa57)
版本 1.0.0-alpha05
2024 年 3 月 6 日
发布了 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha05
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha05
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha05
。版本 1.0.0-alpha05 包含这些提交内容。
API 变更
- 将
NavigationSuiteItemColors
构造函数设为公开。(Ica83a、b/324886877)
版本 1.0.0-alpha04
2024 年 2 月 21 日
发布了 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha04
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha04
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha04
。版本 1.0.0-alpha04 中包含这些提交内容。
依赖项更新
版本 1.0.0-alpha03
2024 年 2 月 7 日
发布了 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha03
、androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha03
和 androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha03
。版本 1.0.0-alpha03 中包含这些提交内容。
API 变更
- 将软件包名称从 navigation-suite 更新为 navigationsuite (I7eff7)
- 在其 API 中公开
MutableInteractionSource
的 Material3 组件已更新,现在公开的可为 null 的MutableInteractionSource
,默认为 null。这里没有任何语义上的更改:传递 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 修复
- 修复了当根 surface 具有
modifier.fillMaxSize
时导航组件填充整个屏幕的问题。(c9cf250、b/312664933)
版本 1.0.0-alpha01
2023 年 11 月 15 日
发布了 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha01
。版本 1.0.0-alpha01 中包含这些提交内容。
新功能
Compose Material3 自适应版本 1.0
版本 1.0.0-alpha06
2024 年 2 月 7 日
发布了 androidx.compose.material3:material3-adaptive:1.0.0-alpha06
、androidx.compose.material3:material3-adaptive-android:1.0.0-alpha06
和 androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha06
。版本 1.0.0-alpha06 中包含这些提交内容。
新功能
版本 1.0.0-alpha05
2024 年 1 月 24 日
发布了 androidx.compose.material3:material3-adaptive:1.0.0-alpha05
、androidx.compose.material3:material3-adaptive-android:1.0.0-alpha05
和 androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha05
。版本 1.0.0-alpha05 中包含这些提交内容。
新功能
- 在 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 中包含这些提交内容。
新功能
- 在窗格框架中添加了端到端支持 (I1b462)
API 变更
- 将 Posture 中的合页边界属性移到了合页信息列表 (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 变更
- 将架构角色更改为
ThreePaneScaffoldRole
的别名。(I65bd1) - 为架构角色创建基类 (I4784d)
- 从
AnimatedPane
的内容中移除了不必要的参数 (Ibc73b) - 重命名了
collectWindowSizeAsState
,并改为返回原始值 (I480f4)
版本 1.0.0-alpha02
2023 年 11 月 29 日
发布了 androidx.compose.material3:material3-adaptive:1.0.0-alpha02
、androidx.compose.material3:material3-adaptive-android:1.0.0-alpha02
和 androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha02
。版本 1.0.0-alpha02 中包含这些提交内容。
API 变更
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 自适应窗格架构指令 API:
Material3 自适应窗格架构 API:
- 窗格框架基本 API
Compose Material 3 版本 1.4
版本 1.4.0-alpha05
2024 年 12 月 12 日
发布了 androidx.compose.material3:material3-*:1.4.0-alpha05
。版本 1.4.0-alpha05 包含这些提交内容。
API 变更
- 替换了枚举的
WideNavigationRailState.current/target
值中的类型,以提高可读性 (I2d6ab) SplitButton
将 Shape API 从数据类更改为类,以实现二进制文件兼容性。(I53812)- 添加了一个包含
onDismissRequest
参数的提示 API,以便创作者可以决定用户点击提示之外的内容时会发生什么。废弃了不包含此新参数的旧版 API。(I99aef) - 将
opticalCentering
的命名更改为horizontalCenterOptically
。将修饰符设为内部修饰符。将内边距参数替换为最大起始偏移量和结束偏移量。(I0b904) - 将
WideNavigationRailState
更改为具有当前/目标值,移除枚举并改用布尔值。(Idfa29、b/356039090) - 添加了
NavigationBarItemComponentOverride
。(I3a06a)
bug 修复
- 修复了顶部和底部应用栏行为,以便在内容滚动到底部时可靠地更改颜色。(Idc4e8、b/293665988)
- 顶部和底部应用栏的滚动行为函数现在会返回记忆的行为,以便在多次重新组合后获得更好的性能。(I0fdbe、b/207957336)
- 修饰符参数现在是在内部修饰符(例如拖动行为和语义)之后应用,而不是之前。这会影响修饰符的应用顺序。(I8d83f)
- 展开的底部动作条在更改大小后仍保持展开状态。(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 修复
- 根据规范,过滤条状标签尾随图标颜色已从“主色”更新为
OnSurfaceContainer
。根据规范,所有条状标签轮廓颜色均已从“轮廓”更新为“轮廓变体”(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
。由于变体指向同一令牌文件,因此系统会将形状合并为一项默认形状。(Iaa014)
bug 修复
- 优化了 Scaffold
contentPadding
行为,以避免在contentPadding
发生变化时始终重组正文内容。(I8c8e2、b/373904168) TextFieldLabelScope
progress
已重命名为labelMinimizedProgress
TextFieldLabelPosition
Default
已重命名为Attached
。接口成员已被移除。(If75c6)- 修复了输入模式下
DatePicker
存在的问题,其中验证错误可能会导致组件的高度发生变化。(I2e229、b/280462363) - 使 Material 滑块在按下控制键时更改其值。(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
现在会正确优先于主题的排版文本样式中定义的任何冲突颜色。另请注意,此更新调整了日期选择器函数中color
参数的位置,并引入了用于自定义标题和标题文本颜色的contentColor
参数。(I30d03、b/347031394)- 将
SplitButton
重命名为SplitButtonLayout
并移除了SplitButton
颜色款式/规格 API,通过重复使用SplitButtonDefaults
提供的按钮款式/规格来实现款式/规格。(I44c36) ModalBottomSheet
现在具有sheetGestureEnabled
参数 (I856cb、b/288211587)- 将
standardMotionScheme
和expressiveMotionScheme
重命名为“标准”和“富有表现力”。现在,您可以通过调用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
实例时更新界面。(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)- 添加了使用
TextFieldState
的 MaterialTextField
和OutlinedTextField
的新重载。添加了与TextFieldDecorator
兼容的装饰盒 API。(If13a1) - 添加了用于控制文本字段
labelPosition
的参数。使用alwaysMinimize
可让界面模式在文本字段中同时显示标签和占位符,即使该字段处于未聚焦状态也是如此。(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
子可组合项。顺序为topBar
、bottomBar
、FAB、内容、通知栏。(I5936b) - 修复了
DatePicker
和DateRangePicker
中的一个问题,在某些语言区域和格式框架中,某些日期元素(例如月份名称)并非以大写字母开头。(I1430f) - 集成了 FAB 和 FAB 菜单组件令牌(对内边距和文本进行了细微的视觉更新)(Ib57f3)
- 现在,
ModalBottomSheet
在语义遍历顺序中位于首位,其次是 scrim。(I436f9、b/358594665) - 修复了在边到边模式下滚动到导航药丸下时底部应用栏未完全消失的问题 (I3ee21)
Compose Material3 版本 1.3
版本 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
实例时更新界面。(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 组件
- 轮播界面
HorizontalMultiBrowseCarousel
和HorizontalUncontainedCarousel
对现有 Material Design 3 组件进行了增强。
- [
ModalBottomSheet
] 现在支持 U+ 上的预测性返回(Iccf32、b/281967264、b/304850357) - [
SearchBar
] 现在支持在 U+ 上使用预测性返回 (I657f8) - 抽屉式导航栏 (
ModalDrawerSheet
和DismissibleDrawerSheet
) 现在支持在 U+ 上选择启用预测性返回 (Ie5b0b) DropdownMenu
现在支持自定义颜色、形状、高度和边框。(I8e981、b/289554448、b/301887035、b/283654243)- 更新了滑块,通过添加间隔和停止指示器来提高无障碍使用体验。(I3058e)
- 更新了
ProgressIndicator
,通过添加间隔和停止指示器来提高可访问性。(I21451) - 为富文本提示添加了默认箭头,支持根据锚点
LayoutCoordinates
绘制自定义箭头。(Ifd42c) 重大变更 - 新的“下拉刷新”API:
- 简化了
PullToRefreshState
,以使用小数值而非 dp 单位。 isRefreshing
状态由用户控制,而不是由PullToRefreshState
控制。- 将嵌套滚动连接从
PullToRefreshState
中分离出来。它由新的PullToRefreshBox
或Modifier.pullToRefresh
处理。 - 此更新对之前的实验性 API 进行了重大更改。(I0adeb、b/314496282、b/317177684、b/323787138、b/324573502、b/317177683) 视觉破坏性更改
- 简化了
- 将焦点状态叠加层更新为 0.1f,以确保足够的颜色对比度。(I7ea77)
- 对
lightColorScheme
和darkColorScheme
中的 Surface 和背景颜色默认值进行了细微调整。(I9db52) - 更新了滑块和
ProgressIndicator
颜色,以遵循新的非文本对比度规范。(I26807) - 组件现在使用
SurfaceContainer
变体。以前使用Surface
和TonalElevation
正式计算颜色的组件现在默认使用SurfaceContainer
角色,这些角色不受色调提升的影响。(b/304584161) - 我们对 Surface 和 Surface 容器基准角色进行了细微调整,在浅色和深色主题中提供更多色调。(I677a5)
- 将实验性 API 升级成了稳定版!
- 提升了性能
版本 1.3.0-rc01
2024 年 8 月 21 日
发布了 androidx.compose.material3:material3-*:1.3.0-rc01
。版本 1.3.0-rc01 包含这些提交内容。
bug 修复
- 现在,
ModalBottomSheet
在语义遍历顺序中位于首位,其次是 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) - 增加了滑块的语义边界,以便
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
支持 elevation,更新了“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
scrim 添加了关闭动作条语义。(0e61cb、b/328801864)
外部贡献
版本 1.3.0-beta01
2024 年 5 月 14 日
发布了 androidx.compose.material3:material3-*:1.3.0-beta01
。版本 1.3.0-beta01 包含这些提交内容。
API 变更
- 使用
DpSize
,而不要使用CaretProperties
。移除了CaretProperties
。将CaretScope
重命名为TooltipScope
。(Id9a76) - 更新了用于在文本中获取 Material 主题链接的 API。具体而言,从
TextDefaults
中移除了用于构建主题LinkAnnotations
和解析带有主题链接的 HTML 的方法。而是添加了一个TextLinkStyles
类,以便将链接样式作为参数添加到 Text 可组合项。(I31b93)
版本 1.3.0-alpha06
2024 年 5 月 1 日
发布了 androidx.compose.material3:material3-*:1.3.0-alpha06
。版本 1.3.0-alpha06 包含这些提交内容。
重大变更
新的“下拉刷新”API:
- 简化了
PullToRefreshState
,以使用小数值而非 dp 单位。 isRefreshing
状态由用户控制,而不是由PullToRefreshState
控制。- 将嵌套滚动连接从
PullToRefreshState
中分离出来。它由新的PullToRefreshBox
或Modifier.pullToRefresh
处理。 - 此更新对之前的实验性 API 进行了重大更改。(I0adeb、b/314496282、b/317177684、b/323787138、b/324573502、b/317177683)
- 简化了
API 变更
RippleConfiguration#isEnabled
已移除,LocalRippleConfiguration
已设为可为 null。如需停用涟漪效果,请向LocalRippleConfiguration
提供null
,而不是向isEnabled = false
提供RippleConfiguration
。(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
,以显示用于剪裁项的掩码矩形 (I785d8) - 从 Material 3 公共 API 中移除了
BasicTooltipState
。在 Foundation 的BasicTooltip
稳定之前,其功能将与TooltipState
结合使用。(Icda29) - 添加了一个
TextDefaults
对象,其中包含用于构建LinkAnnotation
和解析 HTML 标记字符串的方法,这些方法会将MaterialTheme
应用于链接(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
用户选择接受注解。(I111d1)
版本 1.3.0-alpha04
2024 年 4 月 3 日
发布了 androidx.compose.material3:material3-*:1.3.0-alpha04
。版本 1.3.0-alpha04 包含这些提交内容。
新功能
- 添加了两个实验版 Material3 轮播界面 -
HorizontalMultiBrowseCarousel
和HorizontalUncontainedCarousel
(I88d64) - 更新了 Compose M3 抽屉式导航栏 (
ModalDrawerSheet
和DismissibleDrawerSheet
),以支持在 U+ 上选择启用预测性返回 (Ie5b0b) - 在 Icon 中添加了一个新 API,以允许将颜色着色作为 lambda 传递,以避免重组。(I5b5a2)
- 顶部应用栏 API 现在支持为固定和可收起的部分设置自定义高度。 (Ib8b0c、b/323403446)
API 变更
- 顶部应用栏 API 现在支持为固定和可收起的部分设置自定义高度。修复了导致单行顶部应用栏在滚动内容时重组过多次的问题。解决了以下问题:在采用大号字体/显示设置的设备上,
MediumTopAppBar
会截断影视内容的标题。(Ib8b0c、b/323403446、b/300953236、b/286296147、b/330410290、b/308540676) SegmentedButton
及相关 API 现已稳定 (I8a158)SwipeToDismissBox
、SwipeToDismissBoxDefaults
、SwipeToDismissBoxState
和SwipeToDismissBoxValue
现已标记为稳定版。(I5f000)- 移除了已废弃的
DismissDirection
和DismissValue
枚举和 API。(I89ccd) - 向轮播界面的
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
中的 Surface 和背景颜色默认值进行了细微调整。(I9db52)
新功能
- 添加了用于自定义
ExposedDropdownMenu
的参数。具体而言,菜单现在有一个focusable
参数(默认值为true
),在使用可编辑文本字段时,应将其设置为false
。(I4184c、b/323694447、b/278609042)
API 变更
ScaffoldSubcomposeInMeasureFix
标志已被移除。(Ie2a4b)NavigationRailItemColors
现在标记为@Immutable
。(If6112、b/327660613)NavigationBarItemColors
现在标记为@Immutable
。(I42a30、b/298064514)- 对滑块滑道可组合项中的参数进行了重新排序。(I9f315)
ExposedDropdownMenu
现在使用Popup
实现。行为应该相同,但在键盘上输入内容时,包含可编辑文本字段的可聚焦菜单可能会关闭。
bug 修复
- 我们对 Surface 和 Surface 容器基准角色进行了细微调整,在浅色和深色主题中提供更多色调。(I677a5)
- 更新了滑块和
ProgressIndicator
颜色,以遵循新的非文本对比度规范。(I26807) - 将焦点状态叠加层更新为 0.1f,以确保足够的颜色对比度。(I7ea77)
- 对
lightColorScheme
和darkColorScheme
中的 Surface 和背景颜色默认值进行了细微调整。(I9db52)
版本 1.3.0-alpha02
2024 年 3 月 6 日
发布了 androidx.compose.material3:material3-*:1.3.0-alpha02
。版本 1.3.0-alpha02 包含这些提交内容。
API 变更
- 使滑块状态再次稳定。将
State.onValueChangeFinished
重新设为 val。将onValueChangeFinished
封装在rememberUpdatedState
中。(I82ab2、b/322269951) - Navigation 组件现在使用新的
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) - 确保在嵌套
DateRangePicker
或在小屏幕上使用较大的字体显示任何类型的日期选择器时,DatePickerDialog
会显示其按钮。(Ie4758、b/325107799、b/277768544) Menu
现在使用SurfaceContainer
角色来设置容器颜色。MenuDefaults.TonalElevation
现为0.dp
。(I135b7)TextField
现在使用SurfaceContainerHighest
角色来设置容器颜色。(I4dced)- 提升后的条状标签现在使用
SurfaceContainerLow
角色 (I7cd2f) DatePicker
容器颜色现在为SurfaceContainerHigh
。DatePickerDefaults.TonalElevation
现为0.dp
。(Ida753)- 更新了底部动作条容器颜色和拖动手柄颜色。(I72a0a)
RichTooltip
容器颜色现在为SurfaceContainer
。(Ia8b45)SearchBar
容器颜色现在为SurfaceContainerHighest
。SearchBarDefaults.TonalElevation
现为0.dp
。(I88604)- 更新了已停用开关和未选中的轨道/图标,以利用
SurfaceContainerHighest
颜色角色。(I7687a) AlertDialog
容器颜色现在为SurfaceContainerHigh
。(Ie0433)BottomAppBar
容器颜色现在为SurfaceContainer
。TopAppBar
onScroll
颜色现为SurfaceContainer
。(I41630)ElevatedCard
容器颜色现在为SurfaceContainerLow
。FilledCard
的容器颜色为SurfaceContainerHighest
。(I35141)ElevatedButton
容器颜色现在为SurfaceContainerLow
。未选中时的FilledIconButton
现在的容器颜色为SurfaceContainerHighest
。(I792c9)- 将
TimePicker
容器颜色和时钟表盘颜色角色更新为SurfaceContainerHighest
。(I43b93)
版本 1.3.0-alpha01
2024 年 2 月 21 日
发布了 androidx.compose.material3:material3-*:1.3.0-alpha01
。版本 1.3.0-alpha01 中包含这些提交内容。
新功能
- 更新了 Compose M3
ModalBottomSheet
,以支持 U+ 上的预测性返回 (Iccf32、b/281967264、b/304850357) - 更新了 Compose M3
SearchBar
,以支持 U+ 上的预测性返回 (I657f8) - 更新了滑块,通过添加间隔和停止指示器来提高无障碍使用体验。(I3058e)
- 更新了
ProgressIndicator
,通过添加间隔和停止指示器来提高可访问性。(I21451) - 为富文本提示添加了默认箭头,新的富文本提示 API 现在允许在给定锚点
LayoutCoordinates
的情况下绘制自定义箭头。(Ifd42c)
行为变更
- Material 组件已迁移为使用新的涟漪 API,不再查询
RippleTheme
。
API 变更
- 有趣的
drawStopIndicator
现已公开。(I3f59f) - 将
DatePicker
的formatWithSkeleton
函数标记为内部函数 (Ic65dc) DropdownMenu
现在支持自定义颜色、形状、高度和边框。(I8e981、b/289554448、b/301887035、b/283654243)- 在其 API 中公开
MutableInteractionSource
的 Material3 组件已更新,现在公开的MutableInteractionSource
可为 null,默认为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
参数顺序 bug。(Ibe64a)
版本 1.2
版本 1.2.1
2024 年 3 月 6 日
发布了 androidx.compose.material3:material3-*:1.2.1
。版本 1.2.1 包含这些提交内容。
bug 修复
- 使滑块状态再次稳定。将
State.onValueChangeFinished
重新设为 val。将onValueChangeFinished
封装在rememberUpdatedState
中。(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 Interop 渲染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
参数顺序 bug。(Ibe64a) - 修复了
CardDefaults.cardColors
中的1.2.0-beta02
引入的一个 bug,该 bug 导致系统不会根据containerColor
参数值更新contentColor
。(Iee041、b/319671246) - 修复了
1.2.0-beta02
中引入的disabledContentColor
中的 bug,并进行了一些小优化。(I6dda1、b/318428829)
版本 1.2.0-beta02
2024 年 1 月 10 日
发布了 androidx.compose.material3:material3-*:1.2.0-beta02
。版本 1.2.0-beta02 中包含这些提交内容。
已知 bug
IconButtonColors
中的 bug 会默认将disabledContentColor
分配给LocalContentColor
的 Alpha (0.38f),而不是用户指定的contentColor
。解决方法是显式设置disabledContentColor
。此问题将在下一版本中修复。
API 变更
- 添加了为纯
Tooltip
API 启用提示符箭头的功能。(Ibf767) 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 Tooltip。(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)- 将修饰符工厂函数标记为
@Stable
。(Ib109f)
版本 1.2.0-alpha11
2023 年 11 月 15 日
发布了 androidx.compose.material3:material3-*:1.2.0-alpha11
。版本 1.2.0-alpha11 中包含这些提交内容。
新功能
- 实现
PullToRefreshContainer
和PullToRefreshState
,它们共同在 Material3 中提供下拉刷新实现。(I16456、b/261760718)
API 变更
- 将
SwipeToDismissBox
DismissDirection
和DismissValue
标记成了实验性。(I517b0) - 已将
SwipeToDismiss
重命名为SwipeToDismissBox
。将background
重命名为backgroundContent
,将dismissContent
重命名为尾随content
lambda。(I7f4d3) - 将
ChipElevation
和SelectableChipElevation
的构造函数设为公共构造函数。(Ie0c48、b/308432421) - 添加了
ModalBottomSheetProperties
。将securePolicy
移到了ModalBottomSheetProperties
中。将isFocusable
和shouldDismissOnBackPress
添加到了ModalBottomSheetProperties
中。这些新的布尔值有助于确定模态底部动作条应如何处理 IME 事件。(Iea56f、b/278216859) - 更新了
RangeSlider
和Slider
状态,以移除initialOnValueChange
、初始前缀和适当的 kdoc。(I57d30) - 废弃了
ChipBorder
类及其关联的函数调用,建议改用直接使用BorderStroke
。(I89cc2) - 基础提示 API 现已更名为
@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
会因嵌套的预测性布局和延迟布局而崩溃。(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) - 添加了非可组合函数,用于直接创建
DatePickerState
和DateRangePickerState
。这些函数可在需要时用作可组合函数rememberDatePickerState
和rememberDateRangePickerState
的替代方案。(I70326、b/291524052) - 固定和可滚动
TabRows
现在具有主要变体和次要变体。这些值会正确映射到 Material3 中定义的颜色和指示器行为。 PrimaryScrollableTabRow
和SecondaryScrollableTabRow
现在会公开滚动状态。(Iec8f5、b/260572337)- 添加了新的
sheetMaxWidth
参数,开发者可以通过该参数指定动作条的最大宽度。如果需要跨整个屏幕宽度显示工作表,可以为该参数传入 Dp.Unspecified。(Ifb7c9、b/266697696) - 将
PlainTooltipBox
和RichTooltipBox
API 重新添加为已废弃的方法。(I246fa)
bug 修复
- 修复了以下问题:使用具有在转换为日期格式(例如 YY)后保持不变的特定日期框架的
DatePickerFormatter
初始化DatePicker
时发生崩溃。(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) - 添加了一个基于
BasicTooltipBox
构建的简单 Label 组件,该组件在点按标签边界之外时不会关闭。(I821f9)
bug 修复
- 不再使用
rememberSaveable
显示提示。(Icc131、b/299500338) - 引入了一个临时标志,用于控制 Scaffold 应在测量期间还是在放置期间测量其子项。默认情况下,此维度将以测量单位进行衡量。如果您在使用新行为时遇到问题,请提交问题。(I0b354)
- 通过使用正确的设备屏幕宽度测量值,修复了
BottomSheet
中的横向边到边问题。(I1df0c、b/299058752) - 修复了以下 bug:在通过在动作条上向下滑动关闭动作条时,
ModalBottomSheet
未调用onDismissedRequest
。(Idfdd8)
版本 1.2.0-alpha07
2023 年 9 月 6 日
发布了 androidx.compose.material3:material3-*:1.2.0-alpha07
。版本 1.2.0-alpha07 中包含这些提交内容。
新功能
compose material 1.6.0-alpha05
中添加了对自动镜像图标的支持,如需详细了解自动镜像图标,请参阅版本说明。
API 变更
SliderState
实现了DraggableState
(I9b116)- 将 shape 更改为必需参数。在形状辅助函数中将
position
重命名为index
。(I34941) - 更新了
DatePicker
formatWithSkeleton
,以添加一个用于作为缓存以提升性能的地图。(I3195f) - 向
compose.foundation
添加了BasicTooltipBox
,并更新了PlainTooltipBox
和RichTooltipBox
,以便将TooltipBox
与新的PlainTooltip
和RichTooltip
可组合项搭配使用。(I79e1d)
bug 修复
dynamicLightColorScheme
和dynamicDarkColorScheme
现在会针对 Surface 和surfaceContainer
角色返回色度更高的颜色。(I5e901)- 修复了以下问题:在
LookaheadScope
内的 Scaffold 中使用子组合(例如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 变更
- 更新了复选框和
TriStateCheckbox
颜色。CheckboxDefaults.colors()
disabledUncheckedColor
现在只会影响复选框的边框。在某些特殊情况下,您需要在停用且未选中时设置内部框的颜色,这需要使用具有所需颜色值的自定义构建的CheckboxColors
实例。(I77d17、b/291943198)
版本 1.2.0-alpha04
2023 年 7 月 26 日
发布了 androidx.compose.material3:material3-*:1.2.0-alpha04
。版本 1.2.0-alpha04 中包含这些提交内容。
新功能
- 实验性分段按钮 API (Ifc8fb)
- 分隔线现在有一个参数来控制方向,以支持垂直分隔线。(I4c899、b/288438593)
API 变更
- 我们将密度依赖项移至组件级别。这适用于以下组件:
SwipeToDismiss
和基于工作表的组件。请使用提供的新重载,其中密度是参数。(I1846e) - 添加了用于指定可向可组合项提供的输入的其他注解 (Ief234)
- 向分段按钮添加了图标参数,分屏了语义,以便分段按钮可通过
SelectableSegmentedButtonRow
和ToggelableSegmentedButtonRow
分别选择实现单选和切换实现多选。(I38740) - 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
,并在Typography
的TextStyle
中添加了显式lineHeight
(以 sp 为单位)。如果您想自定义这些值,请参阅 API 文档;如需详细了解这些变更,请参阅这篇博文。(I6266f、Icabc3)
新功能
- 为
RangeSlider
添加了一个重载,该重载是该组件的有状态版本。创建了RangeSliderState
,用于存储当前活动轨道的所有信息、RangeSlider
组件的测量值,以及拖动和手势逻辑。(I8c270) - 搜索栏现在通过新添加的
shadowElevation
参数支持阴影。(Ia5369、b/271040353) ColorScheme
现在支持新的SurfaceContainer
角色。- 现在,您可以使用
LocalTonalElevationEnabled
本地组合来停用 Surface 色调地形叠加层。(Ic203c、b/277774590)
API 变更
- 打开组件颜色构造函数。(I8c4a6)
- 向两个提示 API 添加了可聚焦参数,以便开发者可以选择是否让提示吸收触摸事件。请注意,这可能会破坏无障碍功能焦点自动遍历。(Ie32d8)
- 针对性能和内存分配优化了无障碍功能。(Iede48)
- 公开了
DefaultSizeClasses
,并为WindowSizeClasses
创建了StandardSizeClasses
(I91838) - 将
WindowWidth/HeightSizeClass
更改为浮点值类 (Ie686e)
bug 修复
- Scaffold 的
contentWindowInsets
参数现在会遵循所消耗的窗口内边距。请注意,提供这些参数后,基于topBar
和bottomBar
的内容内边距行为保持不变。(I08b73、b/264601542) - 修正了居中顶部应用栏的对齐方式,以确保长标题不会在操作图标或导航图标上方呈现。(I4369f、b/236994621)
- 标签页位置现在强制要求内容宽度至少为 24dp。这为标签页指示器提供了一个无障碍触摸目标。(Id8861)
dynamicLightColorScheme
和dynamicDarkColorScheme
中的动态配色板现在支持新的 Surface 角色。(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
与标签页内容的宽度一致,而SecondaryIndicator
会跨越整个可用宽度。SecondaryIndicator
等同于现已废弃的Indicator
,可以直接替换。(I27604) - 添加了一个选项,用于在构建
DropdownMenu
或ExposedDropdownMenu
时传入ScrollState
,以控制显示的菜单项的垂直滚动状态。(Ia0734、b/185304441) - 为
Slider
添加了一个重载,该重载是该组件的有状态版本。创建了SliderState
,用于存储当前活动轨道的所有信息、Slider
组件的测量值,以及拖动和手势逻辑。(I124a5) - 将语义属性
isContainer
重命名为isTraversalGroup
(I121f6) - 添加了经过优化的
TextStyle.merge(...)
和完整的参数列表。(Iad234、b/246961787) - 将
TooltipState
、RichTooltipState
和PlainTooltipState
设为公共接口。为默认状态添加了RichTooltipStateImpl
和PlainTooltipStateImpl
。添加了remember*State
函数以获取这些已实现的状态。移除了TooltipSync
,改用TooltipDefault.GlobalMutatorMutex
。(I7813d) - 更新了
DatePickerColors
,为日期选择器分隔线、导航栏和文本输入字段颜色添加了其他自定义选项。(I1a685、b/274626815) DatePickerState
和DateRangePickerState
现在是公共接口,具有可由rememberDatePickerState
和rememberDateRangePickerState
检索的默认实现。(I71c52)- 从
DatePicker
和DateRangePicker
中移除了dateValidator
,并引入了可在状态上设置的SelectableDates
接口,以控制界面中可选择的日期或年份。(Ic2fc6) - 从稳定版 API 中移除了
TimePicker
,预计状态 API 中还会有进一步的更改 (I3f39a) ModalBottomSheet
已移至仅限 Android 设备。不建议在桌面设备上使用ModalBottomSheet
,并且该功能没有得到积极维护。(Ib3778)
bug 修复
- 修复了以下问题:当操作堆叠在一起以适应对话框的宽度时,
AlertDialog
关闭操作会显示在确认操作下方。此修复使实现与 Material Design 规范保持一致。I029de、b/235454277 - 修复了
ListItem
中针对三行项使用错误内边距的 bug。(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)
- 修复了以下问题:使用 23 小时进行初始化时,
TimePickerState
会返回错误的时数。(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 组件
对现有 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 变更
- 从稳定版 API 中移除了
TimePicker
,预计状态 API 中还会有进一步的更改 (I3f39a) ModalBottomSheet
已移至仅限 Android 设备。不建议在桌面设备上使用ModalBottomSheet
,并且该功能没有得到积极维护。(Ib3778)
版本 1.1.0-beta02
2023 年 4 月 5 日
发布了 androidx.compose.material3:material3:1.1.0-beta02
和 androidx.compose.material3:material3-window-size-class:1.1.0-beta02
。版本 1.1.0-beta02 中包含这些提交内容。
API 变更
SheetState
现在包含可选的skipHiddenState
参数rememberStandardBottomSheetState
现在包含可选的skipHiddenState
参数BottomSheetScaffold
现在有一个已定义的“隐藏”锚点,但默认处于停用状态- 更新了
SheetState.requireOffset
文档 BottomSheetDefaults.MinimizedShape
已重命名为BottomSheetDefaults.HiddenShape
(I839f4、b/273870234)
bug 修复
- 启用触摸浏览功能后,请勿将表盘从小时切换到分钟。(I717d0)
ModalBottomSheet
和BottomSheetScaffold
拖动手柄语义现已合并。(I05afb)BottomSheetScaffold
修饰符、containerColor
和contentColor
参数现在只会影响内容。(I992cb)- 适用于工作表内容的
BottomSheetScaffold nestedScroll
现在实现了快速滑动。(I992cb)
版本 1.1.0-beta01
2023 年 3 月 22 日
发布了 androidx.compose.material3:material3:1.1.0-beta01
和 androidx.compose.material3:material3-window-size-class:1.1.0-beta01
。版本 1.1.0-beta01 中包含这些提交内容。
API 变更
- 向
TimePicker
可组合项添加布局类型形参。它允许根据屏幕配置使用不同的布局 (Ia0e16) SearchBarDefaults
已被标记为实验性。(I65561)- 向
BottomSheetScaffold
添加了阴影高度 (I94e0f) - 添加了对在不显示标题部分的情况下显示日期选择器的支持。API 更改,以允许在创建日期选择器时传递 null 标题。现在,您可以传递 null 标题、标题和
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
参数名称更新为 _content,而不是 _text。默认 getter 现在是ReadOnlyComposables
(如适用)。(I69a25) - 将 Interactive Surface API 从实验性 API 升级为正式版 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 中包含这些提交内容。
新功能
- 添加了可与
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) - 在条状标签的海拔函数中将
defaultElevation
重命名为elevation
。(I0f872) - 以下 Material 3 文本字段 API 不再是实验性 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)
- 从可点击和可选择的 Surface 中移除了语义角色,更新了通过它们使用 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) - 为辅助条状标签和建议内容信息条稳定了 API(Ibb67b、b/261424370)
- 将
ListItem
、ListItemDefaults
和ListItemColors
API 提升为非实验性 API(I7e7fa、b/261438882) - 将
SliderPositions
、SliderDefaults.Thumb
和SliderDefaults.Track
提升到了稳定版,并添加了包含自定义滑块和滑道的非实验性Slider
和RangeSlider
API。同时废弃了之前的Slider
和RangeSlider
API。(Ie5ea6、b/261566890) - 将
Modifier.tooltipAnchor()
设为了公开模式,以便开发者可以将其传递给锚点,以指示应在长按时显示提示。更新了PlainTooltipBox
API,使TooltipState
不再可为 null,而是现在有默认值。(Ie2fb7) ProgressIndicatorDefaults.circularTrackColor
已被标记为@Composable
,以保持一致。(Id29cc)- 恢复了属性 getter
LocalMinimuTouchTargetEnforcement
,然后将其标记为已废弃并重定向到LocalMinimumInteractiveComponentEnforcement
。(I60dd5)
版本 1.1.0-alpha05
2023 年 1 月 26 日
发布了 androidx.compose.material3:material3:1.1.0-alpha05
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha05
。版本 1.1.0-alpha05 中包含这些提交内容。
新功能
DatePickerDialog
和无障碍功能支持- 向
RangeSlider
添加了自定义滑块和滑道。
依赖项更新
Compose UI
和Compose Material
现在依赖于 Lifecycle 2.6.0。
版本 1.1.0-alpha04
2023 年 1 月 11 日
发布了 androidx.compose.material3:material3:1.1.0-alpha04
和 androidx.compose.material3:material3-window-size-class:1.1.0-alpha04
。版本 1.1.0-alpha04 中包含这些提交内容。
新功能
- 推出了通过日历界面选择单个日期的初始
DatePicker
API。此 API 仍在更改中。(I722b9) - 通过
PlainTooltipBox
添加了对普通提示的支持。(I0cdfb) - 搜索栏 (Iad128)
SwipeToDismiss
(I458a8、b/242889540)
API 变更
- 在 Surface 上添加了
IsContainer
语义属性。此属性将在稍后的更改中使用,它会根据 Surface 等元素的语义含义确定遍历顺序。(I63379) - 将与抽屉式导航栏相关的 API 标记为稳定。(Iab01e、b/261439597)
- 为圆形进度指示器添加了滑道颜色参数,并为圆形和线形进度指示器添加了描边上限参数。(Ie668c、b/216325962、b/222964817)
- 更多已废弃隐藏函数的返回值类型可为 null (Ibf7b0)
- 添加了
Modifier.minimumInteractiveComponentSize
。它可用于预留至少 48dp 的大小,以便在元素尺寸较小时消除触摸交互的歧义。(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()
,并将 Modifiers 公开。(Ie44e1) - 为具有图标的文本按钮添加了新的默认内容内边距供使用。(I8f662)
- 为导航栏和侧边栏添加了已停用的颜色。(Ia7892、b/258867034)
- 添加了 Modifier API,用于查询祖先实体滚动信息。(I2ba9d、b/203141462)
- 在手势可以变为滚动事件时,用于在
Clickable
中正确延迟按下互动。 - 修复了在
Scrollable ViewGroup
内使用时Clickables
无法正确延迟涟漪效果的问题。 - 更新了抽屉式导航栏和动作条,以便在手势可变为滚动事件时正确延迟按下操作。
依赖项更新
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
函数,取而代之的是创建TopAppBar
时应使用的新topAppBarColors
函数。(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 组件
- 标记
- 底部应用栏
- 按钮
- FAB 和扩展型 FAB
- 卡片
- 复选框
- 条状标签
- 对话框
- 分隔线
- 下拉菜单
- 列表
- 导航栏
- 抽屉式导航栏
- 导航栏
- 进度指示器
- 单选按钮
- Slider
- 开关
- 标签页
- 文本字段
- 顶部应用栏
- 图标
- Text
- 界面
- 布局
- 内容颜色
窗口大小类别
material3-window-size-class
是一个为窗口大小类别提供支持的新库:一组主观的视口划分点,您可以根据它们设计、开发和测试可调整大小的应用布局。您可以使用calculateWindowSizeClass
检索窗口大小类别实例,该实例可用于确定界面的显示方式,例如针对较大的窗口显示侧边导航栏(而非底部导航栏)。如需了解详情并查看用法示例,请参阅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()
修饰符,应将其传递到文本字段,以实现适当的 a11y 行为。(I27fa3)- 为当前的 Slider API 添加了两个过载方法,以允许用户传入滑块或滑道来填充此滑块。(I21c00)
bug 修复
- 已将“On Error”容器的深色主题颜色映射更新为色调 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
函数。请改为使用新的 TopAppBar 函数。(I74404、b/226918634) - 添加了对顶部应用栏滑动和贴靠行为的控制。(I15c81)
- 从 Divider 中移除了 startIndent,并移动了颜色以作为最后一个参数。(If7be2)
bug 修复
- 通过在对话框显示时读出 Dialog 一词,让 TalkBack 用户能识别出对话框。(I857ef)
版本 1.0.0-beta01
2022 年 8 月 24 日
发布了 androidx.compose.material3:material3:1.0.0-beta01
和 androidx.compose.material3:material3-window-size-class:1.0.0-beta01
。版本 1.0.0-beta01 中包含这些提交内容。
API 参考文档
如需查看最新的主题、组件和其他可组合项,请参阅 Compose Material 3 API 参考文档概览。
API 变更
- 更新了 Material 3 顶部应用栏,以扣合至完全收起到完全展开的状态。此外,还将
TopAppBarDefaults
行为函数更新为可组合项,并为其顶部应用栏状态和动画规格提供默认值。(I642b3) - 更新了 FAB 组件签名,以与 Surface API 匹配 (I3afaa)
- 添加了对顶部应用栏、抽屉式导航栏、导航栏和侧边栏的边衬区内置支持。这些组件单独使用或与 Scaffold 搭配使用时,会自动为开发者处理边衬区。注意:此变更不会自动处理状态栏图标以及状态栏和导航栏的透明度。请继续手动完成上述操作,以确保实现最佳无边框体验。(I7e4e6、b/183161866)
- 更新了组件默认对象,以缩减 API Surface,便于未来实现灵活性和性能改进。(I31820)
- 对条状标签和抽屉式导航栏动作条参数进行了重新排序,以便在 API 内保持一致 (I45d0b)
- 从 Divider 中移除了
startIndent
,并移动了颜色以作为最后一个参数。(If7be2)
版本 1.0.0-alpha16
2022 年 8 月 10 日
发布了 androidx.compose.material3:material3:1.0.0-alpha16
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha16
。版本 1.0.0-alpha16 中包含这些提交内容。
新功能
- 支持在抽屉式导航栏中指定自定义宽度。(Ia7f10)
API 变更
- 对 Tab 和 LeadingIconTab 的参数进行了重新排序,以便在 API 内保持一致 (Ie2637)
- 将
BadgeDefaults
标记成了实验性对象。(I98ef3) - 移除了已废弃的抽屉式导航栏函数。(I4f2db)
- 对 Material 3 中的滑块参数进行了重新排序,以便在 API 内保持一致 (I0aee7)
- 对
NavigationBar
和NavigationRail
参数重新排序,以便在 API 中保持一致 (I51cda) - 对 Material 3 中的参数进行了重新排序,以便在整个 API 中保持一致。(If4ae1)
- 对 Material 3 中的滑块参数进行了重新排序,以便在 API 内保持一致 (I62673)
- 图标参数已重命名为相关操作,以便与顶部应用栏保持一致 (Id75be)
- 将
Badge
和BadgedBox
标记成了实验性,因为锚点对齐仍为 influx。(I1712e、b/236524516) - 将图标按钮变体上的
@ExperimentalMaterial3Api
注解更改为@OptIn
(I070b5) - 将抽屉式导航栏的内容拆分到自己的可组合项中,以支持在其上指定自定义宽度。(Ia7f10)
- 从
MenuDefaults
和TabDefaults
中移除了Divider
(I4e33c)
版本 1.0.0-alpha15
2022 年 7 月 27 日
发布了 androidx.compose.material3:material3:1.0.0-alpha15
和 androidx.compose.material3:material3-window-size-class:1.0.0-alpha15
。版本 1.0.0-alpha15 中包含这些提交内容。
新功能
- 允许将顶部应用栏从原先位置拖动。(I65c00、b/205873416)
API 变更
- 更新了
FilterChip
和ElevatedFilterChip
API,以移除selectedIcon
槽并促进重复使用leadingIcon
以显示所选状态。(Ie5dc2) - 添加了纱罩和轮廓变体颜色角色。(Id6d54)
- 修复了可组合项默认值的命名惯例。(I62b27)
- 将
ListItemDefaults
和ListItemColors
标记成了实验性。(I1f3ec) - 更改了顶部应用栏 API,以更好地反映其状态属性的含义。此外,将顶部应用栏 API 标记成了实验性。(Ic0ad8)
- 现已将文字选择颜色添加到了
TextFieldColors
中,以便用户更容易发现。(Iba1b8) - 添加了
ButtonDefault.ButtonWithIconContentPadding
,以便与包含图标的按钮一起使用。(I2bf9c) - 将文本字段标记成了实验性,以便日后更灵活地变更 API。(I127b5)
- 从
Checkbox
函数中移除了@ExperimentalMaterial3Api
注解。(I5eefc) - 从
RadioButton
函数中移除了@ExperimentalMaterial3Api
注解。(I17e2a) - 从非交互式卡片中移除了
@ExperimentalMaterial3Api
注解。(I9bd49) - 更新了各种组件默认对象,以包含颜色、形状等。(I96e11)
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 变更
- 将
TextFieldDefaults.BorderStroke
可组合项(用于在OutlinedTextField
中绘制边框描边)重命名为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
检索窗口大小类别实例,该实例可用于确定界面的显示方式,例如针对较大的窗口显示侧边导航栏(而非底部导航栏)。如需了解详情并查看用法示例,请参阅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
添加了一个扩展参数,用于控制 FAB 处于展开状态还是收起状态,并在每种状态之间添加了动画效果。为处于展开状态的 FAB 添加了扩展型 FAB 过载,并为不带图标的 ExtendedFAB 添加了尾随文本。(Iba7f1)
版本 1.0.0-alpha08
2022 年 3 月 23 日
发布了 androidx.compose.material3:material3:1.0.0-alpha08
。版本 1.0.0-alpha08 中包含这些提交内容。
新功能
- 新增了对 Material 3 文本字段的支持。(I795cc、b/199377790)
API 变更
bug 修复
- 修复了 Material3 按钮,以从 MaterialTheme 读取其默认文本样式值。(Ie62fc)
版本 1.0.0-alpha07
2022 年 3 月 9 日
发布了 androidx.compose.material3:material3:1.0.0-alpha07
。版本 1.0.0-alpha07 中包含这些提交内容。
API 变更
- 更新了 Material 3 Surface API,以恢复可点击 Surface 的过载函数,并添加了一个函数来支持可选择和可切换的 Surface。(I4bf18)
LazyVerticalGrid
和LazyHorizontalGrid
现已稳定。(I307c0)LazyVerticalGrid/LazyHorizontalGrid
和所有相关 API 已移至 .grid 子软件包。请将您的导入从 androidx.compose.foundation.lazy 更新为 androidx.compose.foundation.lazy.grid。(I2d446)- 恢复了之前仅依赖于
WindowInsetsControllerCompat
的 View 的变更,再次需要一个 Window,这对于管理某些窗口标记来说是必需的。废弃了ViewCompat.getWindowInsetsController
,改为使用WindowCompat.getInsetsController
,以确保使用正确的 Window(例如,如果 View 位于对话框中)。(I660ae、b/219572936) - 新增了
LazyVerticalGrid
API,用于定义交叉轴的大小 (I17723)
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) - 以实验性 API 的形式添加了
PermanentNavigationDrawer
和DismissibleNavigationDrawer
。这些抽屉式导航栏非常适合大屏幕设备。(I5f8ab、b/218286829) - 添加了 Material 3 底部应用栏支持 (Ic432a)
NavigationDrawer
已重命名为ModalNavigationDrawer
(I1807d、b/218286829)- 添加了 Material 3 滑块类和令牌 (I1ccee)
- 添加了 Tab 实现,请参阅用法示例文档 (Ie0146)
bug 修复
- 修复了
TalkBack
屏幕阅读器线性导航选择空白的顶部应用栏标题的问题。(Id4690) - 为
FloatingActionButtonDefaults
添加了IconSize
。(Ia71cf) - 修复了在使用
LazyColumn
添加长文本时隐藏AlertDialog
按钮的bug。(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's
容器颜色更新为透明(I6b248、b/213339737)
版本 1.0.0-alpha03
2022 年 1 月 12 日
发布了 androidx.compose.material3:material3:1.0.0-alpha03
。版本 1.0.0-alpha03 中包含这些提交内容。
bug 修复
- 向 Material 3 的
MaterialTheme
中添加了LocalIndication
。(I7ce4e) - 修复了向复选框应用的圆角半径存在的问题(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) - 修复了硬编码按钮始终处于启用状态的 bug。(Iea832、b/205335456)
版本 1.0.0-alpha01
2021 年 10 月 27 日
发布了 androidx.compose.material3:material3:1.0.0-alpha01
。版本 1.0.0-alpha01 中包含这些提交内容。
新功能
Material Design 3 主题和 Material You 动态配色
Material Design 3 组件
如需了解详情,请参阅《Compose 中的 Material 主题设置》指南中的“Material Design 3 和 Material You”部分。