tabs_demo.dart 1.39 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
// 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:flutter/material.dart';

import 'widget_demo.dart';

final List<String> _iconNames = <String>["event", "home", "android", "alarm", "face", "language"];

11
Widget _buildTabBarSelection(_, Widget child) {
12
  return new TabBarSelection<String>(values: _iconNames, child: child);
13 14 15
}

Widget _buildTabBar(_) {
16
  return new TabBar<String>(
17
    isScrollable: true,
18 19 20
    labels: new Map.fromIterable(
      _iconNames,
      value: (String iconName) => new TabLabel(text: iconName, icon: "action/$iconName"))
21 22 23 24 25 26 27 28 29
  );
}

class TabsDemo extends StatefulComponent {
  _TabsDemoState createState() => new _TabsDemoState();
}

class _TabsDemoState extends State<TabsDemo> {
  Widget build(_) {
Adam Barth's avatar
Adam Barth committed
30 31
    return new TabBarView(
      children: _iconNames.map((String iconName) {
Hans Muller's avatar
Hans Muller committed
32 33 34 35 36 37 38
        return new Container(
          key: new ValueKey<String>(iconName),
          padding: const EdgeDims.all(12.0),
          child: new Card(
            child: new Center(child: new Icon(icon: "action/$iconName", size:IconSize.s48))
          )
        );
Adam Barth's avatar
Adam Barth committed
39
      }).toList()
40 41 42 43 44 45 46
    );
  }
}

final WidgetDemo kTabsDemo = new WidgetDemo(
  title: 'Tabs',
  routeName: '/tabs',
47 48
  tabBarBuilder: _buildTabBar,
  pageWrapperBuilder: _buildTabBarSelection,
49 50
  builder: (_) => new TabsDemo()
);