Использование анимированного переключателя во флаттере не срабатывает (отредактировано) - PullRequest
0 голосов
/ 19 февраля 2020

Однако видна начальная анимация, а другим нравится масштаб. Могу ли я создать цепочку или рекомендуется разбить ее на отдельные виджеты?

Начальные виджеты непрозрачности и трансформации хорошо запускают анимацию, однако AnimatedSwitcher, похоже, не работает, хотя и работает с ScaleTransition Виджет.

Opacity(
                opacity: animation.textOpacity.value,
                child: Transform(
                  transform: new Matrix4.translationValues(
                      animation.xTranslationRightLeft.value, 0.0, 0.0),
                  child: AnimatedSwitcher(
                    transitionBuilder:
                        (Widget child, Animation<double> offsetanimation) {
                      return SlideTransition(
                        child: child,
                        position: animation.yTranslationUpDown2,
                      );
                    },
                    switchInCurve: Curves.bounceInOut,
                    child: Row(
                        key: ValueKey<int>(newUser.registerStep),
                        children: <Widget>[
                          (() {
                            if (newUser.registerStep <= 1) {
                              return Text(
                                'First things first,\nchoose your\nusername..',
                                style: TextStyle(
                                    color: Colors.black, fontSize: 36),
                              );
                            } else if (newUser.registerStep == 2) {
                              return Text(
                                'Next,\nCreate a\nPassword.',
                                style: TextStyle(
                                    color: Colors.black, fontSize: 36),
                              );
                            } else if (newUser.registerStep == 3) {
                              return Text(
                                'We need to\nknow a little\nabout you.',
                                style: TextStyle(
                                    color: Colors.black, fontSize: 36),
                              );
                            }
                          })()
                        ]),
                    duration: Duration(milliseconds: 700),
                  ),
                ),
              ),
...