Breaking changes
- Not yet released to stable
- Released in Flutter 3.10
- Released in Flutter 3.7
- Released in Flutter 3.3
- Released in Flutter 3
- Released in Flutter 2.10
- Released in Flutter 2.5
- Reverted change in 2.2
- Released in Flutter 2.2
- Released in Flutter 2
- Released in Flutter 1.22
- Released in Flutter 1.20
- Released in Flutter 1.17
As described in the breaking change policy, on occasion we publish guides for migrating code across a breaking change.
To be notified about future breaking changes, join the groups Flutter announce and Dart announce.
When facing Dart errors after upgrading Flutter,
consider using the dart fix
command
to automatically migrate your code.
Not every breaking change is supported in this way,
but many are.
To avoid being broken by future versions of Flutter, consider submitting your tests to our test registry.
The following guides are available. They are sorted by release, and listed in alphabetical order:
Not yet released to stable
- Moved ReorderableListView’s localized strings from material to widgets localizations
-
Removed
ignoringSemantics
properties -
Deprecated
RouteInformation.location
and its related APIs
Released in Flutter 3.10
- Dart 3 changes in Flutter v3.10 and later
- Deprecated API removed after v3.7
- Insert content text input client
- Deprecated the window singleton
- Resolve the Android Java Gradle error
- Require one data variant for
ClipboardData
constructor - “Zone mismatch” message
Released in Flutter 3.7
- Deprecated API removed after v3.3
- Replaced parameters for customizing context menus with a generic widget builder
- iOS FlutterViewController splashScreenView made nullable
- Migrate
of
to non-nullable return values, and addmaybeOf
- Removed RouteSettings.copyWith
- ThemeData’s toggleableActiveColor property has been deprecated
Released in Flutter 3.3
- Adding ImageProvider.loadBuffer
- Default PrimaryScrollController on Desktop
- Trackpad gestures can trigger GestureRecognizer
Released in Flutter 3
- Deprecated API removed after v2.10
- Migrate useDeleteButtonTooltip to deleteButtonTooltipMessage of Chips
- Page transitions replaced by ZoomPageTransitionsBuilder
Released in Flutter 2.10
- Deprecated API removed after v2.5
- Raw images on Web uses correct origin and colors
- Required Kotlin version
- Scribble Text Input Client
Released in Flutter 2.5
- Default drag scrolling devices
- Deprecated API removed after v2.2
- Change the enterText method to move the caret to the end of the input text
- GestureRecognizer cleanup
- Introducing package:flutter_lints
- Replace AnimationSheetBuilder.display with collate
- ThemeData’s accent properties have been deprecated
- Transition of platform channel test interfaces to flutter_test package
- Using HTML slots to render platform views in the web
Reverted change in 2.2
The following breaking change was reverted in release 2.2:
-
Network Policy on iOS and Android
- Introduced in version: 2.0.0
Reverted in version: 2.2.0 (proposed)
Released in Flutter 2.2
Released in Flutter 2
- Added BuildContext parameter to TextEditingController.buildTextSpan
- Android ActivityControlSurface attachToActivity signature change
- Android FlutterMain.setIsRunningInRobolectricTest testing API removed
- Clip behavior
- Deprecated API removed after v1.22
- Dry layout support for RenderBox
- Eliminating nullOk Parameters
- Material Chip button semantics
- SnackBars managed by the ScaffoldMessenger
- TextSelectionTheme migration
- Transition of platform channel test interfaces to flutter_test package
- Use maxLengthEnforcement instead of maxLengthEnforced
Released in Flutter 1.22
- Android v1 embedding app and plugin creation deprecation
- Cupertino icons 1.0.0
- The new Form, FormField auto-validation API
Released in Flutter 1.20
- Actions API revision
- Adding TextInputClient.currentAutofillScope property
- New Buttons and Button Themes
- Dialogs’ Default BorderRadius
- More Strict Assertions in the Navigator and the Hero Controller Scope
- The Route Transition record and Transition delegate updates
- The RenderEditable needs to be laid out before hit testing
- Reversing the dependency between the scheduler and services layer
- Semantics Order of the Overlay Entries in Modal Routes
- showAutocorrectionPromptRect method added to TextInputClient
- TestWidgetsFlutterBinding.clock
- TextField requires MaterialLocalizations
Released in Flutter 1.17
- Adding ‘linux’ and ‘windows’ to TargetPlatform enum
- Annotations return local position relative to object
- Container color optimization
- CupertinoTabBar requires Localizations parent
- Generic type of ParentDataWidget changed to ParentData
- ImageCache and ImageProvider changes
- ImageCache large images
- MouseTracker moved to rendering
- MouseTracker no longer attaches annotations
- Nullable CupertinoTheme.brightness
- Rebuild optimization for OverlayEntries and Routes
- Scrollable AlertDialog
- TestTextInput state reset
- TextInputClient currentTextEditingValue
- The forgetChild() method must call super
- The Route and Navigator refactoring
- FloatingActionButton and ThemeData’s accent properties