| // 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:sky/widgets.dart'; |
| |
| import '../resources/display_list.dart'; |
| |
| class FiddleApp extends App { |
| |
| bool arbitrarySetting = true; |
| |
| void toggle() { |
| setState(() { |
| arbitrarySetting = !arbitrarySetting; |
| }); |
| } |
| |
| Widget buildFlex1() { |
| return new Flex([ |
| new Flexible(child: new Container( |
| decoration: new BoxDecoration( |
| backgroundColor: const Color(0xFF00FFFF) |
| ) |
| )), |
| new RaisedButton(child: new Text('TAP ME TO CHANGE THE BACKGROUND COLOUR'), onPressed: toggle) |
| ]); |
| } |
| |
| Widget buildFlex2() { |
| return new Flex([ |
| new Flexible(child: new Container( |
| key: const StringKey('something-else'), |
| decoration: new BoxDecoration( |
| backgroundColor: const Color(0xEFFF9F00) |
| ) |
| )), |
| new RaisedButton(child: new Text('PRESS ME TO CHANGE IT BACK'), onPressed: toggle) |
| ]); |
| } |
| |
| Widget buildStack1() { |
| return new Stack([ |
| new Positioned(child: new Container( |
| decoration: new BoxDecoration( |
| backgroundColor: const Color(0xFF00FFFF) |
| ) |
| )), |
| new RaisedButton(child: new Text('TAP ME TO CHANGE THE BACKGROUND COLOUR'), onPressed: toggle) |
| ]); |
| } |
| |
| Widget buildStack2() { |
| return new Stack([ |
| new Positioned(child: new Container( |
| key: const StringKey('something-else'), |
| decoration: new BoxDecoration( |
| backgroundColor: const Color(0xEFFF9F00) |
| ) |
| )), |
| new RaisedButton(child: new Text('PRESS ME TO CHANGE IT BACK'), onPressed: toggle) |
| ]); |
| } |
| |
| Widget build() { |
| return new Flex([ |
| new SizedBox( |
| key: const StringKey('flex-example'), |
| height: 250.0, |
| child: arbitrarySetting ? buildFlex1() : buildFlex2() |
| ), |
| new SizedBox( |
| key: const StringKey('stack-example'), |
| height: 250.0, |
| child: arbitrarySetting ? buildStack1() : buildStack2() |
| ) |
| ], |
| direction: FlexDirection.vertical, |
| alignItems: FlexAlignItems.stretch |
| ); |
| } |
| } |
| |
| main() async { |
| TestRenderView renderViewOverride = new TestRenderView(); |
| FiddleApp app = new FiddleApp(); |
| runApp(app, renderViewOverride: renderViewOverride); |
| await renderViewOverride.checkFrame(); |
| app.toggle(); |
| await renderViewOverride.checkFrame(); |
| app.toggle(); |
| await renderViewOverride.checkFrame(); |
| renderViewOverride.endTest(); |
| } |