Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 667cfe5

Browse files
committed
Merge pull request #698 from Hixie/flex
Implement 'stretch' for flexible items.
2 parents e92e622 + f499cf5 commit 667cfe5

File tree

1 file changed

+28
-11
lines changed

1 file changed

+28
-11
lines changed

sky/packages/sky/lib/rendering/flex.dart

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -341,17 +341,34 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin<RenderBox, Fl
341341
if (flex > 0) {
342342
double spaceForChild = spacePerFlex * flex;
343343
BoxConstraints innerConstraints;
344-
switch (_direction) {
345-
case FlexDirection.horizontal:
346-
innerConstraints = new BoxConstraints(maxHeight: constraints.maxHeight,
347-
minWidth: spaceForChild,
348-
maxWidth: spaceForChild);
349-
break;
350-
case FlexDirection.vertical:
351-
innerConstraints = new BoxConstraints(minHeight: spaceForChild,
352-
maxHeight: spaceForChild,
353-
maxWidth: constraints.maxWidth);
354-
break;
344+
if (alignItems == FlexAlignItems.stretch) {
345+
switch (_direction) {
346+
case FlexDirection.horizontal:
347+
innerConstraints = new BoxConstraints(minWidth: constraints.maxWidth,
348+
maxWidth: constraints.maxWidth,
349+
minHeight: constraints.minHeight,
350+
maxHeight: constraints.maxHeight);
351+
break;
352+
case FlexDirection.vertical:
353+
innerConstraints = new BoxConstraints(minWidth: constraints.minWidth,
354+
maxWidth: constraints.maxWidth,
355+
minHeight: constraints.maxHeight,
356+
maxHeight: constraints.maxHeight);
357+
break;
358+
}
359+
} else {
360+
switch (_direction) {
361+
case FlexDirection.horizontal:
362+
innerConstraints = new BoxConstraints(maxHeight: constraints.maxHeight,
363+
minWidth: spaceForChild,
364+
maxWidth: spaceForChild);
365+
break;
366+
case FlexDirection.vertical:
367+
innerConstraints = new BoxConstraints(minHeight: spaceForChild,
368+
maxHeight: spaceForChild,
369+
maxWidth: constraints.maxWidth);
370+
break;
371+
}
355372
}
356373
child.layout(innerConstraints, parentUsesSize: true);
357374
usedSpace += _getMainSize(child);

0 commit comments

Comments
 (0)