import 'package:flutter/material.dart'; import 'package:using_bottom_nav_bar/tabs/first.dart'; import 'package:using_bottom_nav_bar/tabs/second.dart'; import 'package:using_bottom_nav_bar/tabs/third.dart'; void main() { runApp(MaterialApp( // Title title: "Using Tabs", // Home home: MyHome())); } class MyHome extends StatefulWidget { @override MyHomeState createState() => MyHomeState(); } // SingleTickerProviderStateMixin is used for animation class MyHomeState extends State with SingleTickerProviderStateMixin { // Create a tab controller TabController controller; @override void initState() { super.initState(); // Initialize the Tab Controller controller = TabController(length: 3, vsync: this); } @override void dispose() { // Dispose of the Tab Controller controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( // Appbar appBar: AppBar( // Title title: Text("Using Bottom Navigation Bar"), // Set the background color of the App Bar backgroundColor: Colors.blue, ), // Set the TabBar view as the body of the Scaffold body: TabBarView( // Add tabs as widgets children: [FirstTab(), SecondTab(), ThirdTab()], // set the controller controller: controller, ), // Set the bottom navigation bar bottomNavigationBar: Material( // set the color of the bottom navigation bar color: Colors.blue, // set the tab bar as the child of bottom navigation bar child: TabBar( tabs: [ Tab( // set icon to the tab icon: Icon(Icons.favorite), ), Tab( icon: Icon(Icons.adb), ), Tab( icon: Icon(Icons.airport_shuttle), ), ], // setup the controller controller: controller, ), ), ); } }