CustomInkSplash constructor

CustomInkSplash({
  1. required MaterialInkController controller,
  2. required RenderBox referenceBox,
  3. required TextDirection textDirection,
  4. 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,
  12. CustomInkSplashSetting setting = CustomInkSplashSetting.defaultSetting,
})

Implementation

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

  controller.addInkFeature(this);
}