import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:manager_app/constants.dart'; class RoundedButton extends StatelessWidget { final String text; final Function press; final IconData icon; final Color color, textColor; final double fontSize; final double vertical; final double horizontal; const RoundedButton({ Key key, this.text, this.press, this.icon, this.color = kPrimaryColor, this.textColor = kWhite, this.fontSize, this.vertical, this.horizontal }) : super(key: key); @override Widget build(BuildContext context) { //Size size = MediaQuery.of(context).size; return TextButton( style: ButtonStyle( padding: MaterialStateProperty.resolveWith((states) => EdgeInsets.symmetric(vertical: this.vertical != null ? this.vertical : 25, horizontal: this.horizontal != null ? this.horizontal : (icon == null ? 85 : 30))), backgroundColor: MaterialStateColor.resolveWith((states) => color), shape: MaterialStateProperty.all( RoundedRectangleBorder( borderRadius: BorderRadius.circular(30.0), ) ) ), onPressed: () => { press() }, child: getValue(icon) ); } getValue(icon) { if (icon != null) { return Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ Center( child: AutoSizeText( text, style: new TextStyle(color: textColor, fontSize: fontSize, fontWeight: FontWeight.w400), maxLines: 2, maxFontSize: fontSize, textAlign: TextAlign.center, ), ), SizedBox( width: 10 ), Icon( icon, color: textColor, size: fontSize + 8, ) ], ); } else { return AutoSizeText( text, style: new TextStyle(color: textColor, fontSize: fontSize, fontWeight: FontWeight.w400), maxLines: 2, textAlign: TextAlign.center, ); } } }