Les animations implicites
Le plus simple : les widgets AnimatedXxx animent tout seuls un changement de valeur. Ex. AnimatedContainer anime une taille/couleur quand on change ses propriétés dans setState.
AnimatedContainer( duration: const Duration(milliseconds: 400), width: _plein ? 200 : 100, color: _plein ? Colors.green : Colors.grey, )
Les animations contrôlées
Pour un contrôle fin, un AnimationController (avec un TickerProvider) pilote la progression : forward(), reverse(), repeat().
Les Tween
Un Tween définit l'intervalle de valeurs (début → fin) que l'animation interpole (une opacité de 0 à 1, une position…).
La transition Hero
Hero anime en douceur un élément partagé d'un écran à l'autre (une image de liste qui « vole » vers l'écran détail), via un même tag.
Anime la jauge de volume avec AnimatedContainer quand une inscription fait monter le total. Optionnel : un Hero sur l'icône de la campagne entre la liste et le détail. Les animations doivent rester sobres : elles servent la lisibilité.
- Implicites (
AnimatedContainer…) pour les cas simples. - Contrôlées :
AnimationController+Tween. Heropour une transition d'élément partagé entre écrans.