You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
1.8 KiB
89 lines
1.8 KiB
import 'package:flutter/material.dart'; |
|
|
|
class RoundButton extends StatelessWidget { |
|
final String text; |
|
final String img; |
|
final Widget icons; |
|
final Color textColor; |
|
final Color backgroup; |
|
final double fontSize; |
|
final double radius; |
|
final double height; |
|
final double width; |
|
final FontWeight fontWeight; |
|
final EdgeInsetsGeometry padding; |
|
final GestureTapCallback callback; |
|
|
|
RoundButton({ |
|
Key key, |
|
this.text, |
|
this.textColor = Colors.black, |
|
this.fontSize = 10, |
|
this.backgroup = Colors.white, |
|
this.radius = 2, |
|
this.img, |
|
this.height, |
|
this.width, |
|
this.icons, |
|
this.padding, |
|
this.fontWeight = FontWeight.normal, |
|
this.callback, |
|
}); |
|
|
|
@override |
|
Widget build(BuildContext context) { |
|
return GestureDetector( |
|
child: Container( |
|
padding: padding, |
|
width: width, |
|
height: height, |
|
alignment: Alignment.center, |
|
decoration: BoxDecoration( |
|
color: backgroup, |
|
borderRadius: BorderRadius.circular(radius), |
|
), |
|
child: buildText(), |
|
), |
|
onTap: this.callback, |
|
); |
|
} |
|
|
|
Widget buildText() { |
|
Widget textWidget = Text( |
|
text, |
|
style: TextStyle( |
|
color: textColor, |
|
fontSize: fontSize, |
|
fontWeight: fontWeight, |
|
), |
|
); |
|
if (icons != null) { |
|
return Row( |
|
mainAxisSize: MainAxisSize.min, |
|
children: [ |
|
icons, |
|
SizedBox( |
|
width: 4, |
|
), |
|
textWidget, |
|
], |
|
); |
|
} else if (img != null && img != "") { |
|
return Row( |
|
children: [ |
|
Image.asset( |
|
img, |
|
width: 12, |
|
height: 12, |
|
), |
|
SizedBox( |
|
width: 4, |
|
), |
|
textWidget, |
|
], |
|
); |
|
} else { |
|
return textWidget; |
|
} |
|
} |
|
}
|
|
|