Flutter 3.41 is live! Check out theFlutter 3.41 blog post!
Deprecated API removed after v2.2
After reaching end of life, the following deprecated APIs were removed from Flutter.
Summary
#In accordance with Flutter'sDeprecation Policy, deprecated APIs that reached end of life after the 2.2 stable release have been removed.
All affected APIs have been compiled into this primary source to aid in migration. Aquick reference sheet is available as well.
Changes
#This section lists the deprecations, listed by the affected class.
hasFloatingPlaceholder ofInputDecoration &InputDecorationTheme
#Supported by Flutter Fix: yes
hasFloatingPlaceholder was deprecated in v1.13.2. UsefloatingLabelBehavior instead. WhereuseFloatingPlaceholder was true, replace withFloatingLabelBehavior.auto. WhereuseFloatingPlaceholder was false, replace withFloatingLabelBehavior.never. This change allows more behaviors to be specified beyond the original binary choice, addingFloatingLabelBehavior.always as an additional option.
Migration guide
Code before migration:
// InputDecoration// Base constructorInputDecoration(hasFloatingPlaceholder:true);InputDecoration(hasFloatingPlaceholder:false);// collapsed constructorInputDecoration.collapsed(hasFloatingPlaceholder:true);InputDecoration.collapsed(hasFloatingPlaceholder:false);// Field accessinputDecoration.hasFloatingPlaceholder;// InputDecorationTheme// Base constructorInputDecorationTheme(hasFloatingPlaceholder:true);InputDecorationTheme(hasFloatingPlaceholder:false);// Field accessinputDecorationTheme.hasFloatingPlaceholder;// copyWithinputDecorationTheme.copyWith(hasFloatingPlaceholder:false);inputDecorationTheme.copyWith(hasFloatingPlaceholder:true);Code after migration:
// InputDecoration// Base constructorInputDecoration(floatingLabelBehavior:FloatingLabelBehavior.auto);InputDecoration(floatingLabelBehavior:FloatingLabelBehavior.never);// collapsed constructorInputDecoration.collapsed(floatingLabelBehavior:FloatingLabelBehavior.auto);InputDecoration.collapsed(floatingLabelBehavior:FloatingLabelBehavior.never);// Field accessinputDecoration.floatingLabelBehavior;// InputDecorationTheme// Base constructorInputDecorationTheme(floatingLabelBehavior:FloatingLabelBehavior.auto);InputDecorationTheme(floatingLabelBehavior:FloatingLabelBehavior.never);// Field accessinputDecorationTheme.floatingLabelBehavior;// copyWithinputDecorationTheme.copyWith(floatingLabelBehavior:FloatingLabelBehavior.never);inputDecorationTheme.copyWith(floatingLabelBehavior:FloatingLabelBehavior.auto);References
API documentation:
Relevant issues:
Relevant PRs:
TextTheme
#Supported by Flutter Fix: yes
SeveralTextStyle properties ofTextTheme were deprecated in v1.13.8. They are listed in the following table alongside the appropriate replacement in the new API.
| Deprecation | New API |
|---|---|
| display4 | headline1 |
| display3 | headline2 |
| display2 | headline3 |
| display1 | headline4 |
| headline | headline5 |
| title | headline6 |
| subhead | subtitle1 |
| body2 | bodyText1 |
| body1 | bodyText2 |
| subtitle | subtitle2 |
Migration guide
Code before migration:
// TextTheme// Base constructorTextTheme(display4:displayStyle4,display3:displayStyle3,display2:displayStyle2,display1:displayStyle1,headline:headlineStyle,title:titleStyle,subhead:subheadStyle,body2:body2Style,body1:body1Style,caption:captionStyle,button:buttonStyle,subtitle:subtitleStyle,overline:overlineStyle,);// copyWithTextTheme.copyWith(display4:displayStyle4,display3:displayStyle3,display2:displayStyle2,display1:displayStyle1,headline:headlineStyle,title:titleStyle,subhead:subheadStyle,body2:body2Style,body1:body1Style,caption:captionStyle,button:buttonStyle,subtitle:subtitleStyle,overline:overlineStyle,);// GettersTextStylestyle;style=textTheme.display4;style=textTheme.display3;style=textTheme.display2;style=textTheme.display1;style=textTheme.headline;style=textTheme.title;style=textTheme.subhead;style=textTheme.body2;style=textTheme.body1;style=textTheme.caption;style=textTheme.button;style=textTheme.subtitle;style=textTheme.overline;Code after migration:
// TextTheme// Base constructorTextTheme(headline1:displayStyle4,headline2:displayStyle3,headline3:displayStyle2,headline4:displayStyle1,headline5:headlineStyle,headline6:titleStyle,subtitle1:subheadStyle,bodyText1:body2Style,bodyText2:body1Style,caption:captionStyle,button:buttonStyle,subtitle2:subtitleStyle,overline:overlineStyle,);TextTheme.copyWith(headline1:displayStyle4,headline2:displayStyle3,headline3:displayStyle2,headline4:displayStyle1,headline5:headlineStyle,headline6:titleStyle,subtitle1:subheadStyle,bodyText1:body2Style,bodyText2:body1Style,caption:captionStyle,button:buttonStyle,subtitle2:subtitleStyle,overline:overlineStyle,);TextStylestyle;style=textTheme.headline1;style=textTheme.headline2;style=textTheme.headline3;style=textTheme.headline4;style=textTheme.headline5;style=textTheme.headline6;style=textTheme.subtitle1;style=textTheme.bodyText1;style=textTheme.bodyText2;style=textTheme.caption;style=textTheme.button;style=textTheme.subtitle2;style=textTheme.overline;References
Design document:
API documentation:
Relevant issues:
Relevant PRs:
DefaultTypography
#Supported by Flutter Fix: no
The defaultTypography was deprecated in v1.13.8. The prior default returned the text styles of the 2014 Material Design specification. This will now result inTextStyles reflecting the 2018 Material Design specification. For the former, use thematerial2014 constructor.
Migration guide
Code before migration:
// Formerly returned 2014 TextStyle specTypography();Code after migration:
// Use 2018 TextStyle spec, either by default or explicitly.Typography();Typography.material2018();// Use 2014 spec from former APITypography.material2014();References
Design document:
API documentation:
Relevant issues:
Relevant PRs:
Timeline
#In stable release: 2.5
Unless stated otherwise, the documentation on this site reflects Flutter 3.38.6. Page last updated on 2025-01-17.View source orreport an issue.