v3.13 后移除的废弃 API
概述
#根据 Flutter 的 废弃策略,在 3.13 稳定版发布后达到生命周期结束的废弃 API 已被移除。
所有受影响的 API 都已编译到此主要来源中,以帮助迁移。为进一步帮助您的迁移,请查看此 快速参考表。
变更
#本节按软件包和受影响的类列出了废弃项。
Chip 类中的 useDeleteButtonTooltip
#软件包:flutter Flutter Fix 支持:是
以下类中的 useDeleteButtonTooltip
属性在 v2.10 中已废弃
DeletableChipAttributes
Chip
RawChip
InputChip
deleteButtonTooltipMessage
替换了 useDeleteButtonTooltip
。此更改简化了 API,因为为 deleteButtonTooltipMessage
提供空字符串与将原始属性 useDeleteButtonTooltip
设置为 false 达到相同的结果。当 deleteButtonTooltipMessage
未设置时,默认使用 MaterialLocalizations.deleteButtonTooltip
。
废弃 Chips 的 useDeleteButtonTooltip
设计文档更深入地介绍了此对 chips 和工具提示的更新。要了解更多信息,请查看 chips 和工具提示迁移指南。
迁移指南
迁移前的代码
Chip(useDeleteButtonTooltip: false);
InputChip(useDeleteButtonTooltip: true);
RawChip rawChip = RawChip();
rawChip.useDeleteButtonTooltip;
迁移后的代码
Chip(deleteButtonTooltipMessage: '');
InputChip();
RawChip rawChip = RawChip();
rawChip.deleteButtonTooltipMessage;
参考资料
API 文档
相关 PR
MaterialButtonWithIconMixin
#软件包:flutter Flutter Fix 支持:否
MaterialButtonWithIconMixin
属性在 v2.11 中已废弃。
随着新按钮类 TextButton
、OutlinedButton
和 ElevatedButton
的引入,此 mixin 不再使用。早期版本移除了使用此 mixin 的旧按钮类。因此,此 mixin 不再影响任何可能混入它的类。
迁移指南
迁移前的代码
class MyButtonClass extends StatelessWidget with MaterialButtonWithIconMixin {
// ...
}
迁移后的代码
class MyButtonClass extends StatelessWidget {
// ...
}
参考资料
相关 PR
PlatformsViewsService.synchronizeToNativeViewHierarchy
#软件包:flutter Flutter Fix 支持:否
PlatformsViewsService
的静态方法 synchronizeToNativeViewHierarchy
在 v2.11 中已废弃。
在废弃期间,此方法是一个无操作函数,因为它不再需要调用以提高性能。应删除对该方法的引用,并且不会影响应用程序。
迁移指南
迁移前的代码
await PlatformsViewsService.synchronizeToNativeViewHierarchy(false);
迁移后的代码
参考资料
API 文档
相关 PR
TextSelectionOverlay.fadeDuration
#软件包:flutter Flutter Fix 支持:是
TextSelectionOverlay
的静态属性 fadeDuration
在 v2.12 中已废弃。
SelectionOverlay.fadeDuration
属性替换了 TextSelectionOverlay.fadeDuration
。随着 TextSelectionOverlay
的重构,SelectionOverlay
作为一种更通用的部件被添加,不依赖于 RenderEditable
。
迁移指南
迁移前的代码
TextSelectionOverlay.fadeDuration;
迁移后的代码
SelectionOverlay.fadeDuration;
参考资料
API 文档
相关 PR
androidOverscrollIndicator
#软件包:flutter Flutter Fix 支持:否
以下类中的 androidOverscrollIndicator
属性在 v2.13 中已废弃
ScrollBehavior
MaterialScrollBehavior
ThemeData
引入此标志是为了允许用户配置滚动部件以使用 GlowingOverscrollIndicator
或 StretchingOvercrollIndicator
。由于框架引入了更多对 Material 3 样式部件的支持,因此它已被 ThemeData.useMaterial3
标志取代。
由于 ThemeData.useMaterial3
默认为 true
,因此 StretchingOverscrollIndicator
默认启用。将此值设置为 false
将改为启用 GlowingOverscrollIndicator
。
或者,可以重写 ScrollBehavior
或 MaterialScrollBehavior
的 buildOverscrollIndicator
方法,以进一步改变过滚动指示器的外观。
迁移指南
迁移前的代码
MaterialApp(
scrollBehavior: MaterialScrollBehavior(
androidOverscrollIndicator: AndroidOverscrollIndicator.glow,
),
//...
);
MaterialApp(
scrollBehavior: ScrollBehavior(
androidOverscrollIndicator: AndroidOverscrollIndicator.glow,
),
//...
);
MaterialApp(
theme: Theme.light().copyWith(
androidOverscrollIndicator: AndroidOverscrollIndicator.glow,
),
//...
);
迁移后的代码
MaterialApp(
theme: Theme.light().copyWith(
// defaults to true and stretching indicator,
// false results in glowing indicator
useMaterial3: false,
),
//...
);
参考资料
API 文档
ScrollBehavior
MaterialScrollBehavior
ThemeData
GlowingOverscrollIndicator
StretchingOverscrollIndicator
相关 PR
ImageProvider 和 PaintingBinding 的更新
#软件包:flutter Flutter Fix 支持:否
PaintingBinding
的 instantiateImageCodec
方法,以及 ImageProvider
的 load
方法和关联的 DecoderCallback
,都已在 v2.13 中废弃。
相应的替代方法是
废弃方法 | 当前方法 |
---|---|
PaintingBinding.instantiateImageCodec | PaintingBinding.instantiateImageCodecFromBuffer |
ImageProvider.load | ImageProvider.loadBuffer |
DecoderCallback | DecoderBufferCallback |
此更改通过使用缓冲区,实现了更快的图像加载性能。
迁移指南
迁移前的代码
PaintingBinding.instance.instantiateImageCodec
迁移后的代码
PaintingBinding.instance.instantiateImageCodecFromBuffer
参考资料
API 文档
相关 PR
TestWindow 属性
#软件包:flutter_test Flutter Fix 支持:否
为了支持多窗口,TestWindow
的许多废弃属性已被移除。尽管 TestWindow
已废弃,但目前不符合移除条件。现在迁移过期的属性将有助于从 TestWindow
迁移。
以下属性已被移除
localeTestValue
clearLocaleTestValue
localesTestValue
clearLocalesTestValue
initialLifecycleStateTestValue
textScaleFactorTestValue
clearTextScaleFactorTestValue
platformBrightnessTestValue
clearPlatformBrightnessTestValue
alwaysUse24HourFormatTestValue
clearAlwaysUse24HourTestValue
brieflyShowPasswordTestValue
defaultRouteNameTestValue
clearDefaultRouteNameTestValue
semanticsEnabledTestValue
clearSemanticsEnabledTestValue
accessibilityFeaturesTestValue
clearAccessibilityFeaturesTestValue
要了解有关此 TestWindow
更新的更多信息,请查看 TestWindow
迁移指南。
迁移指南
迁移前的代码
testWidgets('My test', (WidgetTester tester) aysnc {
// For all instances, replace window with platformDispatcher
tester.binding.window.textScaleFactorTestValue = 42;
addTearDown(tester.binding.window.clearTextScaleFactorTestValue);
// ...
});
迁移后的代码
testWidgets('My test', (WidgetTester tester) aysnc {
// For all instances, replace window with platformDispatcher
tester.binding.platformDispatcher.textScaleFactorTestValue = 42;
addTearDown(tester.binding.platformDispatcher.clearTextScaleFactorTestValue);
// ...
});
参考资料
API 文档
相关 PR
时间线
#稳定版本:3.16