authsec_flutterNewUi/base_project/lib/widgets/custom_floating_button.dart
2025-03-21 09:10:43 +05:30

92 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
import '../utils/size_utils.dart';
class CustomFloatingButton extends StatelessWidget {
CustomFloatingButton(
{super.key, this.shape,
this.variant,
this.alignment,
this.margin,
this.onTap,
this.width,
this.height,
this.child});
FloatingButtonShape? shape;
FloatingButtonVariant? variant;
Alignment? alignment;
EdgeInsetsGeometry? margin;
VoidCallback? onTap;
double? width;
double? height;
Widget? child;
@override
Widget build(BuildContext context) {
return alignment != null
? Align(
alignment: alignment ?? Alignment.center,
child: _buildFabWidget(),
)
: _buildFabWidget();
}
_buildFabWidget() {
return Padding(
padding: margin ?? EdgeInsets.zero,
child: FloatingActionButton(
backgroundColor: _setColor(),
onPressed: onTap,
child: Container(
alignment: Alignment.center,
width: getSize(width ?? 0),
height: getSize(height ?? 0),
decoration: _buildDecoration(),
child: child,
),
),
);
}
_buildDecoration() {
return BoxDecoration(
color: _setColor(),
borderRadius: _setBorderRadius(),
);
}
_setColor() {
switch (variant) {
default:
return const Color.fromRGBO(253, 202, 101, 1.0);
}
}
_setBorderRadius() {
switch (shape) {
default:
return BorderRadius.circular(
getHorizontalSize(
6.00,
),
);
}
}
}
enum FloatingButtonShape {
RoundedBorder6,
}
enum FloatingButtonVariant {
FillBlueA700,
}