API desaprobada eliminada después de la v3.19
Después de llegar al final de su vida útil, las siguientes API desaprobadas fueron eliminadas de Flutter.
Resumen
#De acuerdo con la política de deprecación de Flutter, se han eliminado las APIs deprecadas que llegaron al final de su vida útil después del lanzamiento estable 3.19.
Todas las APIs afectadas se han compilado en esta fuente principal para ayudar en la migración. Para ayudar aún más con tu migración, consulta esta hoja de referencia rápida.
Cambios
#Esta sección enumera las deprecaciones por paquete y clase afectada.
TextTheme
#
Paquete: flutter Compatible con Flutter Fix: sí
Varias propiedades de TextStyle de TextTheme fueron deprecadas en v3.1 para soportar nuevos
estilos de la especificación de Material Design. Se
enumeran en la siguiente tabla junto con el reemplazo correspondiente en la
nueva API.
| Desaprobación | Nueva API |
|---|---|
| headline1 | displayLarge |
| headline2 | displayMedium |
| headline3 | displaySmall |
| headline4 | headlineMedium |
| headline5 | headlineSmall |
| headline6 | titleLarge |
| subtitle1 | titleMedium |
| subtitle2 | titleSmall |
| bodyText1 | bodyLarge |
| bodyText2 | bodyMedium |
| caption | bodySmall |
| button | labelLarge |
| overline | labelSmall |
Migration guide
Código antes de la migración:
// TextTheme
// Base constructor
TextTheme(
headline1: headline1Style,
headline2: headline2Style,
headline3: headline3Style,
headline4: headline4Style,
headline5: headline5Style,
headline6: headline6Style,
subtitle1: subtitle1Style,
subtitle2: subtitle2Style,
bodyText1: bodyText1Style,
bodyText2: bodyText2Style,
caption: captionStyle,
button: buttonStyle,
overline: overlineStyle,
);
// copyWith
TextTheme.copyWith(
headline1: headline1Style,
headline2: headline2Style,
headline3: headline3Style,
headline4: headline4Style,
headline5: headline5Style,
headline6: headline6Style,
subtitle1: subtitle1Style,
subtitle2: subtitle2Style,
bodyText1: bodyText1Style,
bodyText2: bodyText2Style,
caption: captionStyle,
button: buttonStyle,
overline: overlineStyle,
);
// Getters
TextStyle style;
style = textTheme.headline1,
style = textTheme.headline2,
style = textTheme.headline3,
style = textTheme.headline4,
style = textTheme.headline5,
style = textTheme.headline6,
style = textTheme.subtitle1,
style = textTheme.subtitle2,
style = textTheme.bodyText1,
style = textTheme.bodyText2,
style = textTheme.caption,
style = textTheme.button,
style = textTheme.overline,
Código después de la migración:
// TextTheme
// Base constructor
TextTheme(
displayLarge: headline1Style,
displayMedium: headline2Style,
displaySmall: headline3Style,
headlineMedium: headline4Style,
headlineSmall: headline5Style,
titleLarge: headline6Style,
titleMedium: subtitle1Style,
titleSmall: subtitle2Style,
bodyLarge: bodyText1Style,
bodyMedium: bodyText2Style,
bodySmall: captionStyle,
labelLarge: buttonStyle,
labelSmall: overlineStyle,
);
TextTheme.copyWith(
displayLarge: headline1Style,
displayMedium: headline2Style,
displaySmall: headline3Style,
headlineMedium: headline4Style,
headlineSmall: headline5Style,
titleLarge: headline6Style,
titleMedium: subtitle1Style,
titleSmall: subtitle2Style,
bodyLarge: bodyText1Style,
bodyMedium: bodyText2Style,
bodySmall: captionStyle,
labelLarge: buttonStyle,
labelSmall: overlineStyle,
);
TextStyle style;
style = textTheme.displayLarge;
style = textTheme.displayMedium;
style = textTheme.displaySmall;
style = textTheme.headlineMedium;
style = textTheme.headlineSmall;
style = textTheme.titleLarge;
style = textTheme.titleMedium;
style = textTheme.titleSmall;
style = textTheme.bodyLarge;
style = textTheme.bodyMedium;
style = textTheme.bodySmall;
style = textTheme.labelLarge;
style = textTheme.labelSmall;
References
Documentación de la API:
PRs relevantes:
ThemeData
#
Paquete: flutter Compatible con Flutter Fix: sí
Varias propiedades de Color de ThemeData fueron deprecadas en v3.3 para soportar nuevos estilos
de la especificación de Material Design. Estos colores fueron errorColor,
backgroundColor,
bottomAppBarColor y toggleableActiveColor. Los dos primeros son reemplazados por
propiedades de ThemeData.colorScheme, mientras que bottomAppBarColor
es reemplazado por el
color del tema del componente, BottomAppBarTheme. El toggleableActiveColor
ya no era
utilizado por el framework y fue eliminado.
Migration guide
Código antes de la migración:
var myTheme = ThemeData(
//...
errorColor: Colors.red,
backgroundColor: Colors.blue,
bottomAppBarColor: Colors.purple,
toggleableActiveColor: Colors.orange,
//...
);
var errorColor = myTheme.errorColor;
var backgroundColor = myTheme.backgroundColor;
var bottomAppBarColor = myTheme.bottomAppBarColor;
var toggleableActiveColor = myTheme.toggleableActiveColor;
Código después de la migración:
var myTheme = ThemeData(
//...
colorScheme: ColorScheme(
/// ...
error: Colors.red,
background: Colors.blue,
),
bottomAppBarTheme: BottomAppBarTheme(
color: Colors.purple,
),
//...
);
var errorColor = myTheme.colorScheme.error;
var backgroundColor = myTheme.colorScheme.background;
var bottomAppBarColor = myTheme.bottomAppBarTheme.color;
var toggleableActiveColor = Colors.orange;
References
Documentación de la API:
PRs relevantes:
CupertinoContextMenu.previewBuilder
#
Paquete: flutter Compatible con Flutter Fix: sí
El previewBuilder fue reemplazado por el builder de CupertinoContextMenu
después de
v3.4. Al agregar builder, se cubre la totalidad de la animación ejecutada por el menú
contextual, cuya segunda mitad era realizada por previewBuilder y
delimitada por CupertinoContextMenu.animationOpensAt.
Migration guide
Código antes de la migración:
CupertinoContextMenu(
previewBuilder: (BuildContext context, Animation<double> animation, Widget child) {
return FittedBox(
fit: BoxFit.cover,
child: ClipRRect(
borderRadius: BorderRadius.circular(64.0 * animation.value),
child: Image.asset('assets/photo.jpg'),
),
);
},
actions: <Widget>[
CupertinoContextMenuAction(
child: const Text('Action one'),
onPressed: () {},
),
],
child: FittedBox(
fit: BoxFit.cover,
child: Image.asset('assets/photo.jpg'),
),
);
Código después de la migración:
CupertinoContextMenu(
actions: <Widget>[
CupertinoContextMenuAction(
child: const Text('Action one'),
onPressed: () {},
),
],
builder: (BuildContext context, Animation<double> animation) {
final Animation<BorderRadius?> borderRadiusAnimation = BorderRadiusTween(
begin: BorderRadius.circular(0.0),
end: BorderRadius.circular(CupertinoContextMenu.kOpenBorderRadius),
).animate(
CurvedAnimation(
parent: animation,
curve: Interval(
CupertinoContextMenu.animationOpensAt,
1.0,
),
),
);
final Animation<Decoration> boxDecorationAnimation = DecorationTween(
begin: const BoxDecoration(
color: Color(0xFFFFFFFF),
boxShadow: <BoxShadow>[],
),
end: BoxDecoration(
color: Color(0xFFFFFFFF),
boxShadow: CupertinoContextMenu.kEndBoxShadow,
),
).animate(
CurvedAnimation(
parent: animation,
curve: Interval(
0.0,
CupertinoContextMenu.animationOpensAt,
)
)
);
return Container(
decoration: animation.value < CupertinoContextMenu.animationOpensAt
? boxDecorationAnimation.value
: null,
child: FittedBox(
fit: BoxFit.cover,
child: ClipRRect(
borderRadius: borderRadiusAnimation.value ?? BorderRadius.circular(0.0),
child: SizedBox(
height: 150,
width: 150,
child: Image.asset('assets/photo.jpg'),
),
),
)
);
}
)
References
Documentación de la API:
PRs relevantes:
Scrollbar.showTrackOnHover
#
Paquete: flutter Compatible con Flutter Fix: sí
La propiedad showTrackOnHover de Scrollbar, y su tema de componente asociado,
ScrollbarThemeData.showTrackOnHover, fueron reemplazados por la propiedad Stateful
ScrollbarThemeData.trackVisibility después de la v3.4. Al utilizar trackVisibility,
todas las permutaciones de State pueden influir en mostrar la pista de la barra de desplazamiento, no
solo al pasar el cursor (hover).
Migration guide
Código antes de la migración:
Scrollbar(
showTrackOnHover: true,
child: //...
);
ScrollbarThemeData(
showTrackOnHover: true,
);
Código después de la migración:
Scrollbar(
child: //...
);
ScrollbarThemeData(
// This will always show the track for any state.
trackVisibility: MaterialStateProperty<bool>.all(true),
);
// Or
ScrollbarThemeData(
// Only show on hover.
trackVisibility: (Set<MaterialState> states) => states.contains(MaterialState.hovered),
);
References
Documentación de la API:
PRs relevantes:
Método KeepAliveHandle.release
#
Paquete: flutter Soportado por Flutter Fix: no
El método release de KeepAliveHandle fue eliminado y reemplazado por la llamada a
dispose después de v3.3. Este cambio se realizó porque se descubrió que release
a menudo se llamaba sin llamar luego a dispose, lo que provocaba fugas de memoria. El
método dispose ejecuta la misma funcionalidad que antes hacía release.
Migration guide
Código antes de la migración:
KeepAliveHandle handle = KeepAliveHandle();
handle.release();
handle.dispose();
Código después de la migración:
KeepAliveHandle handle = KeepAliveHandle();
handle.dispose();
References
Documentación de la API:
PRs relevantes:
InteractiveViewer.alignPanAxis
#
Paquete: flutter Compatible con Flutter Fix: sí
La propiedad alignPanAxis de InteractiveViewer fue eliminada y reemplazada con
panAxis después de v3.3. Este cambio se realizó para habilitar más modos de desplazamiento (pan) en
InteractiveViewer.
Migration guide
Código antes de la migración:
InteractiveViewer(
alignPanAxis: true,
);
Código después de la migración:
InteractiveViewer(
panAxis: PanAxis.aligned,
);
References
Documentación de la API:
PRs relevantes:
MediaQuery.boldTextOverride
#
Paquete: flutter Compatible con Flutter Fix: sí
La propiedad boldTextOverride de MediaQuery fue eliminada y reemplazada con
boldTextOf después de v3.5. Este cambio se realizó como parte de una refactorización más grande de
MediaQuery, sobre todo reduciendo la cantidad de reconstrucciones (rebuilds) que se activarían por
widgets que dependen de ella.
Migration guide
Código antes de la migración:
MediaQuery.boldTextOverride(context);
Código después de la migración:
MediaQuery.boldTextOf(context)
References
Documentación de la API:
PRs relevantes:
Typedefs de builder renombrados para AnimatedList
#
Paquete: flutter Soportado por Flutter Fix: no
Con la adición de AnimatedGrid, AnimatedList fue refacturada para compartir una
clase base común. Los nombres anteriores AnimatedListItemBuilder y AnimatedListRemovedItemBuilder
se renombraron para reflejar mejor las clases con las que podían usarse después de v3.5.
Renombra cualquier referencia a AnimatedItemBuilder y AnimatedRemovedItemBuilder.
References
Documentación de la API:
PRs relevantes:
FlutterDriver.enableAccessibility
#
Paquete: flutter_driver Soportado por Flutter Fix: sí
El método enableAccessibility de flutterDriver fue deprecado en v2.3. Fue
eliminado y reemplazado con setSemantics. Este cambio hizo posible
activar o desactivar la accesibilidad, en lugar de solo activarla.
Migration guide
Código antes de la migración:
FlutterDriver driver = FlutterDriver.connectedTo(
// ...
);
driver.enableAccessibility();
Código después de la migración:
FlutterDriver driver = FlutterDriver.connectedTo(
// ...
);
driver.setSemantics(true);
References
Documentación de la API:
PRs relevantes:
TimelineSummary.writeSummaryToFile
#
Paquete: flutter_driver Soportado por Flutter Fix: sí
El método writeSummaryToFile de TimelineSummary fue deprecado en v2.1. Fue
eliminado y reemplazado con writeTimelineToFile.
Migration guide
Código antes de la migración:
TimelineSummary summary = TimelineSummary.summarize(
myTimeline,
);
summary.writeSummaryToFile(
traceName,
pretty: true,
);
Código después de la migración:
TimelineSummary summary = TimelineSummary.summarize(
myTimeline,
);
summary.writeTimelineToFile(
traceName,
pretty: true,
);
References
Documentación de la API:
PRs relevantes:
Android Platform Views en API 22 y anteriores
#
Compatible con Flutter Fix: no
A partir de Flutter 3.0, las vistas de plataforma requieren la API 23 o superior. En Flutter 3.19, ahora lanzamos UnsupportedOperationException al usar vistas de plataforma en dispositivos Android que ejecutan el nivel de API 22 y anteriores.
Migration guide
Establece el nivel mínimo de API a 23 (o superior) o verifica el nivel de API de Android antes de mostrar una vista de plataforma.
Las deprecaciones anunciadas anteriormente para los menús contextuales, relacionadas con
ToolbarOptions,
así como partes de TextSelectionController y SelectableRegionState,
no se eliminaron en este ciclo para permitir más tiempo para la migración.
Se espera que estas deprecaciones se eliminen en el próximo ciclo, el cual se
anunciará nuevamente cuando llegue el momento.
Timeline
#En versión estable: 3.22.0
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.