copyWith method

  1. @useResult
FModalSheetStyle copyWith({
  1. ImageFilter barrierFilter(
    1. BuildContext context,
    2. double animation
    )? = Sentinels.imageFilterFunction,
  2. FModalSheetMotionDelta? motion,
  3. double? flingVelocity,
  4. double? closeProgressThreshold,
})

Returns a copy of this FModalSheetStyle with the given properties replaced.

See customizing widget styles.

Parameters

Prefer a static function over a closure literal. A closure literal is never equal to another, which causes widgets to flicker when the same theme is recreated.

Examples

// Blurred
(context, animation) => ImageFilter.blur(sigmaX: animation * 5, sigmaY: animation * 5);

// Solid color
(context, animation) => ColorFilter.mode(Colors.white.withValues(alpha: animation), BlendMode.srcOver);

// Tinted
(context, animation) => ColorFilter.mode(
  context.theme.colors.barrier.withValues(alpha: animation * 0.5),
  BlendMode.srcOver,
);

// Blurred & tinted
(context, animation) => ImageFilter.compose(
  outer: ImageFilter.blur(sigmaX: animation * 5, sigmaY: animation * 5),
  inner: ColorFilter.mode(Colors.white.withValues(alpha: animation * 0.5), BlendMode.srcOver),
);

Implementation

@useResult
FModalSheetStyle copyWith({
  ImageFilter Function(BuildContext, double)? barrierFilter = Sentinels.imageFilterFunction,
  FModalSheetMotionDelta? motion,
  double? flingVelocity,
  double? closeProgressThreshold,
}) => .new(
  barrierFilter: barrierFilter == Sentinels.imageFilterFunction ? this.barrierFilter : barrierFilter,
  motion: motion?.call(this.motion) ?? this.motion,
  flingVelocity: flingVelocity ?? this.flingVelocity,
  closeProgressThreshold: closeProgressThreshold ?? this.closeProgressThreshold,
);