baseproject
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../utils/size_utils.dart';
|
||||
|
||||
class customFloatingButton extends StatelessWidget {
|
||||
const customFloatingButton({super.key,
|
||||
this.shape,
|
||||
this.variant,
|
||||
this.alignment,
|
||||
this.margin,
|
||||
this.onTap,
|
||||
this.width,
|
||||
this.height,
|
||||
this.child,
|
||||
this.color,
|
||||
});
|
||||
|
||||
final FloatingButtonShape? shape;
|
||||
final FloatingButtonVariant? variant;
|
||||
final Alignment? alignment;
|
||||
final EdgeInsetsGeometry? margin;
|
||||
final VoidCallback? onTap;
|
||||
final double? width;
|
||||
final double? height;
|
||||
final Widget? child;
|
||||
final Color? color;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return alignment != null
|
||||
? Align(
|
||||
alignment: alignment ?? Alignment.center,
|
||||
child: _buildFabWidget(),
|
||||
)
|
||||
: _buildFabWidget();
|
||||
}
|
||||
|
||||
Widget _buildFabWidget() {
|
||||
return Padding(
|
||||
padding: margin ?? EdgeInsets.zero,
|
||||
child: FloatingActionButton(
|
||||
backgroundColor: _setColor(),
|
||||
onPressed: onTap,
|
||||
child: child,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
BoxDecoration _buildDecoration() {
|
||||
return BoxDecoration(
|
||||
color: _setColor(),
|
||||
borderRadius: _setBorderRadius(),
|
||||
);
|
||||
}
|
||||
|
||||
Color _setColor() {
|
||||
if (color != null) {
|
||||
return color!;
|
||||
}
|
||||
switch (variant) {
|
||||
case FloatingButtonVariant.FillBlueA700:
|
||||
return const Color(0xFF1976D2); // Example color for FillBlueA700
|
||||
default:
|
||||
return Colors.black;
|
||||
}
|
||||
}
|
||||
|
||||
BorderRadius _setBorderRadius() {
|
||||
switch (shape) {
|
||||
case FloatingButtonShape.RoundedBorder6:
|
||||
return BorderRadius.circular(
|
||||
getHorizontalSize(
|
||||
6.00,
|
||||
),
|
||||
);
|
||||
default:
|
||||
return BorderRadius.circular(
|
||||
getHorizontalSize(
|
||||
6.00,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum FloatingButtonShape {
|
||||
RoundedBorder6,
|
||||
}
|
||||
|
||||
enum FloatingButtonVariant {
|
||||
FillBlueA700,
|
||||
}
|
||||
Reference in New Issue
Block a user