`ReorderableListView`'s localized strings were moved from material localizations to widgets localizations. These strings were deprecated in material localizations.
Original behavior
`ReorderableListView` uses these strings to annotate its semantics actions. To apply the same annotations to `ReorderableList` and `SliverReorderableList`, they need to access these strings from widgets library.
New behavior
The `MaterialLocalizations` strings for `reorderItemToStart`, `reorderItemToEnd`, `reorderItemUp`, `reorderItemDown`, `reorderItemLeft`, and `reorderItemRight` are deprecated and replaced by the same strings in `WidgetsLocalizations`.
- Who is affected
- Applications and packages relying on the previous behaviour or signature. Code that uses ReorderableListView, ReorderableList, SliverReorderableList and related APIs.
- Practical impact
- Behaviour or API differences that can break builds or change runtime behaviour.
- What action should I take?
- Follow the official migration guide below, update affected call sites, run `dart fix --apply` where a fix is available, then run your tests.
Before and after (from the official guide)
| 1 | − | MaterialLocalizations.of(context).reorderItemToStart; |
| 1 | + | WidgetsLocalizations.of(context).reorderItemToStart; |
Raw before / after
MaterialLocalizations.of(context).reorderItemToStart;
WidgetsLocalizations.of(context).reorderItemToStart;
Official migration guide (excerpt, © The Flutter Authors, CC BY 3.0)
If you use these strings in your code,
you can access them from WidgetsLocalizationsinstead.
Code before migration:
MaterialLocalizations.of(context).reorderItemToStart;Code after migration:
WidgetsLocalizations.of(context).reorderItemToStart;If you override MaterialLocalizations or WidgetsLocalizations,
make sure to remove the translations from the MaterialLocalizations
subclass and move them to the WidgetsLocalizations subclass.
Code before migration:
class MaterialLocalizationsMyLanguage extends MaterialLocalizationsEn {
// ...
@override
String get reorderItemRight => 'my translation';
}Code after migration:
class MaterialLocalizationsMyLanguage extends MaterialLocalizationsEn {
// ...
}
class WidgetsLocalizationsMyLanguage extends WidgetsLocalizationsEn {
// ...
@override
String get reorderItemRight => 'my translation';
}AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.Listed in the official breaking-changes index (docs.flutter.dev/release/breaking-changes).
An official announcement or migration guide documents an intended behaviour or API change. A verified source change (git diff) shows code changed but does not by itself prove a public API is breaking. AI interpretations are labelled and never used to classify a change.
- Source commit
- b3045439b7c0
- Source last updated
- Oct 21, 2026
- Last synchronized
- Oct 21, 2026
- Publication status
- published
Publication history
- Oct 21, 2026, 8:31 PM: new → published (ingestion) — Backed by an official breaking-change/migration guide.
AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.