As animações em Flutter são um aspecto fundamental na criação de aplicativos interativos e visualmente atraentes. Elas podem ser usadas para chamar a atenção para elementos específicos, fornecer feedback visual, criar uma sensação de profundidade e muito mais. Neste capítulo, vamos explorar como criar animações que respondem à interação do usuário no Flutter, utilizando a biblioteca Flutter e a linguagem de programação Dart.

Em Flutter, as animações são representadas como objetos Animation, que podem produzir uma sequência de valores ao longo do tempo. Esses valores podem ser usados para atualizar propriedades de widgets, como posição, cor, tamanho, etc. A classe Animation é um tipo abstrato e você normalmente trabalhará com uma de suas subclasses mais concretas, como AnimationController ou Tween.

Para criar uma animação que responda à interação do usuário, você precisará de um AnimationController. Este é um tipo especial de Animation que pode ser iniciado, parado e controlado pelo usuário. Ele também permite que você defina a duração da animação, a direção (para frente ou para trás) e outros parâmetros.

Para começar, primeiro você precisa criar uma instância do AnimationController. Isso pode ser feito no método initState do seu widget. Aqui, você pode definir a duração da animação e fornecer um vsync, que é necessário para sincronizar a animação com a tela.


@override
void initState() {
  super.initState();
  controller = AnimationController(
    duration: const Duration(seconds: 2),
    vsync: this,
  );
}

Em seguida, você pode usar o método animateTo do controlador para iniciar a animação. Por exemplo, você pode chamar este método quando o usuário toca em um botão:


onPressed: () {
  controller.animateTo(1.0);
},

Isso fará com que a animação progrida de seu valor atual para o valor final (neste caso, 1.0) ao longo da duração especificada.

Você pode usar o valor da animação para atualizar a aparência do seu widget. Para fazer isso, você precisa chamar o método build do seu widget dentro de um método listener que é chamado sempre que o valor da animação muda.


@override
Widget build(BuildContext context) {
  return AnimatedBuilder(
    animation: controller,
    builder: (BuildContext context, Widget child) {
      return Transform.rotate(
        angle: controller.value * 2.0 * math.pi,
        child: child,
      );
    },
    child: FlutterLogo(size: 200.0),
  );
}

Neste exemplo, estamos usando o valor da animação para rotacionar um logo do Flutter. À medida que o valor da animação muda de 0.0 a 1.0, o logo gira de 0 a 360 graus.

Finalmente, você deve sempre lembrar de descartar o controlador de animação quando o widget for descartado. Isso pode ser feito no método dispose do widget:


@override
void dispose() {
  controller.dispose();
  super.dispose();
}

Isso é apenas a ponta do iceberg quando se trata de animações em Flutter. O framework oferece muitas outras ferramentas e técnicas para criar animações complexas e interativas, incluindo Tweens, Curves, Flare e muito mais. No entanto, entender como usar o AnimationController é um primeiro passo crucial.

Espero que este capítulo tenha ajudado a entender melhor as animações em Flutter e como elas podem ser usadas para criar aplicativos mais interativos e atraentes. No próximo capítulo, vamos explorar mais recursos avançados do Flutter e Dart, então fique ligado!

Agora responda o exercício sobre o conteúdo:

Qual é o papel do AnimationController na criação de animações em Flutter?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Animações em Flutter: Animações com controle de tempo

Próxima página do Ebook Gratuito:

172Animações em Flutter: Animações com controle de tempo

3 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto