Tabbar with image in flutter

Good day, readers A few weeks ago, one of the readers who left a comment on my story requested that I write a piece regarding the TabBar and TabBarView widgets.

So here it is: in addition to addressing these two widgets, we will also speak about the DefaultTabBarController and TabController.

If you dont know how to implement basic Tabbar in Flutter you can check this post of the Simple Tabbar in Flutter.

You might concur with me that designing a tabbed layout in Android is more difficult than it is in Flutter if you are an Android developer.

The basic Syntax of the Tabbar is given below:

TabBar(           
  indicatorColor: Colors.white,
  indicatorWeight: 2.0,
  indicatorPadding: EdgeInsets.zero,
  indicatorSize: TabBarIndicatorSize.label,
  indicator: BoxDecoration(),
  labelColor: Colors.white,
  labelStyle: TextStyle(),
  labelPadding: EdgeInsets.only(top: 10.0),
  unselectedLabelColor: Colors.grey,
  unselectedLabelStyle: TextStyle(),
  isScrollable: false,
  controller: _tabController,  // only  if DefaultTabContoller is not used.
  dragStartBehavior: DragStartBehavior.start,
  mouseCursor: SystemMouseCursors.noDrop,
  physics: ScrollPhysics(parent: AlwaysScrollableScrollPhysics()),
  onTap: (){},
  tabs: [Tab(),]                 // @required list of Tabs

Here is the example of Image on Tabbar in Flutter Implementation.

Open the lib/main.dart file in your project directory and replace the code with the following:

class TabbarDisplay extends StatefulWidget {
  @override
  TabbarDisplayState createState() => TabbarDisplayState();
}

class TabbarDisplayState extends State<tabbardisplay> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: DefaultTabController(
        length: 3, // Number of tabs
        child: Scaffold(
          appBar: AppBar(
            title: Text('Tech Android Hub'),
            bottom: TabBar(
              tabs: [
                Tab(
                  icon: Icon(Icons.add), // Image or Icon you can add 
                  text: 'Tab 1',
                ),
                Tab(
                  icon: Icon(Icons.access_alarm),
                  text: 'Tab 2',
                ),
                Tab(
                  icon: Icon(Icons.ac_unit_rounded),
                  text: 'Tab 3',
                ),
              ],
            ),
          ),
          body: TabBarView(
            children: [
              Center(child: Icon(Icons.add),),
              Center(child: Icon(Icons.access_alarm)),
              Center(child: Icon(Icons.ac_unit_rounded)),
            ],
          ),
        ),
      ),
    );
  }
}</tabbardisplay>

By using the icon attribute, we have modified the previous code in this example to add Icon widgets to each Tab. Alternatively, if you like, you can use a custom icon or any other icon from the Icons class.

The tabbed interface should now appear, with three tabs and an image on each one. Each tab’s associated image will appear in the centre of the screen when it is touched.

For creating complex user interfaces, Flutter offers a flexible and user-friendly framework. You are welcome to try different things, like as changing the graphics on the tabs or including new features in the app.

Related Posts

Simple Tabbar in Flutter

Progress Bars Example in Flutter

Creating a Splash Screen in Flutter

Remove DEBUG Banner in the Flutter app

Rounded Corners Image in Flutter

Simple Tabbar in Flutter

Mobile apps frequently employ tabs as a UI pattern because they make it simple for users to switch between various content parts.

The TabBar and TabBarView widgets in Flutter can be used to build a tabbed interface.

Tabs are precisely what you assume they are. When clicked, it’s a component of the user interface that directs the user through several paths (i.e., pages).

It is common practise to use tabs in applications. Using the material library and Flutter, tab layouts may be easily created. We will investigate the same in detail in this essay.

Make a new Flutter application now. Once the programme is finished, remove all the comments and content until you are left with the following code:

Design of TabController

The TabController, as its name suggests, manages each tab’s operation by synchronising its tabs and contents. One of the simplest methods for creating tabs in flutter is to use the DefaultTabController widget. Below are the full code of Tabbar :

class TabbarDisplay extends StatefulWidget {
  @override
  TabbarDisplayState createState() => TabbarDisplayState();
}

class TabbarDisplayState extends State<tabbardisplay> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: DefaultTabController(
        length: 3, // Number of tabs
        child: Scaffold(
          appBar: AppBar(
            title: Text('Tech Android Hub'),
            bottom: TabBar(
              tabs: [
                Tab(text: 'Tab 1'),
                Tab(text: 'Tab 2'),
                Tab(text: 'Tab 3'),
              ],
            ),
          ),
          body: TabBarView(
            children: [
              Center(child: Text('First Tab 1')),
              Center(child: Text('Second Tab 2')),
              Center(child: Text('Third Tab 3')),
            ],
          ),
        ),
      ),
    );
  }
}

In this code, we create a new Flutter application with a MaterialApp as the root widget. Inside it, we use a DefaultTabController to handle the tab logic.

The TabBar widget is placed inside the AppBar and provides the tab titles. We create three Tab widgets, each with a different text label.

The TabBarView widget contains the content of each tab. In this example, we use simple Text widgets wrapped in Center widgets for demonstration purposes. You can replace them with your own content widgets.

You discovered how to use TabBar and TabBarView to build a tabbed interface in Flutter in this tutorial. In developing mobile applications, using tabs to organise content and improve user experience is a great strategy.

Feel free to play around with various content widgets and alter the tab’s layout to fit the style of your app. For building complex and interactive user interfaces, Flutter offers a flexible and user-friendly framework.

Happy coding!

Related Posts

Progress Bars Example in Flutter

Creating a Splash Screen in Flutter

Remove DEBUG Banner in the Flutter app

Rounded Corners Image in Flutter

Example of a checkboxlisttile in flutter

Progress Bars Example in Flutter

Introduce the idea of progress bars and their significance in a Flutter app for displaying the status of ongoing tasks or processes.

Draw attention to how progress bars can enhance user experience by giving visual feedback and informing users.

There are two different forms of progress indicators in Flutter: linear and circular.

Types of Progress Bars

Both indeterminate and determined indicators are available for linear and circular systems.

Until the procedure is finished, indeterminate operations show the indicator expanding and contracting continuously along the track.
Determined operations show the indicator’s width progressing with the process from 0 to 100% of the track.

We only need to call the widgets LinearProgressIndicator() or CircularProgressIndicator() to produce the Indeterminate. As a result, the indicator will run nonstop forever because we didn’t call the property value.

Here are a few progress bar examples :

Basic Linear Progress Bar Example

LinearProgressIndicator(
  value: 0.6, // Progress value between 0.0 and 1.0
  backgroundColor: Colors.grey,
  valueColor: AlwaysStoppedAnimation<Color>(Colors.blue),
)

Customized Linear Progress Bar Example

Container(
  height: 10,
  child: LinearProgressIndicator(
    value: 0.8,
    backgroundColor: Colors.grey,
    valueColor: AlwaysStoppedAnimation<Color>(Colors.green),
  ),
)

Circular Progress Indicator Example

CircularProgressIndicator(
  value: 0.5,
  backgroundColor: Colors.grey,
  valueColor: AlwaysStoppedAnimation<Color>(Colors.orange),
)

Indeterminate Progress Indicator Example

CircularProgressIndicator(
  backgroundColor: Colors.grey,
)

Progress message with linear progress indicator Example

Column(
  children: [
    LinearProgressIndicator(
      value: 0.6,
      backgroundColor: Colors.grey,
      valueColor: AlwaysStoppedAnimation<Color>(Colors.blue),
    ),
    SizedBox(height: 8),
    Text(
      'Upload All file...',
      style: TextStyle(
        fontSize: 16,
        fontWeight: FontWeight.bold,
      ),
    ),
  ],
)

These examples show how Flutter’s progress bars may be customised to include both linear and circular progress indications.

To complement the design of your app, you can alter a number of settings, including the progress value, colour, height, and backdrop colour.

Along with the progress bar, you can also include progress messages to give the user informative updates.

To construct the ideal progress bar for your app, feel free to change these examples to meet your individual needs and explore other customization options offered by Flutter.

I hope you found this Flutter lesson to be useful. Please check out this website’s other Flutter Project with Example if you’re interested in learning the language. Some of them come with video guides.

Related Posts

Creating a Splash Screen in Flutter

Remove DEBUG Banner in the Flutter app

Rounded Corners Image in Flutter

Example of a checkboxlisttile in flutter

Creating a Splash Screen in Flutter

You will learn in this article how to add a splash screen to your Flutter mobile application.

What do Splash Screens do?

A logo or phrase from a corporation is displayed on the splash screen, which serves as an introduction.

In order to make your Flutter-built mobile app appear more polished and user-friendly to users, it’s crucial to design a splash screen.

A simple white screen can give the app an unprofessional appearance. By giving a visual indicator that the software is loaded and lowering perceived wait times, a well-designed splash screen can also enhance user experience.

You might believe that most users just don’t care. Splash displays, however, do have an effect, even if only subconsciously. They establish the tone for both the user experience and the overall app concept.

Consider a splash screen to be the app’s welcome screen. They assist in alerting users about loading delays brought on by network problems or other errors. Because of all of this, developers need to be able to properly include a splash screen into their mobile applications.

Here is the basic example of Splash Screen.

class SplashScreen extends StatefulWidget {
  @override
  _SplashScreenState createState() => _SplashScreenState();
}

class _SplashScreenState extends State<SplashScreen> {
  @override
  void initState() {
    super.initState();
    // Add any initialization tasks or duration here
    // Example: Loading data, checking authentication, etc.
    // You can use a Timer to simulate a delay for demonstration purposes
    Future.delayed(const Duration(seconds: 3), () {
      setState(() {
        // Here you can write your code for open new view
        print("Splash Screen Done");
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: FlutterLogo(
          size: 200,
        ),
      ),
    );
  }
}

To match the splash screen with the branding and user experience of their app, encourage readers to explore with various styles and customization possibilities.

Conclusion

The splashscreen plugin makes it simple to incorporate a splash screen into your programme. This tutorial’s main goal was to demonstrate how to add a splash screen to your Flutter application without touching the native code.

You now know how to make a splash screen with text, an image, and a loading indicator. Utilising the SplashScreen widget’s remaining parameters is now the difficulty.

Keep in mind that a pleasing splash screen might assist users feel more at ease while running your app. So, it also has advantages for mental wellness.

Just be aware that the splashcreen plugin’s capabilities are rather constrained. You’ll need to access the native code if you want complete control over how you design a customised splash screen. Still, this plugin works well for straightforward splash displays.

If you want to learn basic concept then refer this Flutter Basic Concept.

Additionally, you may view the flutter tutorials on our website.

Remove the Debug icon in Flutter

Rounded Corners Image in Flutter

Example of a checkboxlisttile in flutter

Checkbox Example In Flutter

Remove DEBUG ICON on Flutter

In this tutorials, Learn how to get rid of the DEBUG banner in the Flutter app.

For your Flutter mobile application to appear polished and production-ready, the DEBUG banner must be removed.

Important to keep in mind is that this label may mislead consumers into thinking there is a flaw or problem in the programme.

By following the instructions in this guide, you’ll be able to get rid of the DEBUG label in both debug and release modes, giving your application’s users a seamless and polished user experience.

Debug Banner Removal through Programming :

If you wish to hide the banner just in specific areas of your application, you may wrap those areas in the Builder widget and set the debugShowCheckedModeBanner value to false.

This enables you to selectively conceal the banner while working on specific areas of your application without affecting it overall. It’s critical to remember that even if the DEBUG label has been gone, the debug mode is still active and you can still access all of the tools and features that Flutter offers for debugging.

debugShowCheckedModeBanner: false

If you need to activate the banner for some reason in release mode, you can also set the debugShowCheckedModeBanner property to true instead of setting it to false.

To avoid being unprofessional and detracting from the user experience, always remember to hide the banner in release mode.

This code example should make it simple for you to remove the DEBUG label from your Flutter application while still having access to all the required debugging resources.

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false, // Set debugShowCheckedModeBanner to false
      title: 'Debug Remove',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Debug Remove App'),
      ),
      body: Center(
        child: Text('Now, Debug Removed'),
      ),
    );
  }
}

I sincerely hope you found this little tutorial on Flutter to be useful. More tutorials may be found on this website in the Flutter category if you’re interested in learning Flutter. Look at it. There may be more tutorials that you prefer.

If you want to learn basic concept then refer this Flutter Basic Concept

Additionally, you may view the flutter tutorials on our website below.

Rounded Corners Image in Flutter

Example of a checkboxlisttile in flutter

Checkbox Example In Flutter

Rounded Corners Image in Flutter

In this tutorial, we’ll look at just one of Flutter’s numerous image display options.

In particular, we will discover how to produce an image with rounded corners, a preferred design feature in contemporary mobile applications.

It’s crucial to realise that Flutter provides a variety of choices for showing images before moving on to the main topic. There are several widget classes available for each use scenario, and you can decide whether to display an image from a local file or a network URL.

In this tutorial, we’ll concentrate on obtaining a picture from a remote URL.

You may use the ClipRRect widget to clip an image with rounded rectangle corners in Flutter to give it rounded corners.

Additionally, you can utilise that widget as a Container to make handling images with height and width simple.

Here is syntax of the ClipRRect widget

ClipRRect(
  borderRadius: BorderRadius.circular(10.0), // Adjust the value to change the corner radius
  child: Image.network(
    'https://example.com/image.jpg', // Replace with your image URL
    width: 200, // Adjust the width as needed
    height: 200, // Adjust the height as needed
    fit: BoxFit.cover,
  ),
)

The borderRadius parameter in Flutter functions precisely the same way it does in CSS, so long as you are familiar with that language.

You can use shorthand notation to set various values for each corner or set the borderRadius to a specified number.

To begin your Dart file, don’t forget to import the required Flutter packages:

import 'package:flutter/material.dart';

Here it is example of that code.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    var title = 'Main App Images';

    return MaterialApp(
      title: title,
      home: Scaffold(
        appBar: AppBar(
          title: Text(title),
        ),
        body: ClipRRect(
          borderRadius: BorderRadius.circular(10),
          child: Image.network(
          'https://example.com/image.jpg', // Replace with your image URL
          fit: BoxFit.cover,
        ),
        ),
      ),
    );
  }
}

The image will have rounded corners when presented by surrounding the Image widget with ClipRRect.

A checkboxlisttile in Flutter

Flutter comes with a built-in widget called CheckboxListTile. We may describe it as a CheckBox and ListTile combo. As with the CheckBox widget, it has attributes like value, activeColor, and checkColor, whereas the ListTile widget has properties like title, subtitle, and contentPadding.

To Google the checkbox, we may tap anywhere on the CheckBoxListTile. All the attributes of this widget are listed below, along with an illustration.

Below is the Checkboxlisttile’s syntax.

CheckboxListTile(
{Key key,
@required bool value,
@required ValueChanged onChanged,
Color activeColor,
Color checkColor,
Widget title,
Widget subtitle,
bool isThreeLine: false,
bool dense,
Widget secondary,
bool selected: false,
ListTileControlAffinity controlAffinity: ListTileControlAffinity.platform,
bool autofocus: false,
EdgeInsetsGeometry contentPadding,
bool tristate: false}
)

Here is the example of CheckBoxListTile. In this illustration, we create a listview with every checkbox. Make a model for that listview as well. It is a checkbox dynamic listing of data.

CheckBoxListTileDemo.dart

class CheckBoxListTileDemo extends StatefulWidget {
  @override
  CheckBoxListTileDemoState createState() => new CheckBoxListTileDemoState();
}

class CheckBoxListTileDemoState extends State<CheckBoxListTileDemo> {
  List<CheckBoxListTileModel> modelCheckBoxListTile =
      CheckBoxListTileModel.getUsers();

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        backgroundColor: Colors.white,
        centerTitle: true,
        title: new Text(
          'CheckBox ListTile Demo App',
          style: TextStyle(color: Colors.black),
        ),
      ),
      body: new ListView.builder(
          itemCount: modelCheckBoxListTile.length,
          itemBuilder: (BuildContext context, int index) {
            return new Card(
              child: new Container(
                padding: new EdgeInsets.all(10.0),
                child: Column(
                  children: <Widget>[
                    new CheckboxListTile(
                        activeColor: Colors.pink[300],
                        dense: true,
                        //font change
                        title: new Text(
                          modelCheckBoxListTile[index].title,
                          style: TextStyle(
                              fontSize: 14,
                              fontWeight: FontWeight.w600,
                              letterSpacing: 0.5),
                        ),
                        value: modelCheckBoxListTile[index].isCheck,
                        secondary: Container(
                          height: 50,
                          width: 50,
                          child: Image.asset(
                            modelCheckBoxListTile[index].img,
                            fit: BoxFit.cover,
                          ),
                        ),
                        onChanged: (bool? val) {
                          setState(() {
                            modelCheckBoxListTile[index].isCheck = val!;
                          });
                        })
                  ],
                ),
              ),
            );
          }),
    );
  }

  void itemChange(bool val, int index) {
    setState(() {
      modelCheckBoxListTile[index].isCheck = val;
    });
  }
}

class CheckBoxListTileModel {
  int userId;
  String img;
  String title;
  bool isCheck;

  CheckBoxListTileModel(
      {required this.userId,
      required this.img,
      required this.title,
      required this.isCheck});

  static List<CheckBoxListTileModel> getUsers() {
    return <CheckBoxListTileModel>[
      CheckBoxListTileModel(
          userId: 1,
          img: 'assets/images/local1.png', // Need to change here Asset Image Name
          title: "JAVA",
          isCheck: true),
      CheckBoxListTileModel(
          userId: 2,
          img: 'assets/images/local2.jpeg', // Need to change here Asset Image Name
          title: "Angular JS",
          isCheck: false),
      CheckBoxListTileModel(
          userId: 3,
          img: 'assets/images/local3.webp', // Need to change here Asset Image Name
          title: "Flutter ",
          isCheck: false),
      CheckBoxListTileModel(
          userId: 4,
          img: 'assets/images/local4.png', // Need to change here Asset Image Name
          title: "Kotlin",
          isCheck: false),
      CheckBoxListTileModel(
          userId: 5,
          img: 'assets/images/local5.png', // Need to change here Asset Image Name
          title: "PHP",
          isCheck: false),
    ];
  }
}

You may have observed that this Checkbox implementation method uses less code. When this code is executed, a list of alternatives with checkboxes is displayed. A checkbox’s state can be changed by tapping on it, and the modelCheckBoxListTile will be modified as a result.

How can I change a Checkbox’s Color?

Using the activeColor and checkColor parameters of the Checkbox widget, Flutter users can alter the colour of a Checkbox.

The checkbox’s colour while it is checked can be changed using the activeColor property, and the checkmark’s colour can be changed using the checkColor property. Here is an illustration of how to apply these attributes:

Checkbox(
  value: true,
  onChanged: (newValue) {
    // Do something
  },
  activeColor: Colors.blue, // Change the color of the checkbox when it is checked
  checkColor: Colors.white, // Change the color of the checkmark inside the checkbox
)

The checkbox’s colour changes to blue when it is checked in the example above since the activeColor attribute is set to Colors.blue. Like this, the checkmark inside the checkbox transforms to white when the checkColor attribute is set to Colors.white.

Checkbox Example In Flutter

Users can choose several alternatives from a list of possibilities by using checkboxes, which are a key component of user interfaces. We will look at creating checkboxes in Flutter and managing state changes in this blog article. All other widgets, including containers, list views, and others, can use checkboxes.

Using Checkbox class properties, we may change the colors, and also listen to the state changes.

Checkbox Demo

Checkbox(  
  value: this.showvalue,   
  onChanged: (bool value) {  
    setState(() {  
      this.showvalue = value;   
    });  
  },
),

Creating a Checkbox

In Flutter, we can utilise the Checkbox widget to construct a checkbox. Let’s begin by configuring a straightforward Flutter application and making a checkbox:

import 'package:flutter/material.dart';

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

class _CheckboxExampleState extends State<checkboxexample> {
  bool _isChecked = false;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Checkbox Example'),
      ),
      body: Center(
        child: Checkbox(
          value: _isChecked,
          onChanged: (bool newValue) {
            setState(() {
              _isChecked = newValue;
            });
          },
        ),
      ),
    );
  }
}

Checkboxes are essential elements for enabling users.