Skip to main content

Explícitas

É o mais poderoso tipo de animação com Flutter. Você tem o total controle sobre ela: iniciar, parar, repetir, reverter... não importa o "movimento".

São úteis para criar animações complexas e personalizadas.

Lembre-se

Os comandos para da animação devem ser explícitos.

Para ter todo este controle é necessário escrever mais código. Vamos lá!

  • Mixin necessário para acompanhar a passagem do tempo;
extends State<HomePage> with SingleTickerProviderStateMixin
  • Crie a animação e um controlador para ela;
late Animation<double> animation;
late AnimationController controller;
  • Inicialize a animação e o seu controlador. Neste caso, a animação muda o valor de 50 para 400 em 2 segundos;
  
void initState() {
super.initState();
controller =
AnimationController(duration: const Duration(seconds: 2), vsync: this);
animation = Tween<double>(begin: 50, end: 400).animate(controller);
animation.addListener(() {
setState(() {});
});
}
  • Através do controlador, é possível ter controle absoluto sobre a animação:
controller.reset();    //reiniciar
controller.repeat(); //repetir
controller.forward(); //avançar
controller.stop(); //parar
  • Criando um Container com animação explícita:

Widget build(BuildContext context) {
return Container(
width: animation.value,
height: 100,
color: Colors.blue,
);
}
  • Lembre-se de liberar os recursos que foram alocados;
 
void dispose() {
controller.dispose();
super.dispose();
}

Confira este vídeo: