Advertisement
FlyFar

lib/widgets/coolButton.dart

Jul 25th, 2023
1,183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 4.68 KB | Cybersecurity | 0 0
  1. // ignore_for_file: file_names, use_key_in_widget_constructors, prefer_typing_uninitialized_variables
  2.  
  3. import 'package:flutter/material.dart';
  4.  
  5. class SizedButton extends StatelessWidget {
  6.   const SizedButton(
  7.       {required this.onPressed,
  8.       required this.text,
  9.       required this.width,
  10.       required this.height,
  11.       required this.fontSize});
  12.  
  13.   final GestureTapCallback onPressed;
  14.   final String text;
  15.   final double width;
  16.   final double height;
  17.   final double fontSize;
  18.  
  19.   @override
  20.   Widget build(BuildContext context) {
  21.     return SizedBox(
  22.       width: width,
  23.       height: height,
  24.       child: ElevatedButton(
  25.         onPressed: onPressed,
  26.         style: ElevatedButton.styleFrom(
  27.           foregroundColor: Colors.blueGrey,
  28.           backgroundColor: Colors.blueGrey,
  29.           elevation: 20,
  30.           enableFeedback: true,
  31.           shape: RoundedRectangleBorder(
  32.             borderRadius: BorderRadius.circular(20.0),
  33.             side: const BorderSide(
  34.               color: Colors.white,
  35.               width: 2.0,
  36.             ),
  37.           ),
  38.         ),
  39.         child: Text(
  40.           text,
  41.           style: TextStyle(
  42.               fontSize: fontSize, fontFamily: "Poppins", color: Colors.white),
  43.           textAlign: TextAlign.center,
  44.         ),
  45.       ),
  46.     );
  47.   }
  48. }
  49.  
  50. class ExpandedButtonHide extends StatelessWidget {
  51.   const ExpandedButtonHide(
  52.       {required this.onPressed,
  53.       required this.text,
  54.       required this.flex,
  55.       required this.fontSize,
  56.       required this.width,
  57.       required this.spacerFlex,
  58.       required this.buttionFlex});
  59.  
  60.   final GestureTapCallback onPressed;
  61.   final String text;
  62.   final int flex;
  63.   final double fontSize;
  64.   final double width;
  65.   final int spacerFlex;
  66.   final buttionFlex;
  67.  
  68.   @override
  69.   Widget build(BuildContext context) {
  70.     return Expanded(
  71.       flex: flex,
  72.       child: Column(
  73.         children: [
  74.           ExpandedButton(
  75.             flex: buttionFlex,
  76.             width: width,
  77.             onPressed: onPressed,
  78.             text: text,
  79.             fontSize: fontSize,
  80.           ),
  81.           Spacer(
  82.             flex: spacerFlex,
  83.           ),
  84.         ],
  85.       ),
  86.     );
  87.   }
  88. }
  89.  
  90. class ExpandedButton extends StatelessWidget {
  91.   const ExpandedButton(
  92.       {required this.onPressed,
  93.       required this.text,
  94.       required this.flex,
  95.       required this.fontSize,
  96.       required this.width});
  97.  
  98.   final GestureTapCallback onPressed;
  99.   final String text;
  100.   final int flex;
  101.   final double fontSize;
  102.   final double width;
  103.  
  104.   @override
  105.   Widget build(BuildContext context) {
  106.     return Expanded(
  107.       flex: flex,
  108.       child: SizedBox(
  109.         width: width,
  110.         child: ElevatedButton(
  111.           onPressed: onPressed,
  112.           style: ElevatedButton.styleFrom(
  113.             foregroundColor: Colors.blueGrey,
  114.             backgroundColor:Colors.blueGrey,
  115.             elevation: 20,
  116.             enableFeedback: true,
  117.             shape: RoundedRectangleBorder(
  118.               borderRadius: BorderRadius.circular(18.0),
  119.               side: const BorderSide(color: Colors.white),
  120.             ),
  121.           ),
  122.           child: Text(
  123.             text,
  124.             textAlign: TextAlign.center,
  125.             style: TextStyle(
  126.               fontSize: fontSize,
  127.               fontWeight: FontWeight.bold,
  128.               fontFamily: 'Poppins',
  129.               color: Colors.white,
  130.             ),
  131.           ),
  132.         ),
  133.       ),
  134.     );
  135.   }
  136. }
  137.  
  138. class ExpandedButtonRow extends StatelessWidget {
  139.   const ExpandedButtonRow(
  140.       {required this.onPressed,
  141.       required this.text,
  142.       required this.flex,
  143.       required this.fontSize,
  144.       required this.height});
  145.  
  146.   final GestureTapCallback onPressed;
  147.   final String text;
  148.   final int flex;
  149.   final double fontSize;
  150.   final double height;
  151.  
  152.   @override
  153.   Widget build(BuildContext context) {
  154.     return Expanded(
  155.       flex: flex,
  156.       child: SizedBox(
  157.         height: height,
  158.         child: ElevatedButton(
  159.           onPressed: onPressed,
  160.           style: ElevatedButton.styleFrom(
  161.             foregroundColor: Colors.green,
  162.             backgroundColor: Colors.green,
  163.             elevation: 20,
  164.             enableFeedback: true,
  165.             shape: RoundedRectangleBorder(
  166.               borderRadius: BorderRadius.circular(18.0),
  167.               side: const BorderSide(color: Colors.white),
  168.             ),
  169.           ),
  170.           child: Text(
  171.             text,
  172.             style: TextStyle(
  173.               fontSize: fontSize,
  174.               fontWeight: FontWeight.bold,
  175.               fontFamily: 'Poppins',
  176.               color: Colors.white,
  177.             ),
  178.           ),
  179.         ),
  180.       ),
  181.     );
  182.   }
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement