Flutter Awesome Snippets

Flutter Awesome Snippets

All Important Snippets for flutter

Subscribe to my newsletter and never miss my upcoming articles

Flutter Tips

Hey Coders 🤓 ,

Welcome to flutter tips,

Here I m going to add Flutter snippets which are useful,

although yes we can google and all but instead I want it all at one place,

So easy to copy and use ,

Basically I was making this for me only ,later I thought it can be useful to every coder,

So as I'm Going to learn as well as I'm Going to update this page.

So Enjoy Flutter Guys !!

FAB at center

class ContaPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) => new Scaffold(
    // ...

    floatingActionButton: new FloatingActionButton(
      // ...FloatingActionButton properties...
    ),

    // Here's the new attribute:

    floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
  );
}

FAB background Color

   floatingActionButton: FloatingActionButton(
        onPressed: () {
          // Add your onPressed code here!
        },
        child: Container(
          width: 60,
          height: 60,
          child: Icon(
            Icons.add,
          ),
          decoration: new BoxDecoration(
            shape: BoxShape.circle,
            gradient: new RadialGradient(
              colors: [Colors.orange, Color(0xFFF500).withOpacity(0.5)],
                //opacity for transparent
            ),
          ),
        ),
      ),

Decoration common code:

         //Applied in container

         decoration: new BoxDecoration(
            shape: BoxShape.circle,
             //this is radialgradient
            gradient: new RadialGradient(
              colors: [Colors.orange, Color(0xFFF500).withOpacity(0.5)],
                //opacity for transparent
            ),
          ),

Decoration Gradient Color

Reference for extra:Gradient

      body: Container(
        decoration: BoxDecoration(
          gradient: LinearGradient(
              //provide begin and end
              begin: Alignment(6.123234262925839e-17, 1),
              end: Alignment(-1, 6.123234262925839e-17),
              //Optional u can use this too
                begin: Alignment.topLeft,//well it is preferred method
                  end: Alignment.bottomRight,
                  stops: [0.3, 1],//it manages how much color to extend

              colors: [
                  //Provide Colors here
                Color.fromRGBO(69, 182, 73, 1),
                Color.fromRGBO(46, 196, 182, 1)
              ]),
        ),

Show ModalBottomSheet halfScreen Popup:

      onPressed: () {
          //Starts here 
          showModalBottomSheet<void>(
            context: context,
            builder: (BuildContext context) {
              return Container(
                height: 200,
                color: Colors.amber,
                child: Center(
                  child: Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    mainAxisSize: MainAxisSize.min,
                    children: <Widget>[
                        //can add childrens here
                      const Text('Modal BottomSheet'),
                    ],
                  ),
                ),
              );
            },
          );
        },

Border Radius

decoration: BoxDecoration(
                  borderRadius: BorderRadius.only(
                      //many methods are there like
                      //borderRadius.all(),..etc..
                      topLeft: Radius.circular(25),
                      topRight: Radius.circular(25)),

)

Important Modal Bottom Sheet points:

In Bottom Sheet if we apply radius it may show white color at background

So 2 Solutions :
1.Override
 showModalBottomSheet<void>(
            backgroundColor: Colors.transparent,
            ......
            .
            //Bottom Sheet code
2.Set Theme
MaterialApp(
    theme: ThemeData(
      // Draw all modals with a white background and top rounded corners
      bottomSheetTheme: BottomSheetThemeData(
        backgroundColor: Colors.white,
          //change background color here or try transparent
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.vertical(top: Radius.circular(10))
        )
      )
    ),

Use Google Font

//import
import 'package:google_fonts/google_fonts.dart';


//This is override method which I like
 Text('What made you Happy today?',
     style:
    GoogleFonts.alice(color: Colors.white, fontSize: 18),
   //Change alice with preffered font
     ),

Add Space Box (Empty Space)

SizedBox(height: 80)
//You can use it with childrens or two buttons and many..

Simple Text Field In Container

Define Text Editing Controller first
  TextEditingController nameController = TextEditingController();
Text Field
   Container(
   margin: EdgeInsets.all(40),
                    child: TextField(
                        controller: nameController,
                        decoration: InputDecoration(
                            hintText: 'I realize my worth..today',
                            hintStyle: GoogleFonts.alice(color: Colors.white)),
                        onChanged: (text) {
                          setState(() {
                            // fullName = text;
                            //you can access nameController in its scope to get
                            // the value of text entered as shown below
                            //fullName = nameController.text;
                          });
                        }),
                  ),

Open OnPressed() new Activity or widget you can say

  onPressed: () {
        Navigator.push(
          context,
           MaterialPageRoute(
           builder: (context) => FeelingScreen()),//pass target widget
            );
    },

Gesture Detector which can be applied to any component

So we can make any Component clickable Unlike OnPressed() its is available to
some components only,So Just Wrap any component By Gesture Detector to use it.
  GestureDetector(
          child: Image.asset("assets/images/funnyemo.png"),//my widget
                        onTap: () {//Gesture detector method
                          Navigator.push(
                            context,
                            MaterialPageRoute(builder: (context) => Jardone()),
                  );
        }),

Center Column or Row Content

Column:
mainAxisAlignment: MainAxisAlignment.center //Center Column contents vertically,
crossAxisAlignment: CrossAxisAlignment.center //Center Column contents horizontally,
Row:
mainAxisAlignment: MainAxisAlignment.center //Center Row contents horizontally,
crossAxisAlignment: CrossAxisAlignment.center //Center Row contents vertically,

Add Image

Add Image from asset:
  Image.asset(
      "assets/images/jar.png",
       width: 200,//optional pass if large or small image 
       height: 400,//or want to fit in the image 
   )
Size :By height and width
For more reference:images size
    //Image will be render in a 100 x 100 box.
  Image.asset(
    'assets/images/file-name.jpg',
    height: 100,
    width: 100,
 )
Adjust Image Size by Scale
 //The image will look bigger if the scale is less than 1.
 Image.asset(
    'assets/images/file-name.jpg',
    scale: 0.8
 )
Fit Image Size
//In this example, the image size will be fitted to its width.
Image.asset(
    'assets/images/file-name.jpg',
    height: 100,
    width: 200,
    fit: BoxFit.fitWidth,
 )
Blend Image with a Color
// Define a color that will be blended to the image's pixels.
Image.asset(
    'assets/images/file-name.jpg',
    height: 100,
    width: 100,
    color: Colors.red,
    colorBlendMode: BlendMode.darken,
    fit: BoxFit.fitWidth,
 )
 
Share this