1
0
mirror of https://github.com/nisrulz/flutter-examples.git synced 2025-11-08 12:39:17 +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 './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(
@@ -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;
@@ -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
@@ -37,17 +39,8 @@ class MyHomeState extends State<MyHome> with SingleTickerProviderStateMixin {
super.dispose();
}
@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(
TabBar getTabBar() {
return new TabBar(
tabs: <Tab>[
new Tab(
// set icon to the tab
@@ -62,18 +55,33 @@ class MyHomeState extends State<MyHome> with SingleTickerProviderStateMixin {
],
// setup the 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
children: <Widget>[
new first_tab.First(),
new second_tab.Second(),
new third_tab.Third()
],
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: getTabBar()),
// Set the TabBar view as the body of the Scaffold
body: getTabBarView(<Widget>[new First(), new Second(), new Third()]));
}
}