secondaryButton method
Widget
secondaryButton({
- required String title,
- EdgeInsets? margin,
- ButtonSize? buttonSize,
- double? borderRadius,
- double? elevation,
- bool isLoading = false,
- bool isDisabled = false,
- Color? backgroundColor,
- Color? disabledBackgroundColor,
- Color? titleColor,
- Color? disabledTitleColor,
- Color? splashColor,
- Color? disabledSplashColor,
- Color? borderColor,
- Color? disabledBorderColor,
- Color? loadingColor,
- Widget? loadingWidget,
- dynamic onTap()?,
- IconPosition? iconPosition,
- Widget? iconWidget,
Component of Secondary Button
Implementation
Widget secondaryButton(
{required String title,
/// change title
EdgeInsets? margin,
/// change margin
ButtonSize? buttonSize,
/// change button size
double? borderRadius,
/// change border radius
double? elevation,
/// change elevation
bool isLoading = false,
/// change state isLoading
bool isDisabled = false,
/// change state isDisabled
Color? backgroundColor,
/// change background color
Color? disabledBackgroundColor,
/// change disable background color
Color? titleColor,
/// change title color
Color? disabledTitleColor,
/// change disable title color
Color? splashColor,
/// change splash color
Color? disabledSplashColor,
/// change disable splash color
Color? borderColor,
/// change border color
Color? disabledBorderColor,
/// change disable border color
Color? loadingColor,
/// change loading color
Widget? loadingWidget,
/// change loading widget
Function()? onTap,
/// call function using onTap
IconPosition? iconPosition,
/// change icon position
Widget? iconWidget
/// change icon widget
}) {
return ValueListenableBuilder<Size>(
valueListenable: InitialValue.screenSizeNotifier,
builder: (context, size, _) {
return Padding(
padding: margin ?? const EdgeInsets.symmetric(vertical: 4),
child: Material(
color: isDisabled
? disabledBackgroundColor ?? ColorTheme.grey700
: backgroundColor ??
ColorTheme.secondaryBackgroundColor ??
ColorTheme.white,
elevation: elevation ?? 1,
borderRadius: BorderRadius.circular(borderRadius ?? 12),
child: InkWell(
splashColor: isDisabled
? Colors.transparent
: splashColor ?? ColorTheme.primary500,
borderRadius: BorderRadius.circular(borderRadius ?? 12),
onTap: isLoading || isDisabled ? () {} : onTap,
child: Container(
alignment: Alignment.center,
width:
funcButtonSizeConverter(buttonSize ?? ButtonSize.fullWidth),
padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 16),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(borderRadius ?? 12),
border: Border.all(
color: isDisabled
? disabledBorderColor ?? ColorTheme.black
: borderColor ??
ColorTheme.secondaryStrokeColor ??
ColorTheme.primary500)),
child: isLoading
? loadingChildContainer(
loadingWidget: loadingWidget ??
SizedBox(
height: funcLoadingSizeConverter(
buttonSize ?? ButtonSize.fullWidth),
width: funcLoadingSizeConverter(
buttonSize ?? ButtonSize.fullWidth),
child: CircularProgressIndicator(
color: loadingColor ??
titleColor ??
ColorTheme.black,
),
))
: childContainerWidget(
iconPosition: iconPosition ?? IconPosition.left,
body: standardHeaderText(
fontSize: funcFontSizeConverter(
buttonSize ?? ButtonSize.fullWidth),
text: title,
color: isDisabled
? disabledTitleColor ?? ColorTheme.black
: titleColor ??
ColorTheme.secondaryTitleColor ??
ColorTheme.black),
icon: iconWidget)),
),
),
);
}
);
}