Sobes.tech
Back to questions
Junior — Middle
130

Каким образом управлять анимацией через AnimationController в вашем приложении?

Companies where asked
AndersenAndersen

Answer from AI

sobes.tech AI

В Flutter для управления анимацией используется класс AnimationController. Он позволяет запускать, останавливать, повторять и контролировать прогресс анимации.

Основные шаги:

  1. Создайте AnimationController в состоянии виджета (обычно в методе initState), указав длительность анимации и vsync (для оптимизации ресурсов).
  2. Используйте методы контроллера: forward(), reverse(), repeat(), stop() для управления анимацией.
  3. Подпишитесь на изменения значения анимации через слушатель (addListener), чтобы обновлять UI.
  4. Не забудьте освободить ресурсы, вызвав dispose() для контроллера в методе dispose виджета.

Пример:

class MyAnimatedWidgetState extends State<MyAnimatedWidget> with SingleTickerProviderStateMixin {
  late AnimationController _controller;

  @override
  void initState() {
    super.initState();
    _controller = AnimationController(
      duration: const Duration(seconds: 2),
      vsync: this,
    )..addListener(() {
        setState(() {}); // обновляем UI при изменении анимации
      });
    _controller.forward(); // запускаем анимацию
  }

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

  @override
  Widget build(BuildContext context) {
    return Opacity(
      opacity: _controller.value, // значение от 0.0 до 1.0
      child: YourWidget(),
    );
  }
}