Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от AI

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

Основни стъпки:

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

Пример:

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(),
    );
  }
}