v3.16 后移除的已弃用 API
摘要
#根据 Flutter 的 弃用策略,在 3.16 稳定版本发布后已达到生命周期结束的已弃用 API 已被移除。
所有受影响的 API 已被编译到此主要来源中,以帮助迁移。为了进一步帮助您的迁移,请查看此 快速参考表。
更改
#本节按包和受影响的类列出了弃用情况。
Button styleFrom
属性
#包:flutter Flutter Fix 支持:是
TextButton
、ElevatedButton
和 OutlinedButton
组件都具有一个静态 styleFrom
方法,用于生成 ButtonStyle
。以下每个类的此方法的颜色属性在 v3.1 中已弃用
TextButton.styleFrom
primary
onSurface
ElevatedButton.styleFrom
primary
onPrimary
onSurface
OutlinedButton.styleFrom
primary
onSurface
这些更改使 API 更好地与更新的 Material Design 规范保持一致。这些更改还通过将这些属性替换为 backgroundColor
、foregroundColor
和 disabledForegroundColor
,更清晰地说明了颜色将如何应用于按钮。
迁移指南
迁移前代码
TextButton.styleFrom(
primary: Colors.red,
onSurface: Colors.black,
);
ElevatedButton.styleFrom(
primary: Colors.red,
onPrimary: Colors.blue,
onSurface: Colors.black,
);
OutlinedButton.styleFrom(
primary: Colors.red,
onSurface: Colors.black,
);
迁移后代码
TextButton.styleFrom(
foregroundColor: Colors.red,
disabledForegroundColor: Colors.black,
);
ElevatedButton.styleFrom(
backgroundColor: Colors.red,
foregroundColor: Colors.blue,
disabledForegroundColor: Colors.black,
);
OutlinedButton.styleFrom(
foregroundColor: Colors.red,
disabledForegroundColor: Colors.black,
);
参考
API 文档
相关 PR
ThemeData.selectedRowColor
#包:flutter Flutter Fix 支持:是
ThemeData
的 selectedRowColor
属性在 v3.1 中已弃用。
框架不再使用此属性,因为使用它的组件已迁移到其他组件主题或在更新的 Material Design 规范中不再需要它。
迁移指南
迁移前代码
ThemeData(
// ...
selectedRowColor: Colors.pink, // Would have no effect.
);
迁移后代码
ThemeData(
// ...
// Remove uses.
);
参考
API 文档
相关 PR
NavigatorState.focusScopeNode
#包:flutter Flutter Fix 支持:是
NavigatorState
的 focusScopeNode
属性在 v3.1 中已弃用。
进行此更改是为了解决 Navigator
引入的 FocusScopeNode
周围的一些问题。相反,FocusScope
已移至 WidgetsApp
中最顶层的 Navigator
外部。NavigatorState
已更改为包含其自己的 FocusNode
,从中它可以引用其 FocusNode.enclosingScope
以访问正确的 FocusScopeNode
。
迁移指南
迁移前代码
Navigator.of(context).focusScopeNode;
迁移后代码
Navigator.of(context).focusNode.enclosingScope!;
参考
API 文档
相关 PR
PlatformMenuBar.body
#包:flutter Flutter Fix 支持:是
PlatformMenuBar
的 body
属性在 v3.1 中已弃用。
进行此更改是为了使 PlatformMenuBar
与框架中的其他组件保持一致,将其重命名为 child
。
迁移指南
迁移前代码
PlatformMenuBar(
body: myWidget,
);
迁移后代码
PlatformMenuBar(
child: myWidget,
);
参考
API 文档
相关 PR
TextTheme
、WidgetInspectorService
和 WidgetInspectorServiceExtensions
的 先前宣布的 弃用在此周期中未被移除。WidgetInspectorService
和 WidgetInspectorServiceExtensions
上的 setPubRootDirectories
弃用已延长一年,以允许 IDE 和其他客户迁移。预计 TextTheme
弃用将在下一个周期中移除,届时将再次宣布。
时间线
#稳定版本:3.19.0
除非另有说明,否则本网站上的文档反映了 Flutter 的最新稳定版本。页面上次更新于 2024-06-01。 查看源代码 或 报告问题。