blob: 320b0fc57d858a63a41f3c2add80437bbbfbd510 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:sky/theme/colors.dart';
import 'package:sky/theme/typography.dart';
import 'package:sky/widgets/basic.dart';
import 'package:sky/widgets/material.dart';
import 'package:sky/widgets/scaffold.dart';
import 'package:sky/widgets/tabs.dart';
import 'package:sky/widgets/tool_bar.dart';
import 'package:sky/widgets/widget.dart';
class TabbedNavigatorApp extends App {
static Iterable<String> items = const <String>["ONE", "TWO", "FREE", "FOUR"];
final List<int> navigatorSelections = new List<int>.filled(items.length, 0);
Widget buildTabNavigator(Iterable<TabLabel> labels, int navigatorIndex) {
TabBar tabBar = new TabBar(
labels: labels.toList(),
selectedIndex: navigatorSelections[navigatorIndex],
onChanged: (selectionIndex) {
setState(() {
navigatorSelections[navigatorIndex] = selectionIndex;
});
}
);
return new Container(child: tabBar, margin: new EdgeDims.only(bottom: 16.0));
}
Widget build() {
Iterable<TabLabel> textLabels = items
.map((s) => new TabLabel(text: "ITEM " + s));
Iterable<TabLabel> iconLabels = items
.map((s) => new TabLabel(icon: 'action/search_white'));
Iterable<TabLabel> textAndIconLabels = items
.map((s) => new TabLabel(text: "ITEM " + s, icon: 'action/search_white'));
var navigatorIndex = 0;
Iterable<Widget> tabNavigators = [textLabels, iconLabels, textAndIconLabels]
.map((labels) => buildTabNavigator(labels, navigatorIndex++));
ToolBar toolbar = new ToolBar(
center: new Text('Tabbed Navigator', style: white.title)
);
return new Scaffold(
toolbar: toolbar,
body: new Material(
child: new Center(child: new Block(tabNavigators.toList())),
color: Grey[500]
)
);
}
}
void main() {
runApp(new TabbedNavigatorApp());
}