API desaprobada eliminada después de la v3.3
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.3.
Todas las API afectadas se han recopilado en esta fuente principal para ayudar en la migración. También está disponible una hoja de referencia rápida.
Cambios
#Esta sección enumera las desaprobaciones, clasificadas por la clase afectada.
RenderUnconstrainedBox
#
Compatible con Flutter Fix: no
RenderUnconstrainedBox fue deprecado en v2.1.
Usa RenderConstraintsTransformBox en su lugar.
Donde no haya restricciones en ambos ejes, proporciona ConstraintsTransformBox.unconstrained
a constraintsTransform.
Si RenderUnconstrainedBox.constrainedAxis estaba establecido previamente,
reemplázalo respectivamente:
- Donde
constrainedAxisera previamenteAxis.horizontal, establececonstraintsTransformaConstraintsTransformBox.widthUnconstrained. - Donde
constrainedAxisera previamenteAxis.vertical, establececonstraintsTransformaConstraintsTransformBox.heightUnconstrained.
Este cambio permitió la introducción de varios tipos más de transformaciones de restricciones
a través de ConstraintsTransformBox. Otros parámetros de la antigua
API son compatibles con la nueva API.
Migration guide
Código antes de la migración:
// Unconstrained
final RenderUnconstrainedBox unconstrained = RenderUnconstrainedBox(
textDirection: TextDirection.ltr,
child: RenderConstrainedBox(
additionalConstraints: const BoxConstraints.tightFor(height: 200.0),
),
alignment: Alignment.center,
);
// Constrained in horizontal axis
final RenderUnconstrainedBox unconstrained = RenderUnconstrainedBox(
constrainedAxis: Axis.horizontal,
textDirection: TextDirection.ltr,
child: RenderConstrainedBox(
additionalConstraints: const BoxConstraints.tightFor(width: 200.0, height: 200.0),
),
alignment: Alignment.center,
);
// Constrained in vertical axis
final RenderUnconstrainedBox unconstrained = RenderUnconstrainedBox(
constrainedAxis: Axis.vertical,
textDirection: TextDirection.ltr,
child: RenderFlex(
direction: Axis.vertical,
textDirection: TextDirection.ltr,
children: <RenderBox>[flexible],
),
alignment: Alignment.center,
);
Código después de la migración:
// Unconstrained
final RenderConstraintsTransformBox unconstrained = RenderConstraintsTransformBox(
constraintsTransform: ConstraintsTransformBox.unconstrained,
textDirection: TextDirection.ltr,
child: RenderConstrainedBox(
additionalConstraints: const BoxConstraints.tightFor(height: 200.0),
),
alignment: Alignment.center,
);
// Constrained in horizontal axis
final RenderConstraintsTransformBox unconstrained = RenderConstraintsTransformBox(
constraintsTransform: ConstraintsTransformBox.widthUnconstrained,
textDirection: TextDirection.ltr,
child: RenderConstrainedBox(
additionalConstraints: const BoxConstraints.tightFor(width: 200.0, height: 200.0),
),
alignment: Alignment.center,
);
// Constrained in vertical axis
final RenderConstraintsTransformBox unconstrained = RenderConstraintsTransformBox(
constraintsTransform: ConstraintsTransformBox.widthUnconstrained,
textDirection: TextDirection.ltr,
child: RenderFlex(
direction: Axis.vertical,
textDirection: TextDirection.ltr,
children: <RenderBox>[flexible],
),
alignment: Alignment.center,
);
References
Documentación de la API:
PRs relevantes:
DragAnchor, Draggable.dragAnchor y LongPressDraggable.dragAnchor
#
Compatible con Flutter Fix: sí
El enum DragAnchor y sus usos en Draggable.dragAnchor y
LongPressDraggable.dragAnchor fueron deprecados en v2.1.
Usa dragAnchorStrategy en su lugar.
Este cambio permitió una respuesta más precisa del widget arrastrable cuando se usa
en conjunto con otros widgets como Stack y InteractiveViewer.
Migration guide
Código antes de la migración:
Draggable draggable = Draggable();
draggable = Draggable(dragAnchor: DragAnchor.child);
draggable = Draggable(dragAnchor: DragAnchor.pointer);
LongPressDraggable longPressDraggable = LongPressDraggable();
longPressDraggable = LongPressDraggable(dragAnchor: DragAnchor.child);
longPressDraggable = LongPressDraggable(dragAnchor: DragAnchor.pointer);
Código después de la migración:
Draggable draggable = Draggable();
draggable = Draggable(dragAnchorStrategy: childDragAnchorStrategy);
draggable = Draggable(dragAnchorStrategy: pointerDragAnchorStrategy);
LongPressDraggable longPressDraggable = LongPressDraggable();
longPressDraggable = LongPressDraggable(dragAnchorStrategy: childDragAnchorStrategy);
longPressDraggable = LongPressDraggable(dragAnchorStrategy: pointerDragAnchorStrategy);
References
Documentación de la API:
Issues relevantes:
PRs relevantes:
ScrollBehavior.buildViewportChrome
#
Compatible con Flutter Fix: sí
El método ScrollBehavior.buildViewportChrome fue deprecado en v2.1.
Este método era utilizado por el widget Scrollable para aplicar un indicador de
sobre-desplazamiento, como GlowingOverscrollIndicator, por defecto en las
plataformas adecuadas. A medida que se han agregado más decoradores predeterminados, como las
barras de desplazamiento, cada uno se ha dividido en métodos individuales para reemplazar
buildViewportChrome.
Esto permite que las clases que extienden solo tengan que sobrescribir el decorador específico, a través de
buildScrollbar o buildOverscrollIndicator, en lugar de necesitar reescribir
código para mantener uno u otro.
Migration guide
Guía de migración detallada disponible
Código antes de la migración:
final ScrollBehavior scrollBehavior = ScrollBehavior();
scrollBehavior.buildViewportChrome(context, child, axisDirection);
Código después de la migración:
final ScrollBehavior scrollBehavior = ScrollBehavior();
scrollBehavior.buildOverscrollIndicator(context, child, axisDirection);
References
Documento de diseño:
Documentación de la API:
Issues relevantes:
PRs relevantes:
Timeline
#En versión estable: 3.7
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.