repeat method
Starts running this animation in the forward direction, and restarts the animation when it completes.
Defaults to repeating between the lowerBound and upperBound of the
AnimationController when no explicit value is set for min and max.
With reverse set to true, instead of always starting over at min
the starting value will alternate between min and max values on each
repeat. The status will be reported as AnimationStatus.reverse when
the animation runs from max to min.
Each run of the animation will have a duration of period. If period is not
provided, duration will be used instead, which has to be set before repeat is
called either in the constructor or later by using the duration setter.
If a value is passed to count, the animation will perform that many
iterations before stopping. Otherwise, the animation repeats indefinitely.
Returns a TickerFuture that never completes, unless a count is specified.
The TickerFuture.orCancel future completes with an error when the animation is
stopped (e.g. with stop).
The most recently returned TickerFuture, if any, is marked as having been canceled, meaning the future never completes and its TickerFuture.orCancel derivative future completes with a TickerCanceled error.
Implementation
TickerFuture repeat({
double? min,
double? max,
bool reverse = false,
Duration? period,
int? count,
}) {
min ??= lowerBound;
max ??= upperBound;
period ??= duration;
assert(() {
if (period == null) {
throw FlutterError(
'AnimationController.repeat() called without an explicit period and with no default Duration.\n'
'Either the "period" argument to the repeat() method should be provided, or the '
'"duration" property should be set, either in the constructor or later, before '
'calling the repeat() function.',
);
}
return true;
}());
assert(max >= min);
assert(max <= upperBound && min >= lowerBound);
assert(count == null || count > 0, 'Count shall be greater than zero if not null');
stop();
return _startSimulation(
_RepeatingSimulation(_value, min, max, reverse, period!, _directionSetter, count),
);
}