В Flutter анимация строится на основе виджетов и контроллеров. Основные концепции:
Tween и AnimationController.Animation, который управляет продолжительностью, направлением и состоянием анимации (запуск, остановка, пауза). Требует TickerProvider для синхронизации с фреймами экрана.Animation.Типы анимации:
Неявная анимация (Implicit Animation): Использует виджеты, которые автоматически анимируют свои свойства при их изменении. Простой способ создания анимации для базовых свойств. Пример: AnimatedContainer, AnimatedOpacity, AnimatedCrossFade.
dart
Явная анимация (Explicit Animation): Требует создания AnimationController и Animation. Даёт полный контроль над процессом анимации. Используется для более сложных сценариев, последовательных или параллельных анимаций.
Основные виджеты для явной анимации:
AnimatedBuilder: Перестраивает только ту часть дерева виджетов, которая зависит от Animation. Оптимизирует производительность, избегая полного перестроения.
dart
SlideTransition, FadeTransition, ScaleTransition и другие: Виджеты, которые принимают Animation и применяют соответствующие преобразования к своему child.
dart
Типы TickerProvider:
SingleTickerProviderStateMixin: Используется, если только один AnimationController находится в этом State.TickerProviderStateMixin: Используется, если несколько AnimationController находятся в этом State.Выбор метода анимации зависит от сложности требуемой анимации. Для простых случаев достаточно неявной анимации, для более сложных и кастомных — явная анимация.