m3eGradientBackgroundBuilder function
ButtonLayerBuilder?
m3eGradientBackgroundBuilder({
- required BorderRadius clipRadius,
- WidgetStateProperty<
Gradient?> ? gradient, - ButtonLayerBuilder? explicitBuilder,
Builds a ButtonLayerBuilder that paints gradient behind the child.
When explicitBuilder is set, it wins. The result is always clipped to
clipRadius unless explicitBuilder is used (caller clips that path).
Implementation
ButtonLayerBuilder? m3eGradientBackgroundBuilder({
required BorderRadius clipRadius,
WidgetStateProperty<Gradient?>? gradient,
ButtonLayerBuilder? explicitBuilder,
}) {
if (explicitBuilder != null) {
return (BuildContext context, Set<WidgetState> states, Widget? child) {
return ClipRRect(
borderRadius: clipRadius,
child: explicitBuilder(context, states, child),
);
};
}
if (gradient == null) {
return null;
}
return (BuildContext context, Set<WidgetState> states, Widget? child) {
final Gradient? resolved = gradient.resolve(states);
if (resolved == null) {
return child ?? const SizedBox.shrink();
}
return m3eGradientFillLayer(
clipRadius: clipRadius,
gradient: resolved,
child: child,
disabled: states.contains(WidgetState.disabled),
);
};
}