Cambios disruptivos y guías de migración
Una colección de avisos y guías de migración para cambios disruptivos en Flutter.
Como se describe en la política de cambios importantes, en ocasiones publicamos guías para migrar código a través de un cambio importante.
Para recibir notificaciones sobre futuros cambios importantes, únete a los grupos Flutter announce y Dart announce.
Cuando te enfrentes a errores de Dart después de actualizar Flutter,
considera usar el comando dart fix
para migrar automáticamente tu código.
No todos los cambios importantes son compatibles de esta manera,
pero muchos sí.
Para evitar que futuras versiones de Flutter rompan tu código, considera enviar tus pruebas al registro de pruebas del framework.
Cambios importantes por versión
#Las siguientes guías están disponibles. Están ordenadas por versión y enumeradas en orden alfabético:
Aún no lanzado a la versión estable
#- Se agregó la propiedad enabled y se hizo onChanged opcional para DropdownButton
- El contenido de render-to-texture de OpenGL ES se almacena de arriba a abajo
- Actualización de la cabecera de semántica y del comportamiento de headingLevel en iOS y Android
Lanzado en Flutter 3.44
#- Cambio en el orden de cierre de RawMenuAnchor
-
Desaprobar el callback
onReorder -
Desaprobar
TextInputConnection.setStyle -
Desaprobados
cacheExtentycacheExtentStyle -
La clase
IconDatamarcada comofinal - Restricciones de orientación de pantalla grande y redimensionamiento ignoradas en Android 17
- ListTile reporta un error en debug cuando está envuelto en un widget coloreado
- Migración de proyectos Flutter de Android a Kotlin integrado
- Reorganización de los builders de transición de página
Lanzado en Flutter 3.41
#- Hilos fusionados en Linux
-
FontWeighttambién controla el atributo de peso de las fuentes variables -
Desaprobar
containsSemanticsen favor deisSemantics -
Desaprobar
findChildIndexCallbacken favor defindItemIndexCallbacken los constructores separados deListViewySliverList - Actualización de tokens de Material 3
Lanzado en Flutter 3.38
#-
Soporte de amplia gama de colores para
CupertinoDynamicColor -
Desaprobar
OverlayPortal.targetsRootOverlay -
Desaprobar
SemanticsProperties.focusableySemanticsConfiguration.isFocusable - SnackBar con acción ya no se descarta automáticamente
-
La transición de página predeterminada en Android ahora es
PredictiveBackPageTransitionBuilder - Adopción de UISceneDelegate
Lanzado en Flutter 3.35
#- Actualizaciones de normalización de temas de componentes
-
Desaprobar el parámetro
valuedeDropdownButtonFormFielden favor deinitialValue - Desaprobar el color de la app bar
- Rediseño del widget
Radio - Eliminadas la elevación y el grosor de semántica
-
El widget
Formya no admite ser un sliver -
Flutter ahora establece
abiFilterspredeterminados en las compilaciones de Android - Hilos fusionados en macOS y Windows
-
El widget
Visibilityya no es enfocable de forma predeterminada cuandomaintainStateestá habilitado -
$FLUTTER_ROOT/versionreemplazado por$FLUTTER_ROOT/bin/cache/flutter.version.json
Lanzado en Flutter 3.32
#-
Desaprobar
SystemContextMenuController.show -
Desaprobar
ExpansionTileControlleren favor deExpansibleController - Desaprobar
RouteTransitionRecord.markForRemoveen favor deRouteTransitionRecord.markForComplete -
Desaprobar
ThemeData.indicatorColoren favor deTabBarThemeData.indicatorColor - Actualizaciones del sistema de temas de Material
-
.flutter-plugins-dependenciesreemplaza a.flutter-plugins - Los mensajes localizados se generan en el código fuente, no en un paquete sintético
-
Cambiando el
goldenFileComparatorpredeterminado para las pruebas deintegration_test -
Desaprobar
InputDecoration.maintainHintHeighten favor deInputDecoration.maintainHintSize - Cambió la fórmula de resorte subamortiguado
Lanzado en Flutter 3.29
#- Eliminación de las API Java de Android embedding v1
-
Desaprobar
WebGoldenComparator -
Desaprobar
ThemeData.dialogBackgroundColoren favor deDialogThemeData.backgroundColor -
Selección automática del modo de mosaico (tile mode) predeterminado de
ImageFilter.blur -
Sliderde Material 3 actualizado - Indicadores de progreso de Material 3 actualizados
Lanzado en Flutter 3.27
#- Soporte de amplia gama de colores para
Color - Normalización de temas de componentes
- Cambio en la bandera de enlaces profundos
- Actualización de tokens de Material 3 en Flutter
-
Eliminar parámetros no válidos para
InputDecoration.collapsed - Establecer el valor predeterminado para SystemUiMode a Edge-to-Edge
Lanzado en Flutter 3.24
#- Cambio importante en las API de página de Navigator
- Tipos genéricos en
PopScope -
Desaprobar
ButtonBaren favor deOverflowBar -
Nuevas API para plugins de Android que renderizan en una
Surface
Lanzado en Flutter 3.22
#- API desaprobada eliminada después de la v3.19
-
Renombrar
MaterialStateaWidgetState -
Introducción de nuevos roles de
ColorScheme - Dejando de admitir Android KitKat
-
PageView.controllerahora admite nulos -
Renombrar
MemoryAllocationsaFlutterMemoryAllocations
Lanzado en Flutter 3.19
#- API desaprobada eliminada después de la v3.16
- Migrar el sistema RawKeyEvent/RawKeyboard al sistema KeyEvent/HardwareKeyboard
- Desaprobar la aplicación imperativa de los plugins de Gradle de Flutter
- Desplazamiento multitáctil predeterminado
- Cambio en el orden de recorrido de accesibilidad del tooltip
-
Dejar de generar
AssetManifest.json
Lanzado en Flutter 3.16
#- Migrando a Material 3
- Migrar ShortcutActivator y ShortcutManager al sistema KeyEvent
-
La propiedad
ThemeData.useMaterial3ahora está establecida en true de forma predeterminada - API desaprobada eliminada después de la v3.13
-
Personalizar la alineación de las pestañas usando la nueva propiedad
TabBar.tabAlignment -
Desaprobar
textScaleFactoren favor deTextScaler - Escalado de fuente no lineal de Android 14 habilitado
-
Desaprobar
describeEnumy actualizarEnumPropertypara que sea estricto con los tipos - API de pop de navegación just-in-time desaprobadas para Android Predictive Back
-
Desaprobado
Paint.enableDithering - Estilos de texto predeterminados actualizados para los menús
- Windows: Las ventanas externas deben notificar al motor de Flutter los cambios en el ciclo de vida
- Cambio en la ruta de compilación de Windows para agregar la arquitectura de destino
Lanzado en Flutter 3.13
#-
Se agregó el método
dispose()faltante para algunos objetos desechables en Flutter - API desaprobada eliminada después de la v3.10
- Se agregó el valor de enum AppLifecycleState.hidden
- Se movieron las cadenas localizadas de ReorderableListView de las localizaciones de material a las de widgets
- Se eliminaron las propiedades
ignoringSemantics - Desaprobado
RouteInformation.locationy sus API relacionadas - Comportamiento de desplazamiento para hacer visible de EditableText actualizado
- Migrar un proyecto de Windows para asegurar que se muestre la ventana
-
Comportamiento de
Checkbox.fillColoractualizado
Lanzado en Flutter 3.10
#- Cambios de Dart 3 en Flutter v3.10 y versiones posteriores
- API desaprobada eliminada después de la v3.7
- Cliente de entrada de texto para insertar contenido
- Desaprobar el singleton window
- Resolver el error de Android Java Gradle
-
Requerir una variante de datos para el constructor de
ClipboardData - "Mensaje de "Zone mismatch""
Lanzado en Flutter 3.7
#- API desaprobada eliminada después de la v3.3
- Reemplazados los parámetros para personalizar menús contextuales con un builder de widgets genérico
- splashScreenView de iOS FlutterViewController ahora admite nulos
-
Migrar
ofa valores de retorno que no admitan nulos y agregarmaybeOf - Eliminado RouteSettings.copyWith
- La propiedad toggleableActiveColor de ThemeData ha sido desaprobada
- Migrar un proyecto de Windows para admitir barras de título oscuras
Lanzado en Flutter 3.3
#- Agregando ImageProvider.loadBuffer
- PrimaryScrollController predeterminado en escritorio
- Los gestos del trackpad pueden activar GestureRecognizer
- Migrar un proyecto de Windows para establecer la información de versión
Lanzado en Flutter 3
#- API desaprobada eliminada después de la v2.10
- Migrar useDeleteButtonTooltip a deleteButtonTooltipMessage de Chips
- Transiciones de página reemplazadas por ZoomPageTransitionsBuilder
Lanzado en Flutter 2.10
#- API desaprobada eliminada después de la v2.5
- Las imágenes RAW en la Web usan el origen y los colores correctos
- Versión requerida de Kotlin
- Cliente de entrada de texto Scribble
Lanzado en Flutter 2.5
#- Dispositivos de desplazamiento por arrastre predeterminados
- API desaprobada eliminada después de la v2.2
- Cambiar el método enterText para mover el cursor al final del texto de entrada
- Limpieza de GestureRecognizer
- Presentamos el paquete:flutter_lints
- Reemplazar AnimationSheetBuilder.display con collate
- Las propiedades accent de ThemeData han sido desaprobadas
- Transición de las interfaces de prueba de canales de plataforma al paquete flutter_test
- Uso de slots HTML para renderizar vistas de plataforma en la web
- Migrar un proyecto de Windows al bucle de eventos idiomático
Cambio revertido en 2.2
#El siguiente cambio importante fue revertido en la versión 2.2:
- Política de red en iOS y Android
-
Introducido en la versión: 2.0.0
Revertido en la versión: 2.2.0
Lanzado en Flutter 2.2
#Lanzado en Flutter 2
#- Se agregó el parámetro BuildContext a TextEditingController.buildTextSpan
- Cambio de firma de Android ActivityControlSurface attachToActivity
- Se eliminó la API de pruebas Android FlutterMain.setIsRunningInRobolectricTest
- Comportamiento de Clip
- API desaprobada eliminada después de la v1.22
- Soporte de dry layout para RenderBox
- Eliminación de parámetros nullOk
- Semántica del botón Material Chip
- SnackBars administrados por el ScaffoldMessenger
- Migración de TextSelectionTheme
- Transición de las interfaces de prueba de canales de plataforma al paquete flutter_test
- Usar maxLengthEnforcement en lugar de maxLengthEnforced
Lanzado en Flutter 1.22
#- Desaprobación de la creación de aplicaciones y plugins con Android v1 embedding
- Iconos de Cupertino 1.0.0
- La nueva API de autovalidación de Form y FormField
Lanzado en Flutter 1.20
#- Revisión de la API de Actions
- Adición de la propiedad TextInputClient.currentAutofillScope
- Nuevos botones y temas de botones
- BorderRadius predeterminado de los diálogos
- Aserciones más estrictas en el alcance de Navigator y Hero Controller
- Actualizaciones del registro Route Transition y Transition delegate
- RenderEditable necesita pasar por el layout antes del hit testing
- Revertir la dependencia entre la capa del scheduler y la de servicios
- Orden de semántica de las entradas de Overlay en rutas modales
- Método showAutocorrectionPromptRect agregado a TextInputClient
- TestWidgetsFlutterBinding.clock
- TextField requiere MaterialLocalizations
Lanzado en Flutter 1.17
#- Adición de 'linux' y 'windows' al enum TargetPlatform
- Las anotaciones devuelven la posición local relativa al objeto
- Optimización del color de Container
- CupertinoTabBar requiere un padre Localizations
- El tipo genérico de ParentDataWidget cambió a ParentData
- Cambios en ImageCache e ImageProvider
- Grandes imágenes de ImageCache
- MouseTracker movido a renderizado
- MouseTracker ya no adjunta anotaciones
- Brightness de CupertinoTheme ahora admite nulos
- Optimización de reconstrucción para OverlayEntries y Routes
- AlertDialog con desplazamiento
- Restablecimiento del estado de TestTextInput
- currentTextEditingValue de TextInputClient
- El método forgetChild() debe llamar a super
- Refactorización de Route y Navigator
- FloatingActionButton y propiedades accent de ThemeData
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-07-13. Ver código fuente oreportar un problema.