CustomInkSplash constructor
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,
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);
}