DEV Community

Cover image for Flutter Widgets (20 Common Widgets)
Jayesh Prajapati
Jayesh Prajapati

Posted on

Flutter Widgets (20 Common Widgets)

1. Container Widget

import 'package:flutter/material.dart';

class ContainerExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.all(16),
      margin: EdgeInsets.all(8),
      decoration: BoxDecoration(
        color: Colors.blue,
        borderRadius: BorderRadius.circular(10),
      ),
      child: Text('Hello Container!', style: TextStyle(color: Colors.white)),
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

2. Row And Column Widget

 import 'package:flutter/material.dart';

class RowColumnExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Text('Line 1'),
        Text('Line 2'),
        Row(
          mainAxisAlignment: MainAxisAlignment.spaceAround,
          children: [
            Icon(Icons.star),
            Icon(Icons.star),
            Icon(Icons.star),
          ],
        ),
      ],
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

3. ListView Widget

 import 'package:flutter/material.dart';

class ListViewExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ListView(
      children: [
        ListTile(title: Text('Item 1')),
        ListTile(title: Text('Item 2')),
        ListTile(title: Text('Item 3')),
      ],
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

4. Stack Widget

 import 'package:flutter/material.dart';

class StackExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        Image.network('https://placekitten.com/200/300'),
        Positioned(
          bottom: 10,
          right: 10,
          child: Text('Kitten!', style: TextStyle(color: Colors.white)),
        ),
      ],
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

5. GestureDetector Widget

import 'package:flutter/material.dart';

class GestureDetectorExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        print('Tapped!');
      },
      child: Container(
        padding: EdgeInsets.all(20),
        color: Colors.orange,
        child: Text('Tap Me'),
      ),
    );
  }
}
Enter fullscreen mode Exit fullscreen mode

6.Expanded Widget

import 'package:flutter/material.dart';

class ExpandedFlexibleExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Row(
      children: [
        Expanded(child: Container(color: Colors.red, height: 50)),
        Expanded(child: Container(color: Colors.green, height: 50)),
      ],
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

7. FutureBuilder Widget

import 'package:flutter/material.dart';

class FutureBuilderExample extends StatelessWidget {
  Future<String> fetchData() async {
    await Future.delayed(Duration(seconds: 2));
    return 'Hello from the future!';
  }

  @override
  Widget build(BuildContext context) {
    return FutureBuilder<String>(
      future: fetchData(),
      builder: (context, snapshot) {
        if (snapshot.connectionState == ConnectionState.waiting) {
          return CircularProgressIndicator();
        } else if (snapshot.hasError) {
          return Text('Error: ${snapshot.error}');
        } else {
          return Text('Data: ${snapshot.data}');
        }
      },
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

8. Padding Widget

import 'package:flutter/material.dart';

class PaddingExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: EdgeInsets.all(20),
      child: Text('Padded Text'),
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

9. Align Widget

import 'package:flutter/material.dart';

class AlignExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Align(
      alignment: Alignment.topRight,
      child: Text('Top Right'),
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

10.Center Widget

import 'package:flutter/material.dart';

class CenterExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Text('Centered Text'),
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

11. ElevatedButton Widget

import 'package:flutter/material.dart';

class ElevatedButtonExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: () {
        print('Clicked!');
      },
      child: Text('Click Me'),
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

12.TextButton Widget

import 'package:flutter/material.dart';

class TextButtonExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return TextButton(
      onPressed: () {},
      child: Text('Text Button'),
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

13. IconButton Widget

import 'package:flutter/material.dart';

class IconButtonExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return IconButton(
      icon: Icon(Icons.volume_up),
      onPressed: () {
        print('Volume button pressed');
      },
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

14. TextField Widget

import 'package:flutter/material.dart';

class TextFieldExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return TextField(
      decoration: InputDecoration(labelText: 'Enter something'),
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

15.Switch Widget

import 'package:flutter/material.dart';

class SwitchExample extends StatefulWidget {
  @override
  _SwitchExampleState createState() => _SwitchExampleState();
}

class _SwitchExampleState extends State<SwitchExample> {
  bool isOn = false;

  @override
  Widget build(BuildContext context) {
    return Switch(
      value: isOn,
      onChanged: (value) {
        setState(() {
          isOn = value;
        });
      },
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

16.CheckBox Widget

import 'package:flutter/material.dart';

class CheckboxExample extends StatefulWidget {
  @override
  _CheckboxExampleState createState() => _CheckboxExampleState();
}

class _CheckboxExampleState extends State<CheckboxExample> {
  bool checked = false;

  @override
  Widget build(BuildContext context) {
    return Checkbox(
      value: checked,
      onChanged: (value) {
        setState(() {
          checked = value!;
        });
      },
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

17. AppBar Widget

import 'package:flutter/material.dart';

class AppBarExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('My AppBar')),
      body: Center(child: Text('Body Content')),
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

18. BottomNavigationBar Widget

import 'package:flutter/material.dart';

class BottomNavExample extends StatefulWidget {
  @override
  _BottomNavExampleState createState() => _BottomNavExampleState();
}
class _BottomNavExampleState extends State<BottomNavExample> {
  int currentIndex = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(child: Text('Tab $currentIndex')),
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: currentIndex,
        onTap: (index) {
          setState(() {
            currentIndex = index;
          });
        },
        items: [
          BottomNavigationBarItem(icon: Icon(Icons.home), label: 'Home'),
          BottomNavigationBarItem(icon: Icon(Icons.settings), label: 'Settings'),
        ],
      ),
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

19. Card Widget

import 'package:flutter/material.dart';

class CardExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Card(
      elevation: 4,
      child: Padding(
        padding: EdgeInsets.all(16),
        child: Text('I am inside a card!'),
      ),
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

20. CercleAvatar Widget

import 'package:flutter/material.dart';

class CircleAvatarExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CircleAvatar(
      radius: 40,
      backgroundImage: NetworkImage('https://i.pravatar.cc/300'),
    );
  }
} 
Enter fullscreen mode Exit fullscreen mode

If you enjoyed this, buy me a coffee!

☕️ Buy Me a Coffee

Top comments (0)