DurableAnimationController.unbounded constructor

DurableAnimationController.unbounded({
  1. DurabilityPolicy policy = DurabilityPolicy.resume,
  2. double value = 0.0,
  3. Duration? duration,
  4. Duration? reverseDuration,
  5. String? debugLabel,
  6. AnimationBehavior animationBehavior = AnimationBehavior.preserve,
  7. DateTime clock() = DateTime.now,
})

Creates a state-durable animation controller with unbounded limits.

  • policy: The timeline durability policy across dormant deactivations. Defaults to DurabilityPolicy.resume.
  • value: Initial value of the animation. Defaults to 0.0.
  • duration: Forward animation duration.
  • reverseDuration: Reverse animation duration.
  • debugLabel: Diagnostic label for debugging output.
  • animationBehavior: Accessibility behavior override. Defaults to AnimationBehavior.preserve.
  • clock: Timestamp supplier used when policy is DurabilityPolicy.catchUp. Defaults to DateTime.now.

Ensures:

Implementation

factory DurableAnimationController.unbounded({
  DurabilityPolicy policy = DurabilityPolicy.resume,
  double value = 0.0,
  Duration? duration,
  Duration? reverseDuration,
  String? debugLabel,
  AnimationBehavior animationBehavior = AnimationBehavior.preserve,
  DateTime Function() clock = DateTime.now,
}) {
  return switch (policy) {
    DurabilityPolicy.resume => _FrozenAnimationController.unbounded(
        value: value,
        duration: duration,
        reverseDuration: reverseDuration,
        debugLabel: debugLabel,
        animationBehavior: animationBehavior,
        frozen: true,
      ),
    DurabilityPolicy.catchUp => _CatchUpAnimationController.unbounded(
        value: value,
        duration: duration,
        reverseDuration: reverseDuration,
        debugLabel: debugLabel,
        animationBehavior: animationBehavior,
        clock: clock,
      ),
    DurabilityPolicy.reset => _FrozenAnimationController.unbounded(
        value: value,
        duration: duration,
        reverseDuration: reverseDuration,
        debugLabel: debugLabel,
        animationBehavior: animationBehavior,
        frozen: false,
      ),
  };
}