startRunDragGridSlideAnimations<T> function
void
startRunDragGridSlideAnimations<T>({
- required bool enable,
- required Size itemSize,
- required List<
T> oldItems, - required List<
T> newItems, - required AnimationController animateController,
- required List<
Animation< slideAnimations,Offset> ?> - required List<
Animation< fadeAnimations,double> ?> - required double crossAxisSpacing,
- required double mainAxisSpacing,
- required Axis direction,
- required int crossCount,
Start DragGrid slideAnimations (from -> end)
Implementation
void startRunDragGridSlideAnimations<T>({
required bool enable,
required Size itemSize,
required List<T> oldItems,
required List<T> newItems,
required AnimationController animateController,
required List<Animation<Offset>?> slideAnimations,
required List<Animation<double>?> fadeAnimations,
required double crossAxisSpacing,
required double mainAxisSpacing,
required Axis direction,
required int crossCount,
}) {
if (enable) {
fadeAnimations.clear();
slideAnimations.clear();
// slideAnimations
for (final end in newItems.asMap().keys) {
int from = oldItems.indexOf(newItems[end]);
slideAnimations.add(createGridItemSlideAnimation(
enable: enable,
itemSize: itemSize,
direction: direction,
crossCount: crossCount,
animateController: animateController,
crossAxisSpacing: crossAxisSpacing,
mainAxisSpacing: mainAxisSpacing,
from: from != -1 ? from : end,
end: end,
));
}
// fadeAnimations
for (final obj in newItems.asMap().entries) {
if (obj.key >= oldItems.length) {
fadeAnimations.add(null);
continue;
}
if (oldItems.any((old) => old == obj.value)) {
fadeAnimations.add(null);
continue;
}
fadeAnimations.add(createGridItemFadeAnimation(
animateController: animateController,
enable: enable,
));
}
animateController.reset();
animateController.forward();
}
}