Scaffold class in Flutter with Examples

Flutter Scaffold is an essential component of the Flutter development framework. It provides a foundation for building mobile applications, with a wide range of easy-to-use features that make developing for Android and iOS much more efficient. It is the most popular framework for developing cross-platform mobile applications, and it has gained a lot of attention in the development community.

The Flutter Scaffold is an incredibly powerful tool that allows developers to quickly create an app with a basic structure and navigation. It includes a range of components that can be used to create a unique interface and user experience. The Scaffold provides an easy way to set up a basic UI, with the ability to customize any aspect of it. It also includes an array of tools for creating complex navigation patterns and customizing the look and feel of the app.

Sample Code

Projects with Complete Sample Code of Flutter Scaffold’s Application

A Simple To-Do App

This is a simple to-do list app that uses Flutter Scaffold to create its UI. The app allows you to add, edit and delete tasks in the list. It also provides a simple way to mark tasks as complete.

import 'package:flutter/material.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'To Do List',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('To Do List'),
        ),
        body: ToDoList(),
      ),
    );
  }
}

class ToDoList extends StatefulWidget {
  @override
  _ToDoListState createState() => _ToDoListState();
}

class _ToDoListState extends State<ToDoList> {
  List<String> todoList = [];

  void _addTodo(String item) {
    //add item to list
    setState(() {
      todoList.add(item);
    });
  }

  void _removeTodo(int index) {
    //remove item from list
    setState(() {
      todoList.removeAt(index);
    });
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        Expanded(
          child: ListView.builder(
            itemCount: todoList.length,
            itemBuilder: (context, index) {
              return Dismissible(
                key: Key(todoList[index]),
                onDismissed: (direction) {
                  _removeTodo(index);
                },
                child: ListTile(
                  title: Text(todoList[index]),
                ),
              );
            },
          ),
        ),
        TextField(
          decoration: InputDecoration(
            hintText: 'Enter item',
          ),
          onSubmitted: (String item) {
            _addTodo(item);
          },
        )
      ],
    );
  }
}

A Shopping List App

This shopping list app uses Flutter Scaffold to create its UI. It allows users to add items to the list, mark items as bought and keep track of the total cost.

import 'package:flutter/material.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Shopping List',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: ShoppingList(),
    );
  }
}

class ShoppingList extends StatefulWidget {
  @override
  _ShoppingListState createState() => _ShoppingListState();
}

class _ShoppingListState extends State<ShoppingList> {
  List<String> items = [];
  double totalCost = 0.0;

  void _addItem(String item, double cost) {
    //add item to list
    setState(() {
      items.add(item);
      totalCost += cost;
    });
  }

  void _removeItem(int index) {
    //remove item from list
    setState(() {
      totalCost -= items[index];
      items.removeAt(index);
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Shopping List'),
      ),
      body: Column(
        children: <Widget>[
          Expanded(
            child: ListView.builder(
              itemCount: items.length,
              itemBuilder: (context, index) {
                return Dismissible(
                  key: Key(items[index]),
                  onDismissed: (direction) {
                    _removeItem(index);
                  },
                  child: ListTile(
                    title: Text(items[index]),
                  ),
                );
              },
            ),
          ),
          Text('Total Cost: \$$totalCost', style: TextStyle(fontSize: 20.0)),
          TextField(
            decoration: InputDecoration(
              hintText: 'Enter item',
            ),
            onSubmitted: (String item) {
              _addItem(item, 0.0);
            },
          )
        ],
      ),
    );
  }
}

Properties

The first property is ‘appBar’. This property allows you to customize the app bar of your app, including the title, background color, and other styling options. With this property, you can easily create a unique look and feel for your app.

The second property is ‘body’. This property allows you to provide the content of your app, such as a list view, text fields, or other widgets. It is important to note that the body property must be provided for your app to function properly.

The third property is ‘floatingActionButton’. This property allows you to add a floating action button to your app. This can be used to quickly access important functions of your app.

The fourth property is ‘bottomNavigationBar’. This property allows you to create a bottom navigation bar on your app. This can be used to quickly access features of your app.

The fifth property is ‘drawer’. This property allows you to create a drawer in your app. This can be used to provide quick access to features of your app.

Finally, the sixth property is ‘backgroundColor’. This property allows you to set a background color for your app. This can be used to create a unique look and feel for your app.

To demonstrate how to use these properties, here is a sample code that creates a simple app with a title, a body, a floating action button, a bottom navigation bar, a drawer, and a background color:

import 'package:flutter/material.dart';


void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: Scaffold(
        appBar: AppBar(
          title: Text('My App'),
        ),
        body: Center(
          child: Text('Hello World!),
        ),
        floatingActionButton: FloatingActionButton(
          child: Icon(Icons.add),
          onPressed: () {
            // Perform some action
          },
        ),
        bottomNavigationBar: BottomNavigationBar(
          items: [
            BottomNavigationBarItem(
              title: Text('Home'),
              icon: Icon(Icons.home),
            ),
            BottomNavigationBarItem(
              title: Text('Settings'),
              icon: Icon(Icons.settings),
            ),
          ],
        ),
        drawer: Drawer(
          child: ListView(
            children: [
              ListTile(
                title: Text('Home'),
                onTap: () {
                  // Perform some action
                },
              ),
              ListTile(
                title: Text('Settings'),
                onTap: () {
                  // Perform some action
                },
              ),
            ]
          ),
        ),
        backgroundColor: Colors.blueGrey[200],
      ),
    );
  }
}

Related posts:

  1. Flutter Container
  2. Flutter Row and Column
  3. Futter Get started For Beginner