Ответ
Неявные анимации в Flutter — это готовые виджеты, которые автоматически анимируют переходы при изменении их свойств. Вместо того чтобы вручную управлять анимационными контроллерами, Tween и AnimationBuilder, вы просто меняете значение свойства (например, ширину или цвет), а виджет сам плавно переходит к новому состоянию за заданное время.
Ключевые виджеты неявных анимаций:
AnimatedContainer— анимирует изменения размера, цвета, отступов, границ и т.д.AnimatedOpacity— плавно изменяет прозрачность (opacity) дочернего виджета.AnimatedPadding— анимирует изменениеpadding.AnimatedAlign— анимирует изменение выравнивания дочернего виджета.AnimatedPositioned— используется внутриStackдля анимации изменения позиции.AnimatedDefaultTextStyle— анимирует изменение стиля текста.
Пример: Интерактивный контейнер
bool _isExpanded = false;
GestureDetector(
onTap: () {
setState(() {
_isExpanded = !_isExpanded; // Меняем состояние
});
},
child: AnimatedContainer(
duration: const Duration(milliseconds: 300), // Длительность анимации
curve: Curves.easeInOut, // Кривая (характер) анимации
width: _isExpanded ? 200.0 : 100.0,
height: _isExpanded ? 200.0 : 100.0,
color: _isExpanded ? Colors.blueAccent : Colors.orange,
alignment: Alignment.center,
child: Text(_isExpanded ? 'Expanded!' : 'Tap me'),
),
)
Преимущества:
- Простота: Не требуется сложного бойлерплейт-кода.
- Декларативность: Описываете конечное состояние, а Flutter заботится о переходе.
Ограничения:
- Менее гибкие, чем явные анимации (
AnimationController+Tween+AnimatedBuilder). - Подходят для прямых переходов между двумя состояниями.
Используйте неявные анимации для быстрого добавления плавных переходов к стандартным виджетам.