tabs_demo.dart 1.34 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
// 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 TabBarSelection _selection = new TabBarSelection();
final List<String> _iconNames = <String>["event", "home", "android", "alarm", "face", "language"];

Widget buildTabBar(_) {
  return new TabBar(
    selection: _selection,
    isScrollable: true,
    labels: _iconNames.map((String iconName) => new TabLabel(text: iconName, icon: "action/$iconName")).toList()
  );
}

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

class _TabsDemoState extends State<TabsDemo> {
  Widget build(_) {
Hans Muller's avatar
Hans Muller committed
26 27 28 29 30 31 32 33 34 35 36 37
    return new TabBarView<String>(
      selection: _selection,
      items: _iconNames,
      itemBuilder: (BuildContext context, String iconName, int index) {
        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))
          )
        );
      }
38 39 40 41 42 43 44 45 46 47
    );
  }
}

final WidgetDemo kTabsDemo = new WidgetDemo(
  title: 'Tabs',
  routeName: '/tabs',
  tabBarBuilder: buildTabBar,
  builder: (_) => new TabsDemo()
);