withBorderRadius method
AbstractButtonStyle
withBorderRadius({
- BorderRadiusGeometry? borderRadius,
- BorderRadiusGeometry? hoverBorderRadius,
- BorderRadiusGeometry? focusBorderRadius,
- BorderRadiusGeometry? disabledBorderRadius,
Creates a copy with custom border radius for different states.
Modifies the decoration to apply state-specific border radius. Only works with BoxDecoration; other decoration types are returned unchanged.
Parameters:
borderRadius: Border radius for normal statehoverBorderRadius: Border radius when hoveredfocusBorderRadius: Border radius when focuseddisabledBorderRadius: Border radius when disabled
Example:
final style = ButtonVariance.primary.withBorderRadius(
borderRadius: BorderRadius.circular(8),
hoverBorderRadius: BorderRadius.circular(12),
);
Implementation
AbstractButtonStyle withBorderRadius(
{BorderRadiusGeometry? borderRadius,
BorderRadiusGeometry? hoverBorderRadius,
BorderRadiusGeometry? focusBorderRadius,
BorderRadiusGeometry? disabledBorderRadius}) {
return copyWith(
decoration: (context, states, decoration) {
if (decoration is BoxDecoration) {
return decoration.copyWith(
borderRadius: states.disabled
? disabledBorderRadius ?? decoration.borderRadius
: states.hovered
? hoverBorderRadius ?? decoration.borderRadius
: states.focused
? focusBorderRadius ?? decoration.borderRadius
: borderRadius,
);
}
return decoration;
},
);
}