AnimationTimeline.staggered constructor
AnimationTimeline.staggered({
- required List<
AnimationController> controllers, - required TimelineStepBuilder buildStep,
- Duration gap = Duration.zero,
- bool repeat = false,
- bool alternate = false,
- Object? id,
- void onStepStart(
- int index,
- AnimationTimelineStep step,
- TimelineDirection direction
- void onStepComplete(
- int index,
- AnimationTimelineStep step,
- TimelineDirection direction
Implementation
factory AnimationTimeline.staggered({
required List<AnimationController> controllers,
required TimelineStepBuilder buildStep,
Duration gap = Duration.zero,
bool repeat = false,
bool alternate = false,
Object? id,
void Function(
int index,
AnimationTimelineStep step,
TimelineDirection direction,
)?
onStepStart,
void Function(
int index,
AnimationTimelineStep step,
TimelineDirection direction,
)?
onStepComplete,
}) {
if (controllers.isEmpty) {
throw ArgumentError.value(
controllers,
'controllers',
'must not be empty',
);
}
final steps = <AnimationTimelineStep>[];
for (var index = 0; index < controllers.length; index++) {
if (index > 0 && gap > Duration.zero) {
steps.add(AnimationTimelineStep.delay(gap, label: 'gap-$index'));
}
steps.add(buildStep(index, controllers[index]));
}
return AnimationTimeline(
steps: steps,
repeat: repeat,
alternate: alternate,
id: id,
onStepStart: onStepStart,
onStepComplete: onStepComplete,
);
}