// 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 'demo/chip_demo.dart'; import 'demo/date_picker_demo.dart'; import 'demo/drop_down_demo.dart'; import 'demo/modal_bottom_sheet_demo.dart'; import 'demo/persistent_bottom_sheet_demo.dart'; import 'demo/selection_controls_demo.dart'; import 'demo/slider_demo.dart'; import 'demo/tabs_demo.dart'; import 'demo/time_picker_demo.dart'; import 'demo/widget_demo.dart'; import 'gallery_page.dart'; final List _kDemos = [ kChipDemo, kSelectionControlsDemo, kSliderDemo, kDatePickerDemo, kTabsDemo, kTimePickerDemo, kDropDownDemo, kModalBottomSheetDemo, kPersistentBottomSheetDemo, ]; class _MaterialGallery extends StatefulComponent { _MaterialGalleryState createState() => new _MaterialGalleryState(); } class _MaterialGalleryState extends State<_MaterialGallery> { final Map _routes = new Map(); void initState() { super.initState(); _routes['/'] = (_) => new GalleryPage( demos: _kDemos, onThemeChanged: _handleThemeChanged ); for (WidgetDemo demo in _kDemos) { _routes[demo.routeName] = (_) { return new GalleryPage( demos: _kDemos, active: demo, onThemeChanged: _handleThemeChanged ); }; } } ThemeData _theme; void _handleThemeChanged(ThemeData newTheme) { setState(() { _theme = newTheme; }); } Widget build(BuildContext context) { return new MaterialApp( title: 'Material Gallery', theme: _theme, routes: _routes ); } } void main() { runApp(new _MaterialGallery()); }