In accordance with Flutter's Deprecation Policy, deprecated APIs that reached end of life after the 3.7 stable release have been removed.
- Who is affected
- Any code still referencing the removed API will fail to compile after upgrading. Code that uses GestureRecognizer.kind, GestureRecognizer.supportedDevices, GestureRecognizer and related APIs.
- Practical impact
- Compile errors until migrated; must be addressed before upgrading.
- 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 | var myRecognizer = GestureRecognizer( | |
| 2 | − | kind: PointerDeviceKind.mouse, |
| 3 | ); |
| 1 | var myRecognizer = GestureRecognizer( | |
| 2 | + | supportedDevices: <PointerDeviceKind>[ PointerDeviceKind.mouse ], |
| 3 | ); |
Raw before / after
var myRecognizer = GestureRecognizer( kind: PointerDeviceKind.mouse, );
var myRecognizer = GestureRecognizer( supportedDevices: <PointerDeviceKind>[ PointerDeviceKind.mouse ], );
Official migration guide (excerpt, © The Flutter Authors, CC BY 3.0)
Code before migration:
var myTheme = ThemeData(
//...
accentColor: Colors.blue,
//...
);
var color = myTheme.accentColor;Code after migration:
var myTheme = ThemeData(
//...
colorScheme: ColorScheme(
//...
secondary:Colors.blue,
//...
),
//...
);
var color = myTheme.colorScheme.secondary;References
API documentation:
Relevant issues:
Relevant PRs:
Deprecated in:
Removed in:
AppBar, SliverAppBar, and AppBarTheme updates
Supported by Flutter Fix: yes
In v2.4, several changes were made to the app bar classes and their themes to better align with Material Design. Several properties were deprecated at that time and have been removed.
For AppBar, SliverAppBar and AppBarTheme:
brightnesshas been removed, and is replaced bysystemOverlayStyletextThemehas been removed, and is replaced by eithertoolbarTextStyleortitleTextStyle.backwardsCompatibilitycan be removed, as it was a temporary migration flag for these properties.
Additionally, AppBarTheme.color was removed, with AppBarTheme.backgroundColor
as its replacement.
Migration guide
Code before migration:
var toolbarTextStyle = TextStyle(...);
var titleTextStyle = TextStyle(...);
AppBar(
brightness: Brightness.light,
textTheme: TextTheme(
bodyMedium: toolbarTextStyle,
titleLarge: titleTextStyle,
)
backwardsCompatibility: true,
);
AppBarTheme(color: Colors.blue);Code after migration:
var toolbarTextStyle = TextStyle(...);
var titleTextStyle = TextStyle(...);
AppBar(
systemOverlayStyle: SystemOverlayStyle(statusBarBrightness: Brightness.light),
toolbarTextStyle: toolbarTextStyle,
titleTextStyle: titleTextStyle,
);
AppBarTheme(backgroundColor: Colors.blue);References
API documentation:
Relevant issues:
Deprecated in:
Removed in:
SystemChrome.setEnabledSystemUIOverlays
Supported by Flutter Fix: yes
In v2.3, SystemChrome.setEnabledSystemUIOVerlays, the static method for
setting device system level overlays like status and navigation bars, was
deprecated in favor of SystemChrome.setEnabledSystemUIMode.
This change allowed for setting up common fullscreen modes that match native Android app designs like edge to edge.
Manually setting overlays, instead of choosing a specific mode, is still
supported through SystemUiMode.manual, allowing developers to pass the same
list of overlays as before.
Migration guide
Code before migration:
SystemChrome.setEnabledSystemUIOverlays(<SystemUiOverlay>[
SystemUiOverlay.top,
SystemUiOverlay.bottom,
]);Code after migration:
SystemChrome.setEnabledSystemUIMode(
SystemUiMode.manual,
overlays: <SystemUiOverlay>[
SystemUiOverlay.top,
SystemUiOverlay.bottom,
],
);References
API documentation:
Relevant issues:
Deprecated in:
Removed in:
SystemNavigator.routeUpdated
Supported by Flutter Fix: yes
In v2.3, SystemNavigator.routeUpdated was deprecated in favor of
SystemNavigator.routeInformationUpdated.
Instead of having two ways to update the engine about the current route, the
change moved everything to one API, which separately selects the single-entry
history mode if a Navigator that reports routes is created.
Migration guide
Code before migration:
SystemNavigator.routeUpdated(routeName: 'foo', previousRouteName: 'bar');Code after migration:
SystemNavigator.routeInformationUpdated(location: 'foo');References
API documentation:
Relevant issues:
Deprecated in:
Removed in:
AnimatedSize.vsync
Supported by Flutter Fix: yes
In v2.2, AnimatedSize.vsyc was deprecated. This property was no longer
necessary after AnimatedSize was converted to a StatefulWidget whose State
mixed in SingleTickerProviderStateMixin. The change was made to fix a memory
leak.
Uses of vsync should be removed, as AnimatedSize now handles this property.
Migration guide
Code before migration:
AnimatedSize(
vsync: this,
// ...
);Code after migration:
AnimatedSize(
// ...
);References
API documentation:
Deprecated in:
Removed in:
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; title states removal.
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.