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; const RoundedButton({ Key key, this.text, this.press, this.icon, this.color = kPrimaryColor, this.textColor = kWhite, this.fontSize }) : 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: 25, horizontal: icon == null ? 85 : 40)), 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: Text( text, style: new TextStyle(color: textColor, fontSize: fontSize, fontWeight: FontWeight.w400), ), ), SizedBox( width: 10 ), Icon( icon, color: textColor, size: fontSize + 8, ) ], ); } else { return Text( text, style: new TextStyle(color: textColor, fontSize: fontSize, fontWeight: FontWeight.w400), ); } } }