Index: sky/sdk/example/widgets/tabs.dart |
diff --git a/sky/sdk/example/widgets/tabs.dart b/sky/sdk/example/widgets/tabs.dart |
index cc35e75488c6e76f7c2a09cd3fb633e9a676eaa0..872a3e719152aea9be79dde986b5eeeafbfe5b54 100644 |
--- a/sky/sdk/example/widgets/tabs.dart |
+++ b/sky/sdk/example/widgets/tabs.dart |
@@ -3,17 +3,28 @@ |
// found in the LICENSE file. |
import 'package:sky/painting/text_style.dart'; |
-import 'package:sky/theme/colors.dart' as colors; |
import 'package:sky/theme/typography.dart' as typography; |
import 'package:sky/widgets/basic.dart'; |
-import 'package:sky/widgets/material.dart'; |
+import 'package:sky/widgets/card.dart'; |
import 'package:sky/widgets/scaffold.dart'; |
import 'package:sky/widgets/tabs.dart'; |
+import 'package:sky/widgets/theme.dart'; |
import 'package:sky/widgets/tool_bar.dart'; |
import 'package:sky/widgets/widget.dart'; |
class TabbedNavigatorApp extends App { |
- int selectedIndex = 0; |
+ // The index of the selected tab for each of the TabNavigators constructed below. |
+ List<int> selectedIndices = new List<int>.filled(4, 0); |
+ |
+ TabNavigator _buildTabNavigator(int n, List<TabNavigatorView> views) { |
+ return new TabNavigator( |
+ views: views, |
+ selectedIndex: selectedIndices[n], |
+ onChanged: (tabIndex) { |
+ setState(() { selectedIndices[n] = tabIndex; } ); |
+ } |
+ ); |
+ } |
Widget _buildContent(String label) { |
return new Center( |
@@ -21,7 +32,29 @@ class TabbedNavigatorApp extends App { |
); |
} |
- Widget build() { |
+ TabNavigator _buildTextLabelsTabNavigator(int n) { |
+ Iterable<TabNavigatorView> views = ["ONE", "TWO", "FREE", "FOUR"] |
+ .map((text) { |
+ return new TabNavigatorView( |
+ label: new TabLabel(text: text), |
+ builder: () => _buildContent(text) |
+ ); |
+ }); |
+ return _buildTabNavigator(n, views.toList()); |
+ } |
+ |
+ TabNavigator _buildIconLabelsTabNavigator(int n) { |
+ Iterable<TabNavigatorView> views = ["event", "home", "android", "alarm", "face", "language"] |
+ .map((icon_name) { |
+ return new TabNavigatorView( |
+ label: new TabLabel(icon: "action/${icon_name}_white"), |
+ builder: () => _buildContent(icon_name) |
+ ); |
+ }); |
+ return _buildTabNavigator(n, views.toList()); |
+ } |
+ |
+ TabNavigator _buildTextAndIconLabelsTabNavigator(int n) { |
List<TabNavigatorView> views = <TabNavigatorView>[ |
new TabNavigatorView( |
label: const TabLabel(text: 'STOCKS', icon: 'action/list_white'), |
@@ -36,14 +69,34 @@ class TabbedNavigatorApp extends App { |
builder: () => _buildContent("Summary") |
) |
]; |
+ return _buildTabNavigator(n, views); |
+ } |
- TabNavigator tabNavigator = new TabNavigator( |
- views: views, |
- selectedIndex: selectedIndex, |
- onChanged: (tabIndex) { |
- setState(() { selectedIndex = tabIndex; } ); |
- } |
+ Container _buildCard(TabNavigator tabNavigator) { |
+ return new Container( |
+ child: new Card(child: tabNavigator), |
+ padding: const EdgeDims.all(12.0), |
+ decoration: new BoxDecoration(backgroundColor: Theme.of(this).primary[50]) |
); |
+ } |
+ |
+ Widget build() { |
+ List<TabNavigatorView> views = <TabNavigatorView>[ |
+ new TabNavigatorView( |
+ label: const TabLabel(text: 'TEXT'), |
+ builder: () => _buildCard(_buildTextLabelsTabNavigator(0)) |
+ ), |
+ new TabNavigatorView( |
+ label: const TabLabel(text: 'ICONS'), |
+ builder: () => _buildCard(_buildIconLabelsTabNavigator(1)) |
+ ), |
+ new TabNavigatorView( |
+ label: const TabLabel(text: 'BOTH'), |
+ builder: () => _buildCard(_buildTextAndIconLabelsTabNavigator(2)) |
+ ) |
+ ]; |
+ |
+ TabNavigator tabNavigator = _buildTabNavigator(3, views); |
ToolBar toolbar = new ToolBar( |
center: new Text('Tabbed Navigator', style: typography.white.title) |
@@ -51,10 +104,7 @@ class TabbedNavigatorApp extends App { |
return new Scaffold( |
toolbar: toolbar, |
- body: new Material( |
- color: colors.Grey[50], |
- child: tabNavigator |
- ) |
+ body: tabNavigator |
); |
} |
} |