概述

#

ReorderableListView 的本地化字符串已从 Material 本地化移至 Widgets 本地化。这些字符串在 Material 本地化中已被弃用。

背景

#

ReorderableListView 使用这些字符串来标注其语义操作。为了将相同的标注应用于 ReorderableListSliverReorderableList,它们需要从 Widgets 库中访问这些字符串。

变更说明

#

MaterialLocalizations 中用于 reorderItemToStartreorderItemToEndreorderItemUpreorderItemDownreorderItemLeftreorderItemRight 的字符串已被弃用,并由 WidgetsLocalizations 中相同的字符串替代。

迁移指南

#

如果您的代码中使用了这些字符串,现在可以从 WidgetsLocalizations 访问它们。

迁移前的代码

dart
MaterialLocalizations.of(context).reorderItemToStart;

迁移后的代码

dart
WidgetsLocalizations.of(context).reorderItemToStart;

如果您重写了 MaterialLocalizationsWidgetsLocalizations,请务必从 MaterialLocalizations 子类中删除这些翻译,并将它们移至 WidgetsLocalizations 子类。

迁移前的代码

dart
class MaterialLocalizationsMyLanguage extends MaterialLocalizationsEn {
  // ...
  @override
  String get reorderItemRight => 'my translation';
}

迁移后的代码

dart
class MaterialLocalizationsMyLanguage extends MaterialLocalizationsEn {
  // ...
}

class WidgetsLocalizationsMyLanguage extends WidgetsLocalizationsEn {
  // ...
  @override
  String get reorderItemRight => 'my translation';
}

时间线

#

发布版本: v3.10.0-2.0.pre
在稳定版中发布: 3.13.0

参考资料

#

相关 PR

  • PR 124711: 弃用 material_localizations 中 ReorderableList 的字符串。