#flutter #flutter-layout #flutter-animation
Вопрос:
Итак, в явной анимации есть 2 типа, верно?
Разве ScaleTransition и Transform.scale не являются явными анимациями?
Зачем вам нужны два метода?
Комментарии:
1.
Transform.scale
является статическим виджетом, в то времяScaleTransition
как динамический управляется анимацией (Animation<double> scale
) — например, вы можете передать напрямуюAnimationController
2. привет, пскинк! какой из них чаще используется на практике в сложных случаях??
3. после захвата исходного кода flutter кажется, что
ScaleTransition
он используется два раза чаще4. @PaemKacit Чтобы понять, что соответствует вашим требованиям, ознакомьтесь с этой статьей medium.com/flutter/…
5. кстати, вот как
ScaleTransition
это реализовано: github.com/flutter/flutter/blob/c19845a8c3/packages/flutter/lib/… — он расширяетAnimatedWidget
и используетTransform.scale
внутреннийbuild()
метод
Ответ №1:
Transform.scale
это виджет статического масштабирования, который не может выполнять анимацию сам по себе и должен быть завернут в a TwennAnimationBuilder
. Анимацией нельзя управлять после завершения.
ScaleTransition
принимает Animation
в качестве значения свой scale
параметр, который управляется AnimationController
, следовательно, это явная анимация.
Комментарии:
1. итак, вы имеете в виду преобразование.масштаб-это неявная анимация??
2. @PaemKacit нет
Transform.scale
— это вообще не анимация-это просто статический виджет, и если вы хотите «оживить» его, вы должны использовать его внутриAnimatedBuilder
/ValueListenableBuilder
/AnimatedWidget
например3. @pskink спасибо!!!!