home.dart 5.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
// Copyright 2016 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 'package:flutter/widgets.dart';

import 'demo.dart';
import 'drawer.dart';
import 'section.dart';

import '../demo/buttons_demo.dart';
Hans Muller's avatar
Hans Muller committed
13
import '../demo/cards_demo.dart';
Hans Muller's avatar
Hans Muller committed
14
import '../demo/colors_demo.dart';
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
import '../demo/chip_demo.dart';
import '../demo/date_picker_demo.dart';
import '../demo/dialog_demo.dart';
import '../demo/drop_down_demo.dart';
import '../demo/modal_bottom_sheet_demo.dart';
import '../demo/page_selector_demo.dart';
import '../demo/persistent_bottom_sheet_demo.dart';
import '../demo/progress_indicator_demo.dart';
import '../demo/toggle_controls_demo.dart';
import '../demo/scrolling_techniques_demo.dart';
import '../demo/slider_demo.dart';
import '../demo/snack_bar_demo.dart';
import '../demo/tabs_demo.dart';
import '../demo/tabs_fab_demo.dart';
import '../demo/time_picker_demo.dart';
import '../demo/two_level_list_demo.dart';
Hans Muller's avatar
Hans Muller committed
31
import '../demo/typography_demo.dart';
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
import '../demo/weathers_demo.dart';

class GalleryHome extends StatefulComponent {
  GalleryHome({ Key key }) : super(key: key);

  GalleryHomeState createState() => new GalleryHomeState();
}

class GalleryHomeState extends State<GalleryHome> {
  Widget build(BuildContext context) {
    return new Scaffold(
      appBarHeight: 128.0,
      drawer: new GalleryDrawer(),
      toolBar: new ToolBar(
        flexibleSpace: (BuildContext context) {
          return new Container(
            padding: const EdgeDims.only(left: 16.0, bottom: 24.0),
            height: 128.0,
            child: new Align(
              alignment: const FractionalOffset(0.0, 1.0),
              child: new Text('Flutter Gallery', style: Typography.white.headline)
            )
          );
        }
      ),
      body: new Padding(
        padding: const EdgeDims.all(4.0),
        child: new Block(
          children: <Widget>[
            new Row(
              children: <Widget>[
                new GallerySection(
                  title: 'Animation',
                  image: 'assets/section_animation.png',
                  colors: Colors.purple,
                  demos: <GalleryDemo>[
                    new GalleryDemo(title: 'Weathers', builder: () => new WeathersDemo())
                  ]
                ),
                new GallerySection(
                  title: 'Style',
                  image: 'assets/section_style.png',
Hans Muller's avatar
Hans Muller committed
74 75
                  colors: Colors.green,
                  demos: <GalleryDemo>[
Hans Muller's avatar
Hans Muller committed
76 77
                    new GalleryDemo(title: 'Colors', builder: () => new ColorsDemo()),
                    new GalleryDemo(title: 'Typography', builder: () => new TypographyDemo())
Hans Muller's avatar
Hans Muller committed
78
                  ]
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
                )
              ]
            ),
            new Row(
              children: <Widget>[
                new GallerySection(
                  title: 'Layout',
                  image: 'assets/section_layout.png',
                  colors: Colors.pink
                ),
                new GallerySection(
                  title: 'Components',
                  image: 'assets/section_components.png',
                  colors: Colors.amber,
                  demos: <GalleryDemo>[
                    new GalleryDemo(title: 'Buttons', builder: () => new ButtonsDemo()),
Hans Muller's avatar
Hans Muller committed
95
                    new GalleryDemo(title: 'Cards', builder: () => new CardsDemo()),
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
                    new GalleryDemo(title: 'Chips', builder: () => new ChipDemo()),
                    new GalleryDemo(title: 'Date Picker', builder: () => new DatePickerDemo()),
                    new GalleryDemo(title: 'Dialog', builder: () => new DialogDemo()),
                    new GalleryDemo(title: 'Dropdown Button', builder: () => new DropDownDemo()),
                    new GalleryDemo(title: 'Expland/Collapse List Control', builder: () => new TwoLevelListDemo()),
                    new GalleryDemo(title: 'Floating Action Button', builder: () => new TabsFabDemo()),
                    new GalleryDemo(title: 'Modal Bottom Sheet', builder: () => new ModalBottomSheetDemo()),
                    new GalleryDemo(title: 'Page Selector', builder: () => new PageSelectorDemo()),
                    new GalleryDemo(title: 'Persistent Bottom Sheet', builder: () => new PersistentBottomSheetDemo()),
                    new GalleryDemo(title: 'Progress Indicators', builder: () => new ProgressIndicatorDemo()),
                    new GalleryDemo(title: 'Selection Controls', builder: () => new ToggleControlsDemo()),
                    new GalleryDemo(title: 'Sliders', builder: () => new SliderDemo()),
                    new GalleryDemo(title: 'SnackBar', builder: () => new SnackBarDemo()),
                    new GalleryDemo(title: 'Tabs', builder: () => new TabsDemo()),
                    new GalleryDemo(title: 'Time Picker', builder: () => new TimePickerDemo())
                  ]
                )
              ]
            ),
            new Row(
              children: <Widget>[
                new GallerySection(
                  title: 'Patterns',
                  image: 'assets/section_patterns.png',
                  colors: Colors.cyan,
                  demos: <GalleryDemo>[
                    new GalleryDemo(title: 'Scrolling Techniques', builder: () => new ScrollingTechniquesDemo())
                  ]
                ),
                new GallerySection(
                  title: 'Usability',
                  image: 'assets/section_usability.png',
                  colors: Colors.lightGreen
                )
              ]
            )
          ]
        )
      )
    );
  }
}