【问题标题】:Flutter, ScaleTransition vs Transform.scale颤振,ScaleTransition 与 Transform.scale
【发布时间】:2021-10-26 11:34:37
【问题描述】:

那么显式动画有两种类型,对吧?

ScaleTransition 和 Transform.scale 不都是显式动画吗?

为什么需要两种方法?

【问题讨论】:

  • Transform.scale 是一个静态小部件,而 ScaleTransition 是一个由动画驱动的动态小部件 (Animation<double> scale) - 例如您可以直接传递 AnimationController
  • 嗨,pskink!在复杂的情况下,哪一种在实践中更常用??
  • 在对颤振源代码进行 grepping 之后,ScaleTransition 似乎经常被使用两次
  • @PaemKacit 要了解什么符合您的要求,请参阅这篇文章medium.com/flutter/…
  • 顺便说一句,这就是 ScaleTransition 的实现方式:github.com/flutter/flutter/blob/c19845a8c3/packages/flutter/lib/… - 它扩展了 AnimatedWidget 并在 Transform.scale 内部使用 Transform.scale 方法

标签: flutter flutter-layout flutter-animation


【解决方案1】:

Transform.scale 是一个静态缩放小部件,它本身不能执行动画,应该包裹在TwennAnimationBuilder 中。动画完成后无法控制。

ScaleTransitionAnimation 作为其scale 参数的值,该参数由AnimationController 控制,因此它是一个显式动画。

【讨论】:

  • 所以你的意思是 Transform.scale 是隐式动画??
  • @PaemKacit no Transform.scale 根本不是动画 - 它只是一个静态小部件,如果你想“动画”它,你应该在 AnimatedBuilder / ValueListenableBuilder / @ 中使用它例如987654330@
  • @pskink 谢谢!!!!
猜你喜欢
  • 2021-06-10
  • 2019-05-19
  • 1970-01-01
  • 2020-11-29
  • 2022-07-19
  • 1970-01-01
  • 2021-08-16
  • 2021-05-15
  • 2019-02-27
相关资源
最近更新 更多