Как на самом деле использовать SizeTransition во Flutter?

Я хочу добиться того же эффекта, что и этот: https://api.flutter.dev/flutter/widgets/SizeTransition-class.html, но начиная с начала изображения. Я все перепробовал, и это не работает!

Я пробовал поставить в него Align, поставить контейнер с шириной, измененной значением анимации .. ничего не работает!

Раньше у меня была анимация, а затем она вызовет forward () для этой, когда она закончится (есть функция с именем complete, которая вызывает функцию forward ()).


initState() {
   _sizeController =
        AnimationController(duration: Duration(seconds: 1), vsync: this)
          ..addListener(() {
            setState(() {});
          });

    _sizeAnimation = Tween(begin: 0.0, end: 27.0).animate(CurvedAnimation(
        parent: _sizeController, curve: Curves.fastLinearToSlowEaseIn));
}

AnimatedContainer(
      width: _width,
      height: _height,
      duration: Duration(milliseconds: 200),
      decoration: BoxDecoration(
        color: _color,
        border: Border.all(
            color: Color(0xFF707070), width: 2, style: BorderStyle.solid),
        borderRadius: BorderRadius.circular(14.0),
      ),
      child: SizeTransition(
                    sizeFactor: _sizeAnimation,
                    axis: Axis.horizontal,
                    axisAlignment: -1,
                    child:
                        Center(child: Image.asset('assets/images/check.png')),
                  ),

Или он ничего не делает, или анимирует только масштабированием .. Как я могу добиться того же эффекта, что и в примере видео на странице виджета? Я хочу, чтобы этот эффект имел место, показывая изображение галочки внутри контейнера круга. А перед этим анимированный контейнер будет линейным контейнером, который превращается в круг, а затем появляется галочка.


person Daniel Vilela    schedule 24.05.2019    source источник
comment
Я сделал здесь пример SizeTransition: stackoverflow.com/a/56298722/666221   -  person diegoveloper    schedule 25.05.2019
comment
Это не сработало .. Может быть, потому что я использую изображение, idk   -  person Daniel Vilela    schedule 27.05.2019


Ответы (1)


вам нужно вызвать _sizeController.forward(), чтобы запустить анимацию

person Hashem Aboonajmi    schedule 19.12.2020