Skip to content

Commit

Permalink
refactored: using_tabs example
Browse files Browse the repository at this point in the history
  • Loading branch information
nisrulz committed Jan 18, 2018
1 parent ee49612 commit cd7069c
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 37 deletions.
82 changes: 45 additions & 37 deletions using_tabs/lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import 'package:flutter/material.dart';

import './FirstTab.dart' as first_tab;
import './SecondTab.dart' as second_tab;
import './ThirdTab.dart' as third_tab;
import 'package:using_tabs/tabs/first.dart';
import 'package:using_tabs/tabs/second.dart';
import 'package:using_tabs/tabs/third.dart';

void main() {
runApp(new MaterialApp(
Expand All @@ -19,6 +18,9 @@ class MyHome extends StatefulWidget {

// SingleTickerProviderStateMixin is used for animation
class MyHomeState extends State<MyHome> with SingleTickerProviderStateMixin {
/*
*-------------------- Setup Tabs ------------------*
*/
// Create a tab controller
TabController controller;

Expand All @@ -27,7 +29,7 @@ class MyHomeState extends State<MyHome> with SingleTickerProviderStateMixin {
super.initState();

// Initialize the Tab Controller
controller = new TabController(length: 3, vsync: this);
controller = new TabController(length: 2, vsync: this);
}

@override
Expand All @@ -37,43 +39,49 @@ class MyHomeState extends State<MyHome> with SingleTickerProviderStateMixin {
super.dispose();
}

TabBar getTabBar() {
return new TabBar(
tabs: <Tab>[
new Tab(
// set icon to the tab
icon: new Icon(Icons.favorite),
),
new Tab(
icon: new Icon(Icons.adb),
),
new Tab(
icon: new Icon(Icons.airport_shuttle),
),
],
// setup the controller
controller: controller,
);
}

TabBarView getTabBarView(var tabs) {
return new TabBarView(
// Add tabs as widgets
children: tabs,
// set the controller
controller: controller,
);
}

/*
*-------------------- Setup the page by setting up tabs in the body ------------------*
*/
@override
Widget build(BuildContext context) {
return new Scaffold(
// Appbar
appBar: new AppBar(
// Title
title: new Text("Using Tabs"),
// Set the background color of the App Bar
backgroundColor: Colors.blue,
// Set the bottom property of the Appbar to include a Tab Bar
bottom: new TabBar(
tabs: <Tab>[
new Tab(
// set icon to the tab
icon: new Icon(Icons.favorite),
),
new Tab(
icon: new Icon(Icons.adb),
),
new Tab(
icon: new Icon(Icons.airport_shuttle),
),
],
// setup the controller
controller: controller,
),
),
// Title
title: new Text("Using Tabs"),
// Set the background color of the App Bar
backgroundColor: Colors.blue,
// Set the bottom property of the Appbar to include a Tab Bar
bottom: getTabBar()),
// Set the TabBar view as the body of the Scaffold
body: new TabBarView(
// Add tabs as widgets
children: <Widget>[
new first_tab.First(),
new second_tab.Second(),
new third_tab.Third()
],
// set the controller
controller: controller,
));
body: getTabBarView(<Widget>[new First(), new Second(), new Third()]));
}
}
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit cd7069c

Please sign in to comment.