Skip to content

Instantly share code, notes, and snippets.

@GrandSchtroumpf
Created December 13, 2019 08:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save GrandSchtroumpf/0e5ac95fcca61374a61107f32924f8a0 to your computer and use it in GitHub Desktop.
Save GrandSchtroumpf/0e5ac95fcca61374a61107f32924f8a0 to your computer and use it in GitHub Desktop.
Flutter Example - bottom nav bar
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
debugShowCheckedModeBanner: false,
// Title
title: "Using Tabs",
// Home
home: MyHome()));
}
class MyHome extends StatefulWidget {
@override
MyHomeState createState() => MyHomeState();
}
// SingleTickerProviderStateMixin is used for animation
class MyHomeState extends State<MyHome> 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: <Widget>[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>[
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,
),
),
);
}
}
class FirstTab extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.red,
body: Container(
child: Center(
child: Column(
// center the children
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(
Icons.favorite,
size: 160.0,
color: Colors.white,
),
Text(
"First Tab",
style: TextStyle(color: Colors.white),
)
],
),
),
),
);
}
}
class SecondTab extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.green,
body: Container(
child: Center(
child: Column(
// center the children
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(
Icons.adb,
size: 160.0,
color: Colors.white,
),
Text(
"Second Tab",
style: TextStyle(color: Colors.white),
)
],
),
),
),
);
}
}
class ThirdTab extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.orange,
body: Container(
child: Center(
child: Column(
// center the children
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(
Icons.airport_shuttle,
size: 160.0,
color: Colors.white,
),
Text(
"Third Tab",
style: TextStyle(color: Colors.white),
)
],
),
),
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment