TargetRectGetter constructor

TargetRectGetter({
  1. required FocusTarget target,
  2. required TickerProvider animationVsync,
  3. required ValueChanged<FocusRect> onRectGet,
  4. required Duration defaultAnimationDuration,
  5. required FocusAnimationType defaultAnimationType,
  6. required Curve defaultAnimationCurve,
  7. bool rootOverlay = false,
})

Implementation

TargetRectGetter({
  required this.target,
  required TickerProvider animationVsync,
  required this.onRectGet,
  required Duration defaultAnimationDuration,
  required FocusAnimationType defaultAnimationType,
  required Curve defaultAnimationCurve,
  this.rootOverlay = false,
}) : animationType = target.animationType ?? defaultAnimationType {
  _controller = AnimationController(
    duration: target.animationDuration ?? defaultAnimationDuration,
    vsync: animationVsync,
  );

  final curveAnimation = CurvedAnimation(
    parent: _controller,
    curve: target.animationCurve ?? defaultAnimationCurve,
  );

  _progressCenterAnimation = Tween(
    begin: 0.0,
    end: 1.0,
  ).animate(curveAnimation);

  _progressScreenAnimation = Tween(
    begin: 1.0,
    end: 0.0,
  ).animate(curveAnimation);

  _descAnimation = CurvedAnimation(
    parent: _controller,
    curve: Curves.easeInQuint,
  );

  _controller.addListener(_syncRect);
}