Flutter
- Incluindo animação na sua aplicação - V
![]() |
Nesta série de artigos vamos mostrar como podemos adicionar animação na nas aplicações Flutter. |
|
Continuando a quarta parte do artigo veremos agora como usar o widget AnimatedDefaultTextStyle.
Animação no Flutter com AnimationController
A classe AnimationController é um controlador para uma animação e permite executar tarefas como:
A classe AnimationController oferece maior flexibilidade na animação. A animação pode ser reproduzida para frente ou para trás, e você pode pará-la também.
Por padrão, um AnimationController produz linearmente valores que variam de 0,0 a 1,0, durante uma determinada duração. O controlador de animação gera um novo valor sempre que o dispositivo executando o aplicativo estiver pronto para exibir um novo quadro (normalmente, essa taxa é de cerca de 60 valores por segundo).
Esta classe precisa de uma classe TickerProvider passando o argumento vsync no construtor. O vsync impede animações off-screen de consumir recursos desnecessários.
Se a animação precisar de apenas um AnimationController, usamos SingleTickerProviderStateMixin. Se a animação precisar de vários AnimationControllers, usamos TickerProviderStateMixin.
A classe Ticker é dirigida pela informação de ScheduleBinding.scheduleFrameCallback uma vez por quadro de animação; tentando sincronizar a animação para ser o mais suave possível.
O objeto
padrão AnimationController varia de 0,0 a 1,0, mas
se você precisar de um intervalo diferente,
você pode usar a classe Animation (usando Tween)
para aceitar um tipo diferente de dados.
A classe AnimationController no início pode parecer complexa de usar devido às diferentes classes necessárias.
A seguir estão as etapas básicas que você executa para criar uma animação personalizada :
1. Adicione o AnimationController;
2. Adicione Animation;
3. Inicie o AnimationController com Duration(milissegundos, segundos e assim por
diante);
4. Inicie Animtaion com Tween com os valores inicial e final e encadeie o método
animado com um CurvedAnimation;
5. Use o AnimatedBuilder com Animation usando um contêiner com um balão para
iniciar Animation chamando o AnimationController.forward() e .reverse() para
executar a animação para trás. O widget AnimatedBuilder é usado para criar um
widget que executa uma animação reutilizável.
Como você pode ver, depois de quebrar as etapas, ela se torna mais gerenciável e
menos complicada.
Neste artigo
vamos animar um balão que começa pequeno na parte inferior da tela e, à medida
que ele infla,
flutua em direção ao topo.
Ao usar um
toque em GestureDetector no balão, a animação é
revertida, mostrando o balão esvaziando e flutuando para baixo até a parte
inferior da tela. Toda vez que o balão for tocado, a animação recomeça.
Recursos usados:
Usando o widget AnimatedDefaultTextStyle
Vamos continuar a usar o projeto criado na primeira parte do artigo aproveitando a estrutura básica e criando apenas um arquivo chamado AnimatedDefaultTextStyle.dart na pasta lib.
A seguir vamos criar neste arquivo um statefull widget chamado AnimatedDefaultTextStyleWidget seguindo o mesmo procedimento.(Digite stf e selecione o template...)
No widget criado vamos incluir o código destacado em azul abaixo:
import 'package:flutter/material.dart';
class AnimatedDefaultTextStyleWidget extends StatefulWidget {
@override
_AnimatedDefaultTextStyleWidgetState createState() => _AnimatedDefaultTextStyleWidgetState();
}
class _AnimatedDefaultTextStyleWidgetState extends State<AnimatedDefaultTextStyleWidget> {
var _color = Colors.red;
var _fontSize = 20.0;
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment : MainAxisAlignment.center,
children : [
AnimatedDefaultTextStyle(
duration : const Duration(seconds : 1),
style : TextStyle(
color : _color, fontSize : _fontSize
),
child : Text("Macoratti.net")
),
RaisedButton(
child : Text("Quase tudo para a plataforma .NET"),
onPressed : () {
_color = Colors.blue;
_fontSize = 40.0;
setState(() {});
}
)
]
);
}
}
|
Incluimos as variáveis privadas _color e _fontSize para definir os valores iniciais da cor e do tamanho da fonte do texto que será animado.
No exemplo o texto que é filho de AnimatedDefaultTextStyle é ampliado em 100% e sua cor mudará ao longo de 1 segundo.
Executando o projeto teremos o resultado abaixo:
Na próxima parte do artigo veremos como usar o widget AnimationController.
"Tendo
sido, pois, justificados pela fé, temos paz com Deus, por nosso Senhor Jesus
Cristo;
Pelo qual também temos entrada pela fé a esta graça, na qual estamos firmes, e
nos gloriamos na esperança da glória de Deus."
Romanos 5:1,2
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
Flutter - Apresentando o widget MaterialApp - Macoratti
Flutter - Apresentando Flutter Studio - Macoratti
Flutter - Lista Básica - Macoratti
Flutter - Apresentando Widgets - Macoratti
Flutter - Obtendo dados da Web - Macoratti