Start Debugging

Etiqueta: flutter

159 posts · Página2de16

2026-10-19 flutterdarttheming
Cómo definir design tokens personalizados con ThemeExtension y animarlos entre los temas claro y oscuro en Flutter
Crea una subclase de ThemeExtension, registra una instancia por ThemeData mediante la lista extensions, léela con Theme.of(context).extension<T>() y escribe un lerp real para que el AnimatedTheme de MaterialApp interpole tus tokens durante el cambio entre claro y oscuro. Cubre colores, radios, sombras, estilos de texto y booleanos, el fallo por extensión ausente, la trampa de copyWith que descarta todas las demás extensiones y por qué necesitas == y hashCode, todo verificado con pruebas de widgets en Flutter 3.44.8.
Cómo hacer que AnimatedSwitcher anime cuando el tipo del widget hijo no cambia en Flutter
AnimatedSwitcher solo hace una transición cuando Widget.canUpdate indica que el nuevo hijo es un widget distinto, así que de Text a Text sin key simplemente se actualiza en su lugar. Aquí está la solución de una línea, dónde debe ir la key, por qué UniqueKey es una trampa, el error de dirección del slide causado por un transitionBuilder estático y el salto de layout del Stack por defecto, todo verificado con widget tests en Flutter 3.44.8.
2026-10-19 flutterdartandroid
Cómo restaurar el estado de la interfaz tras la muerte del proceso en Android con Flutter y RestorationMixin
Android mata las apps de Flutter en segundo plano para recuperar memoria, y cuando el usuario regresa cada StatefulWidget empieza desde cero. Así se activa la restauración con restorationScopeId, RestorationMixin y las propiedades Restorable, cómo restaurar campos de texto, posiciones de scroll y rutas, cómo escribir un RestorableValue personalizado y cómo probarlo todo con restartAndRestore y adb, verificado en Flutter 3.44.8 y un emulador de Android 16.
2026-10-18 dartflutterstreams
Cómo reemitir el último valor a los suscriptores tardíos de un Stream de Dart sin el BehaviorSubject de rxdart
Un StreamController broadcast descarta todos los eventos que ocurrieron antes de que te suscribieras. Aquí tienes un reemplazo de BehaviorSubject sin dependencias basado en Stream.multi, una extensión replayLatest() para streams existentes, el atajo con async* que pierde eventos en silencio y el detalle de initialData en StreamBuilder, todo verificado en Dart 3.12.2.
Migra el almacenamiento local de una app Flutter de Hive a Drift (hive_ce 2.22 a drift 2.35)
Una importación única y a prueba de fallos de las cajas de Hive existentes a una base de datos SQLite de drift en el dispositivo del usuario: diseño del esquema, la función de importación, idempotencia, eliminación de las cajas y las dos trampas que corrompen datos en silencio (precisión de DateTime y colisiones de nombres de clase). Probado en Flutter 3.44.8 con hive_ce 2.22.0 y drift 2.35.2.
Cómo mantener la pestaña seleccionada de NavigationBar sincronizada con la ruta actual usando StatefulShellRoute en go_router
Controla NavigationBar.selectedIndex desde StatefulNavigationShell.currentIndex, nunca desde un campo de setState ni desde una copia hecha en initState. Medido en Flutter 3.44.8 y go_router 18.0.2: qué patrones se desincronizan con deep links, context.go y push entre ramas, por qué los índices basados en la ubicación mienten y cómo reaccionar a los cambios de pestaña con didUpdateWidget.
Anterior Siguiente