1
0
mirror of https://github.com/nisrulz/flutter-examples.git synced 2025-11-08 20:50:04 +00:00

refactored: using_tabs example

This commit is contained in:
Nishant Srivastava
2018-01-19 04:49:22 +05:30
parent ee49612fca
commit cd7069c177
4 changed files with 45 additions and 37 deletions

View File

@@ -1,8 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:using_tabs/tabs/first.dart';
import './FirstTab.dart' as first_tab; import 'package:using_tabs/tabs/second.dart';
import './SecondTab.dart' as second_tab; import 'package:using_tabs/tabs/third.dart';
import './ThirdTab.dart' as third_tab;
void main() { void main() {
runApp(new MaterialApp( runApp(new MaterialApp(
@@ -19,6 +18,9 @@ class MyHome extends StatefulWidget {
// SingleTickerProviderStateMixin is used for animation // SingleTickerProviderStateMixin is used for animation
class MyHomeState extends State<MyHome> with SingleTickerProviderStateMixin { class MyHomeState extends State<MyHome> with SingleTickerProviderStateMixin {
/*
*-------------------- Setup Tabs ------------------*
*/
// Create a tab controller // Create a tab controller
TabController controller; TabController controller;
@@ -27,7 +29,7 @@ class MyHomeState extends State<MyHome> with SingleTickerProviderStateMixin {
super.initState(); super.initState();
// Initialize the Tab Controller // Initialize the Tab Controller
controller = new TabController(length: 3, vsync: this); controller = new TabController(length: 2, vsync: this);
} }
@override @override
@@ -37,17 +39,8 @@ class MyHomeState extends State<MyHome> with SingleTickerProviderStateMixin {
super.dispose(); super.dispose();
} }
@override TabBar getTabBar() {
Widget build(BuildContext context) { return new TabBar(
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>[ tabs: <Tab>[
new Tab( new Tab(
// set icon to the tab // set icon to the tab
@@ -62,18 +55,33 @@ class MyHomeState extends State<MyHome> with SingleTickerProviderStateMixin {
], ],
// setup the controller // setup the controller
controller: controller, controller: controller,
), );
), }
// Set the TabBar view as the body of the Scaffold
body: new TabBarView( TabBarView getTabBarView(var tabs) {
return new TabBarView(
// Add tabs as widgets // Add tabs as widgets
children: <Widget>[ children: tabs,
new first_tab.First(),
new second_tab.Second(),
new third_tab.Third()
],
// set the controller // set the controller
controller: 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: getTabBar()),
// Set the TabBar view as the body of the Scaffold
body: getTabBarView(<Widget>[new First(), new Second(), new Third()]));
} }
} }