概述

#

Material 库已更新,以匹配最新的 Material Design 规范。更改包括新组件、新组件主题和更新的组件视觉效果。从本发布版本开始,ThemeData.useMaterial3 默认设置为 true

背景

#

Flutter 的 Material 小部件现在完全支持 Material 3,并且从 Flutter 3.16 开始,Material 3 现已成为默认样式。

Material 3 组件的外观主要由 ThemeData.colorSchemeThemeData.textTheme 的值决定。ColorScheme 使创建深色和浅色方案变得更容易,从而使您的应用既美观又符合辅助功能要求。要进一步自定义 Material 3 组件的外观,请将组件主题添加到您的 ThemeData 中,例如 ThemeData.segmentedButtonThemeThemeData.snackBarTheme

此外,Material 3 通过使用缓动和持续时间标记改进了动画效果。这意味着 Material 2 曲线已被重命名为包含“legacy”(旧版)字样,并最终将被弃用和移除。

查看 Material 3 画廊,测试所有新组件并将其与 Material 2 进行比较。

迁移指南

#

在 3.16 发布之前,这些更改是通过在 ThemeData 上使用 useMaterial3 主题属性进行“选择启用”的。从本发布版本开始,useMaterial3 默认为 true。您仍然可以通过在 MaterialApp 主题中指定 useMaterial3: false 来选择不使用 Material 3 版本的 Material 库。

此外,一些小部件无法仅仅通过更新来解决,而是需要全新的实现。因此,当您看到 UI 在 Material 3 下运行时,它可能看起来有点奇怪。要解决此问题,请手动迁移到新的小部件,例如 NavigationBar

有关更多详细信息,请查看 GitHub 上的 Material 3 汇总问题

时间线

#

落地版本:3.13.0-4.0.pre
稳定版本:3.16

参考资料

#

文档

API 文档

相关问题

相关 PR