AnimatedCrossFade是我最喜欢的使用Flutter的小部件之一,它光滑且非常方便。
我知道这与小部件应使用的功能矛盾,但我想知道是否有一种方法可以对其进行调整,以使其不会在其子级之间交叉淡入淡出,而是淡出其中的一个,然后使淡入另一个。
如果无法使用此小部件执行此操作,什么是最佳方法?
答案 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传递给该曲线。”