Implicit Widgets: Widgets que están listos para ser animados de inmediato – widgets como AnimatedContainer, Hero, FadeTransition. Widgets explícitos: Aquí es donde se define explícitamente cómo sus widgets de animación deben parecer o comportarse usando Animator, AnimationController, Tween, y más.
En este artículo, nos centraremos en cómo se comportan los widgets de animación implícita de Flutter, cómo se implementan, y ver dónde podemos aplicarlos.
El patrón…
Me gustaría empezar señalando el patrón para el uso de widgets de animación implícita. Si no todos, la mayoría de los widgets que discutiremos aquí tendrán una configuración similar.
El patrón 101:
Definir las propiedades específicas que son responsables de desencadenar la animación del widget.
Crear el AnimatedSomethingWidget con las propiedades definidas como height, width.
Comenzar la animación reconstruyendo el widget, lo más común es hacerlo para UIs usando setState(), con los nuevos valores asignados a las propiedades definidas. En este artículo, me referiré a esto como los «disparadores» de la animación.
Además, categorizaré los widgets en base a su complejidad de configuración (Serie Pt. 1: Fácil, Serie Pt. 2: Intermedio, y Avanzado)- código fuente disponible abajo.
AnimatedContainer
La clase Container te ayuda a crear un widget con propiedades específicas como height, width, color y más. Esto se utiliza comúnmente para envolver los widgets hijos para gestionar sus propiedades como tamaños, rellenos y márgenes convenientemente.
Usando el AnimatedContainer, puedes animar un Container regular con sólo cambiar sus propiedades. Automáticamente transita el color, los tamaños sin que tengas que configurar explícitamente tweens o controladores personalizados.
Setup
Crea las propiedades por defecto del widget.
Construye un AnimationContainer utilizando las propiedades.
Inicia la animación reconstruyendo el widget con las nuevas propiedades.
¡Crea unos increíbles gráficos de barras animados con este widget!
Flutter Widget de la Semana https://www.youtube.com/watch?v=yI-8QHpGIP4
AnimatedCrossFade
Las animaciones cruzadas (a.k.a. disolver) desvanecen gradualmente un componente de la interfaz de usuario mientras que simultáneamente se desvanecen en otro componente de la interfaz de usuario.
El AnimatedCrossFade es un widget que proporciona una transición de fundido cruzado al cambiar entre dos widgets hijos dados.
Configuración
Define una variable bool que actuará como bandera para mostrar/ocultar widgets
Asigna la variable bandera al widget AnimatedCrossFade.
Iniciar la animación actualizando el valor de la propiedad crossFadeState.
Trigger
crossFadeState
Ajustes adicionales Puedes establecer el curve opcional a través de firstCurve y secondCurve.
¡Ajustamos nuestros gráficos de barras añadiendo un indicador de carga!
La clase AnimatedDefaultTextStyle
DefaultTextStylees el estilo de texto inicial aplicado a un widget Text. Con AnimatedDefaultTextStyle, ahora puede hacer que nuestros widgets Text, o incluso los CTAs sean más atractivos.
Setup
Define la variable textStyleno final.
Asignar la variable definida a la propiedad textStyle del widget.
Iniciar la animación actualizando el estilo declarado.
Triggers
Opción 1. Cambiando directamente el textStyle.
Opción 2. Actualizar las propiedades dentro del TextStyle adjunto al widget.