getButtonStyle method

ButtonStyle? getButtonStyle(
  1. ColorScheme colorScheme,
  2. CustomButtonSize size
)

获取按钮样式

Implementation

ButtonStyle? getButtonStyle(ColorScheme colorScheme, CustomButtonSize size) {
  double? customFontSize;
  EdgeInsets? customPadding;
  switch (size) {
    case CustomButtonSize.small:
      customFontSize = 14;
      customPadding = const EdgeInsets.symmetric(horizontal: 20);
      break;
    case CustomButtonSize.medium:
      customFontSize = 16;
      customPadding = null;
      break;
    case CustomButtonSize.large:
      customFontSize = 18;
      customPadding = const EdgeInsets.symmetric(horizontal: 28);
      break;
  }
  return style != null
      ? style?.copyWith(
          foregroundColor: WidgetStatePropertyAll(color ?? colorScheme.primary),
          overlayColor: const WidgetStatePropertyAll(Colors.transparent),
          side: WidgetStatePropertyAll(BorderSide(color: color ?? colorScheme.primary)),
          textStyle: WidgetStatePropertyAll(TextStyle(fontSize: fontSize ?? customFontSize)),
          padding: WidgetStatePropertyAll(customPadding),
        )
      : ButtonStyle(
          foregroundColor: WidgetStatePropertyAll(color ?? colorScheme.primary),
          overlayColor: const WidgetStatePropertyAll(Colors.transparent),
          side: WidgetStatePropertyAll(BorderSide(color: color ?? colorScheme.primary)),
          textStyle: WidgetStatePropertyAll(TextStyle(fontSize: fontSize ?? customFontSize)),
          padding: WidgetStatePropertyAll(customPadding),
        );
}