From 2c44ed0f01bd9a6bd8aa51382ea86683fe8d883d Mon Sep 17 00:00:00 2001 From: Hixie Date: Wed, 19 Aug 2015 13:28:17 -0700 Subject: [PATCH] Implement 'stretch' for flexible items. --- packages/flutter/lib/rendering/flex.dart | 39 +++++++++++++++++------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/packages/flutter/lib/rendering/flex.dart b/packages/flutter/lib/rendering/flex.dart index b8d87f4a91..ebc985eb1a 100644 --- a/packages/flutter/lib/rendering/flex.dart +++ b/packages/flutter/lib/rendering/flex.dart @@ -341,17 +341,34 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin 0) { double spaceForChild = spacePerFlex * flex; BoxConstraints innerConstraints; - switch (_direction) { - case FlexDirection.horizontal: - innerConstraints = new BoxConstraints(maxHeight: constraints.maxHeight, - minWidth: spaceForChild, - maxWidth: spaceForChild); - break; - case FlexDirection.vertical: - innerConstraints = new BoxConstraints(minHeight: spaceForChild, - maxHeight: spaceForChild, - maxWidth: constraints.maxWidth); - break; + if (alignItems == FlexAlignItems.stretch) { + switch (_direction) { + case FlexDirection.horizontal: + innerConstraints = new BoxConstraints(minWidth: constraints.maxWidth, + maxWidth: constraints.maxWidth, + minHeight: constraints.minHeight, + maxHeight: constraints.maxHeight); + break; + case FlexDirection.vertical: + innerConstraints = new BoxConstraints(minWidth: constraints.minWidth, + maxWidth: constraints.maxWidth, + minHeight: constraints.maxHeight, + maxHeight: constraints.maxHeight); + break; + } + } else { + switch (_direction) { + case FlexDirection.horizontal: + innerConstraints = new BoxConstraints(maxHeight: constraints.maxHeight, + minWidth: spaceForChild, + maxWidth: spaceForChild); + break; + case FlexDirection.vertical: + innerConstraints = new BoxConstraints(minHeight: spaceForChild, + maxHeight: spaceForChild, + maxWidth: constraints.maxWidth); + break; + } } child.layout(innerConstraints, parentUsesSize: true); usedSpace += _getMainSize(child);