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