attach method
Implementation
@override
Widget? attach(BuildContext context, NullableViewController controller) {
var mIcon = IconView(
controller: iconController,
visibility: controller.iconVisible,
marginBottom: controller.iconSpacing,
icon: controller.icon,
size: controller.iconSize,
tint: controller.iconTint,
tintMode: controller.iconTintMode,
);
var mHeader = TextView(
controller: headerController,
visibility: controller.headerVisible,
width: double.infinity,
gravity: Alignment.center,
text: controller.header,
textColor: controller.headerColor,
textAlign: TextAlign.center,
textFontFamily: controller.headerFontFamily,
textFontWeight: controller.headerFontWeight,
textSize: controller.headerSize,
);
var mBody = TextView(
controller: bodyController,
visibility: controller.bodyVisible,
width: double.infinity,
gravity: Alignment.center,
marginTop: controller.bodySpacing,
text: controller.body,
textAlign: TextAlign.center,
textColor: controller.bodyColor,
textFontFamily: controller.bodyFontFamily,
textFontWeight: controller.bodyFontWeight,
textSize: controller.bodySize,
);
var mButton = Button(
controller: buttonController,
visibility: controller.buttonVisible,
marginTop: controller.buttonSpacing,
background: controller.buttonBackground ?? context.primaryColor,
widthMin: controller.buttonMinWidth,
paddingHorizontal: controller.buttonPaddingX,
paddingVertical: controller.buttonPaddingY,
rippleColor: controller.buttonRippleColor ?? Colors.black26,
pressedColor: Colors.black12,
borderRadius: controller.buttonBorderRadius,
text: controller.buttonText,
textColor: controller.buttonTextColor ?? Colors.white,
textFontWeight: controller.buttonTextFontWeight,
textSize: controller.buttonTextSize,
onClick: onButtonClick,
);
var mSecondaryButton = Button(
controller: secondaryButtonController,
visibility: controller.secondaryButtonVisible,
marginTop: controller.secondaryButtonSpacing,
background: controller.secondaryButtonBackground ??
(controller.buttonBackground ?? context.primaryColor)
.withOpacity(0.1),
widthMin: controller.secondaryButtonMinWidth,
paddingHorizontal: controller.secondaryButtonPaddingX,
paddingVertical: controller.secondaryButtonPaddingY,
rippleColor: controller.secondaryButtonRippleColor ??
(controller.buttonRippleColor ?? Colors.black26).withOpacity(0.2),
pressedColor: Colors.black12,
borderRadius: controller.secondaryButtonBorderRadius ??
controller.buttonBorderRadius,
text: controller.secondaryButtonText,
textColor: controller.secondaryButtonTextColor ??
controller.buttonBackground ??
context.primaryColor,
textFontWeight: controller.secondaryButtonTextFontWeight ??
controller.buttonTextFontWeight,
textSize: controller.secondaryButtonTextSize ?? controller.buttonTextSize,
onClick: onSecondaryButtonClick,
);
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: [
iconBuilder?.call(context, mIcon) ?? mIcon,
headerBuilder?.call(context, mHeader) ?? mHeader,
bodyBuilder?.call(context, mBody) ?? mBody,
buttonBuilder?.call(context, mButton) ?? mButton,
secondaryButtonBuilder?.call(context, mSecondaryButton) ??
mSecondaryButton,
],
);
}