| // 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 'dart:ui' as ui; |
| |
| import 'package:flutter/rendering.dart'; |
| import 'lib/solid_color_box.dart'; |
| |
| RenderBox buildFlexExample() { |
| RenderFlex flexRoot = new RenderFlex(direction: FlexDirection.vertical); |
| |
| RenderDecoratedBox root = new RenderDecoratedBox( |
| decoration: new BoxDecoration(backgroundColor: const ui.Color(0xFF000000)), |
| child: flexRoot |
| ); |
| |
| void addFlexChildSolidColor(RenderFlex parent, ui.Color backgroundColor, { int flex: 0 }) { |
| RenderSolidColorBox child = new RenderSolidColorBox(backgroundColor); |
| parent.add(child); |
| final FlexParentData childParentData = child.parentData; |
| childParentData.flex = flex; |
| } |
| |
| // Yellow bar at top |
| addFlexChildSolidColor(flexRoot, const ui.Color(0xFFFFFF00), flex: 1); |
| |
| // Turquoise box |
| flexRoot.add(new RenderSolidColorBox(const ui.Color(0x7700FFFF), desiredSize: new ui.Size(100.0, 100.0))); |
| |
| var renderDecoratedBlock = new RenderDecoratedBox( |
| decoration: new BoxDecoration(backgroundColor: const ui.Color(0xFFFFFFFF)) |
| ); |
| |
| flexRoot.add(new RenderPadding(padding: const EdgeDims.all(10.0), child: renderDecoratedBlock)); |
| |
| var row = new RenderFlex(direction: FlexDirection.horizontal); |
| |
| // Purple and blue cells |
| addFlexChildSolidColor(row, const ui.Color(0x77FF00FF), flex: 1); |
| addFlexChildSolidColor(row, const ui.Color(0xFF0000FF), flex: 2); |
| |
| var decoratedRow = new RenderDecoratedBox( |
| decoration: new BoxDecoration(backgroundColor: const ui.Color(0xFF333333)), |
| child: row |
| ); |
| |
| flexRoot.add(decoratedRow); |
| final FlexParentData decoratedRowParentData = decoratedRow.parentData; |
| decoratedRowParentData.flex = 3; |
| |
| return root; |
| } |
| |
| void main() { |
| new FlutterBinding(root: buildFlexExample()); |
| } |