Контроллеры анимации во Flutter - PullRequest
0 голосов
/ 14 июля 2020

Я хочу создать отдельные контроллеры для каждого виджета, который я использую в своем коде.

В настоящее время, когда я нажимаю на виджет, изменение отражается во всем виджете, потому что я не определил отдельные контроллеры для каждого виджета, поскольку у них одинаковая функция переворачивания!

Вот как я это сделал сейчас

final List<AnimationController> _controller = List();

Ошибка

Другое исключение было выбрано: type 'AnimationController' не является подтипом типа 'List' of 'function result'

class MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
  Animation<double> _frontScale;
  Animation<double> _backScale;
  var sid;
  final List<AnimationController> _controller = List();
  @override
  void initState() {
    super.initState();

    print('The sid is');
    print(sid);

    print('Isside animate');
    print(_id);
    print(sid);
    _controller[sid] = new AnimationController(
      vsync: this,
      duration: const Duration(seconds: 1),
    );
    _frontScale = new Tween(
      begin: 1.0,
      end: 0.0,
    ).animate(new CurvedAnimation(
      parent: _controller[sid],
      curve: new Interval(0.0, 0.5, curve: Curves.easeIn),
    ));
    _backScale = new CurvedAnimation(
      parent: _controller[sid],
      curve: new Interval(0.5, 1.0, curve: Curves.easeOut),
    );
  }

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

SID - это переменная, которую я использовал, чтобы записывать IDS виджетов, когда с отводом

1 Ответ

0 голосов
/ 07 августа 2020

Приведенный код и упомянутая ошибка не связаны (по крайней мере, косвенно), но в целях улучшения и поддержки не преувеличивайте количество контроллеров! и для меня два контроллера - это слишком много (использовал их только в редких случаях!). Практика здесь заключается в использовании AnimatedSwitcher, который предоставит вам объект Animation<double> для использования в вашем виджете, и, конечно же, это будет только для визуализированного виджета.

Совет: вы можете использовать только логические значения для управления поведением анимации в данном решении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...