Skip to main content

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 (https://docs.google.com/document/d/1wc9ot7T2E7hJubYxEWMX230a79wYSiFey4BHxnEzHtw/edit?usp=sharing&resourcekey=0-Bo7KPqEtkWgZcSuRCqwQ5w) 设计文档更深入地介绍了此对芯片和工具提示的更新。要了解更多信息,请查看芯片和工具提示迁移指南

迁移指南

迁移前的代码:

dart
Chip(useDeleteButtonTooltip: false);
InputChip(useDeleteButtonTooltip: true);
RawChip rawChip = RawChip();
rawChip.useDeleteButtonTooltip;

迁移后的代码:

dart
Chip(deleteButtonTooltipMessage: '');
InputChip();
RawChip rawChip = RawChip();
rawChip.deleteButtonTooltipMessage;

参考资料

API 文档:

相关的 PR:


MaterialButtonWithIconMixin

#

包:flutter Flutter Fix 支持:否

MaterialButtonWithIconMixin 属性在 v2.11 中已弃用。

随着新的按钮类 TextButtonOutlinedButtonElevatedButton 的引入,此 mixin 不再使用。 之前的版本移除了使用此 mixin 的旧按钮类。 因此,此 mixin 不再影响可能混合其中的任何类。

迁移指南

迁移前的代码:

dart
class MyButtonClass extends StatelessWidget with MaterialButtonWithIconMixin {
  // ...
}

迁移后的代码:

dart
class MyButtonClass extends StatelessWidget {
  // ...
}

参考资料

相关的 PR:


PlatformsViewsService.synchronizeToNativeViewHierarchy

#

包:flutter Flutter Fix 支持:否

PlatformsViewsService 的静态方法 synchronizeToNativeViewHierarchy 在 v2.11 中已弃用。

在弃用期间,该方法是一个无操作函数,因为它不再需要调用以提高性能。应移除对该方法的引用,并且不会影响应用程序。

迁移指南

迁移前的代码:

dart
await PlatformsViewsService.synchronizeToNativeViewHierarchy(false);

迁移后的代码:

dart

参考资料

API 文档:

相关的 PR:


TextSelectionOverlay.fadeDuration

#

包:flutter Flutter Fix 支持:是

TextSelectionOverlay 的静态 fadeDuration 属性在 v2.12 中已弃用。

SelectionOverlay.fadeDuration 属性替换了 TextSelectionOverlay.fadeDuration。 通过 TextSelectionOverlay 重构,添加了 SelectionOverlay 作为更通用的 widget,无需专门依赖于 RenderEditable

迁移指南

迁移前的代码:

dart
TextSelectionOverlay.fadeDuration;

迁移后的代码:

dart
SelectionOverlay.fadeDuration;

参考资料

API 文档:

相关的 PR:


androidOverscrollIndicator

#

包:flutter Flutter Fix 支持:否

以下类的 androidOverscrollIndicator 属性在 v2.13 中已弃用:

  • ScrollBehavior
  • MaterialScrollBehavior
  • ThemeData

引入此标志是为了允许用户配置滚动 widget 以使用 GlowingOverscrollIndicatorStretchingOvercrollIndicator。 它已被 ThemeData.useMaterial3 标志弃用,因为框架引入了对 Material 3 风格 widget 的更多支持。

由于 ThemeData.useMaterial3 默认情况下为 true,因此默认情况下应用 StretchingOverscrollIndicator。将其值设置为 false 将应用 GlowingOverscrollIndicator

或者,可以重写 ScrollBehaviorMaterialScrollBehaviorbuildOverscrollIndicator 方法以进一步更改过度滚动指示器的外观。

迁移指南

迁移前的代码:

dart
MaterialApp(
  scrollBehavior: MaterialScrollBehavior(
    androidOverscrollIndicator: AndroidOverscrollIndicator.glow,
  ),
  //...
);

MaterialApp(
  scrollBehavior: ScrollBehavior(
    androidOverscrollIndicator: AndroidOverscrollIndicator.glow,
  ),
  //...
);

MaterialApp(
  theme: Theme.light().copyWith(
    androidOverscrollIndicator: AndroidOverscrollIndicator.glow,
  ),
  //...
);

迁移后的代码:

dart
MaterialApp(
  theme: Theme.light().copyWith(
    // 默认值为 true 和 stretching indicator,
    // false 结果为 glowing indicator
    useMaterial3: false,
  ),
  //...
);

参考资料

API 文档:

相关的 PR:


ImageProvider 和 PaintingBinding 的更新

#

包:flutter Flutter Fix 支持:否

PaintingBindinginstantiateImageCodec 方法以及 ImageProviderload 方法和相关的 DecoderCallback 在 v2.13 中都已弃用。

相应的替换是:

已弃用的方法当前方法
PaintingBinding.instantiateImageCodecPaintingBinding.instantiateImageCodecFromBuffer
ImageProvider.loadImageProvider.loadBuffer
DecoderCallbackDecoderBufferCallback

此更改通过使用缓冲区提高了图像加载速度。

迁移指南

迁移前的代码:

dart
PaintingBinding.instance.instantiateImageCodec

迁移后的代码:

dart
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 迁移指南

迁移指南

迁移前的代码:

dart
testWidgets('My test', (WidgetTester tester) aysnc {
  // 对于所有实例,将 window 替换为 platformDispatcher
  tester.binding.window.textScaleFactorTestValue = 42;
  addTearDown(tester.binding.window.clearTextScaleFactorTestValue);
  // ...
});

迁移后的代码:

dart
testWidgets('My test', (WidgetTester tester) aysnc {
  // 对于所有实例,将 window 替换为 platformDispatcher
  tester.binding.platformDispatcher.textScaleFactorTestValue = 42;
  addTearDown(tester.binding.platformDispatcher.clearTextScaleFactorTestValue);
  // ...
});

参考资料

API 文档:

相关的 PR:


时间线

#

稳定版本:3.16