先淡出然后再淡入的AnimatedCrossFade

时间:2019-06-25 16:16:32

标签: flutter dart fade flutter-animation

AnimatedCrossFade是我最喜欢的使用Flutter的小部件之一,它光滑且非常方便。

我知道这与小部件应使用的功能矛盾,但我想知道是否有一种方法可以对其进行调整,以使其不会在其子级之间交叉淡入淡出,而是淡出其中的一个,然后使淡入另一个。

如果无法使用此小部件执行此操作,什么是最佳方法?

1 个答案:

答案 0 :(得分:0)

找到了我想要的解决方案。

“类似这样的方法效果很好:

class LinearHalfCurve extends Curve {
   @override
   double transformInternal(double t) {
      if(t < 0.5) {
        return t*2; // goes from 0-1.0 when t is 0-0.5
      }
      return 1.0; // cap to 1.0 when t is above 0.5
    }
}

然后在您的AnimatedCrossFade集中:

    firstCurve: LinearHalfCurve(),
    secondCurve: LinearHalfCurve().flipped,

如果需要更多的奇特曲线,可以在自定义曲线类中保留该类型的内部曲线,并在第一次返回时将t * 2传递给该曲线。”