Как управлять несколькими анимациями на одном виджете? - PullRequest
0 голосов
/ 15 апреля 2019

Существует ли передовая практика или общий шаблон, когда речь идет об обработке нескольких анимаций для одного виджета?

Например, у меня есть кнопка, которая должна пульсировать при нагрузке, а затем уменьшаться при нажатии, каждая из которых является отдельной анимацией. В настоящее время я работаю с этим, имея класс PulsingButton и класс ShrinkingButton, каждый из которых возвращает AnimatedBuilder, и у меня есть логическое значение «buttonPressed», которое изменяется в setState при нажатии кнопки, которая затем вызывает страницу на либо возвращает PulsingButton () или ShrinkingButton () в зависимости от значения buttonPressed.

Это кажется супер хакерским и, очевидно, не масштабируемым, и просто хочу знать, что это за стандарт, если он есть. Спасибо!

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: _startAnimation,
      child: widget.buttonPressed
          ? ShrinkingButton(              //AnimatedBuilder
              controller: _controller,
              startingRadius: widget.radius,
            )
          : PulsingButton(               //AnimatedBuilder
              controller: _controller,
              startingRadius: widget.radius,
            ),
    );
  }
}
...