WaveSplash constructor

WaveSplash({
  1. required MaterialInkController controller,
  2. required RenderBox referenceBox,
  3. required TextDirection textDirection,
  4. required Offset position,
  5. required Color color,
  6. bool containedInkWell = false,
  7. RectCallback? rectCallback,
  8. BorderRadius? borderRadius,
  9. ShapeBorder? customBorder,
  10. double? radius,
  11. VoidCallback? onRemoved,
})

Implementation

WaveSplash({
  required MaterialInkController controller,
  required RenderBox referenceBox,
  required TextDirection textDirection,
  required Offset position,
  required Color color,
  bool containedInkWell = false,
  RectCallback? rectCallback,
  BorderRadius? borderRadius,
  ShapeBorder? customBorder,
  double? radius,
  VoidCallback? onRemoved,
})  : _position = position,
      _borderRadius = borderRadius ?? BorderRadius.zero,
      _customBorder = customBorder,
      _targetRadius = radius ??
          _getTargetRadius(
              referenceBox, containedInkWell, rectCallback, position),
      _clipCallback =
          _getClipCallback(referenceBox, containedInkWell, rectCallback),
      _repositionToReferenceBox = !containedInkWell,
      _textDirection = textDirection,
      super(
          controller: controller,
          referenceBox: referenceBox,
          color: color,
          onRemoved: onRemoved) {
  _radiusController = AnimationController(
      duration: _kUnconfirmedSplashDuration, vsync: controller.vsync)
    ..addListener(controller.markNeedsPaint)
    ..forward();
  _radius = _radiusController.drive(Tween<double>(
    begin: _kSplashInitialSize,
    end: _targetRadius,
  ));
  _alphaController = AnimationController(
      duration: _kSplashFadeDuration, vsync: controller.vsync)
    ..addListener(controller.markNeedsPaint)
    ..addStatusListener(_handleAlphaStatusChanged);
  _alpha = _alphaController.drive(IntTween(
    begin: color.alpha,
    end: 0,
  ));

  controller.addInkFeature(this);
}