OverlayMorphController constructor

OverlayMorphController({
  1. required TickerProvider vsync,
  2. Duration appearDuration = const Duration(milliseconds: 220),
  3. Duration disappearDuration = const Duration(milliseconds: 150),
  4. Duration expandDuration = const Duration(milliseconds: 260),
  5. Duration collapseDuration = const Duration(milliseconds: 200),
  6. Curve appearCurve = Curves.easeOutBack,
  7. Curve disappearCurve = Curves.easeOutQuad,
  8. Curve expandCurve = Curves.fastOutSlowIn,
  9. Curve collapseCurve = Curves.easeOutQuad,
  10. double dismissThreshold = 0.35,
  11. double expandThreshold = 0.35,
  12. double flickVelocityThreshold = 800.0,
  13. double cardWidthFraction = 0.85,
  14. double cardHeightFraction = 0.72,
})

Implementation

OverlayMorphController({
  required TickerProvider vsync,
  this.appearDuration = const Duration(milliseconds: 220),
  this.disappearDuration = const Duration(milliseconds: 150),
  this.expandDuration = const Duration(milliseconds: 260),
  this.collapseDuration = const Duration(milliseconds: 200),
  this.appearCurve = Curves.easeOutBack,
  this.disappearCurve = Curves.easeOutQuad,
  this.expandCurve = Curves.fastOutSlowIn,
  this.collapseCurve = Curves.easeOutQuad,
  this.dismissThreshold = 0.35,
  this.expandThreshold = 0.35,
  this.flickVelocityThreshold = 800.0,
  this.cardWidthFraction = 0.85,
  this.cardHeightFraction = 0.72,
}) {
  _overlayController = AnimationController(
    vsync: vsync,
    value: 0.0,
    duration: appearDuration,
    reverseDuration: disappearDuration,
  );
  _expandController = AnimationController(
    vsync: vsync,
    value: 0.0,
    duration: expandDuration,
    reverseDuration: collapseDuration,
  );
  _horizontalSnapController = AnimationController(
    vsync: vsync,
    duration: const Duration(milliseconds: 180),
  );

  _overlayController.addListener(_onOverlayTick);
  _overlayController.addStatusListener(_onOverlayStatus);
  _expandController.addListener(_onExpandTick);
  _expandController.addStatusListener(_onExpandStatus);
  _horizontalSnapController.addListener(_onHorizontalSnapTick);
  _horizontalSnapController.addStatusListener(_onHorizontalSnapStatus);

  _state = const OverlayMorphState(
    overlayProgress: 0.0,
    expandProgress: 0.0,
    phase: OverlayPhase.idle,
  );
}