Как конвертировать SizeTransition в FadeTransition для кодирования FLATTER - PullRequest
0 голосов
/ 15 ноября 2018

Я новичок во Флаттере и Дарт.Надеюсь получить руководство по обучающему упражнению. Я застрял.

Я слежу за кодовой надписью Flutter https://codelabs.developers.google.com/codelabs/flutter/index.html?index=..%2F..index#6 и могу сделать все.

Есть задание, которое задает нам вопросдля этого необходимо

Создать эффект анимации с постепенным увеличением, заключив контейнер в виджет FadeTransition вместо SizeTransition.

Код, указанный ниже

@override
Widget build(BuildContext context) {
  return new SizeTransition(
    sizeFactor: new CurvedAnimation(
        parent: animationController, curve: Curves.easeOut),
    axisAlignment: 0.0,
    child: new Container(
      // ... other codes ...
    ),
  );
}

Итак, я перехожу на FadeTransition, для которого требуется opacity типа Animation<Double>

@override
Widget build(BuildContext context) {
  return new FadeTransition(
    opacity: animation
    child: new Container(
      // ... other codes ...
    ),
  );
}

Как я могу создать или отправить в animation?(приведенный выше код будет иметь animation до неузнаваемости).

Ответы [ 2 ]

0 голосов
/ 27 июля 2019

Вы можете попробовать это

opacity: Tween<double>(
      begin: 0.0,
      end: 1.0,
    ).animate(animationController),

CurvedAnimation используется для нелинейной анимации.

Подробнее здесь https://flutter.dev/docs/development/ui/animations/tutorial

0 голосов
/ 15 ноября 2018

Нашли ответ, обратившись к https://proandroiddev.com/getting-your-hands-dirty-with-flutter-basic-animations-6b9f21fa7d17 и изменив соответственно.

Таким образом, чтобы иметь FadeTransition, просто замените

opacity: animation

с

opacity: new CurvedAnimation(parent: animationController, curve: Curves.easeIn),

Это не идеально, так как каждый раз, когда сообщение вставляется, оно создает новый CurveAnimation, но ради краткого решения я делаю это так.

...