| Index: sky/examples/widgets/tabs.dart
|
| diff --git a/sky/examples/widgets/tabs.dart b/sky/examples/widgets/tabs.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..cb711845a74ff8fdece5a0d4697ec7398e7befca
|
| --- /dev/null
|
| +++ b/sky/examples/widgets/tabs.dart
|
| @@ -0,0 +1,62 @@
|
| +// 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),
|
| + backgroundColor: Blue[500]);
|
| +
|
| + return new Scaffold(
|
| + toolbar: toolbar,
|
| + body: new Material(
|
| + child: new Center(child: new Block(tabNavigators.toList())),
|
| + color: Grey[500]
|
| + )
|
| + );
|
| + }
|
| +}
|
| +
|
| +void main() {
|
| + runApp(new TabbedNavigatorApp());
|
| +}
|
|
|