Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Unified Diff: sky/sdk/example/widgets/tabs.dart

Issue 1217243005: Gratuitous tabs example enhancement (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Merge Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | sky/tests/examples/tabs-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
);
}
}
« no previous file with comments | « no previous file | sky/tests/examples/tabs-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698