@@ -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