alignItem: stretch
This commit is contained in:
@@ -432,5 +432,19 @@ describe('Layout', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should layout node with alignItem: stretch', function() {
|
||||||
|
testLayout({
|
||||||
|
style: {width: 1000, height: 1000, alignItems: 'stretch'},
|
||||||
|
children: [
|
||||||
|
{style: {height: 100}}
|
||||||
|
]
|
||||||
|
}, {
|
||||||
|
width: 1000, height: 1000, top: 0, left: 0,
|
||||||
|
children: [
|
||||||
|
{width: 1000, height: 100, top: 0, left: 0}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -144,6 +144,7 @@ function computeLayout(node) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var crossDim = 0;
|
||||||
var mainPos = leadingMainDim;
|
var mainPos = leadingMainDim;
|
||||||
children.forEach(function(child) {
|
children.forEach(function(child) {
|
||||||
child.layout[pos[mainAxis]] += mainPos;
|
child.layout[pos[mainAxis]] += mainPos;
|
||||||
@@ -152,8 +153,23 @@ function computeLayout(node) {
|
|||||||
getMargin(trailing[mainAxis], child) +
|
getMargin(trailing[mainAxis], child) +
|
||||||
betweenMainDim;
|
betweenMainDim;
|
||||||
|
|
||||||
var remainingCrossDim = node.layout[dim[crossAxis]] - child.layout[dim[crossAxis]];
|
if (child.layout[dim[crossAxis]] !== undefined) {
|
||||||
|
if (child.layout[dim[crossAxis]] > crossDim) {
|
||||||
|
crossDim = child.layout[dim[crossAxis]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (node.layout[dim[mainAxis]] === undefined && !mainDimInStyle) {
|
||||||
|
node.layout[dim[mainAxis]] = mainPos;
|
||||||
|
}
|
||||||
|
if (node.layout[dim[crossAxis]] === undefined) {
|
||||||
|
node.layout[dim[crossAxis]] = crossDim;
|
||||||
|
}
|
||||||
|
|
||||||
|
children.forEach(function(child) {
|
||||||
var alignItem = getAlignItem(node, child);
|
var alignItem = getAlignItem(node, child);
|
||||||
|
var remainingCrossDim = node.layout[dim[crossAxis]] - child.layout[dim[crossAxis]];
|
||||||
var leadingCrossDim = 0;
|
var leadingCrossDim = 0;
|
||||||
if (alignItem === 'flex-start') {
|
if (alignItem === 'flex-start') {
|
||||||
// Do nothing
|
// Do nothing
|
||||||
@@ -161,13 +177,12 @@ function computeLayout(node) {
|
|||||||
leadingCrossDim = remainingCrossDim / 2;
|
leadingCrossDim = remainingCrossDim / 2;
|
||||||
} else if (alignItem === 'flex-end') {
|
} else if (alignItem === 'flex-end') {
|
||||||
leadingCrossDim = remainingCrossDim;
|
leadingCrossDim = remainingCrossDim;
|
||||||
|
} else if (alignItem === 'stretch') {
|
||||||
|
child.layout[dim[crossAxis]] = node.layout[dim[crossAxis]];
|
||||||
}
|
}
|
||||||
child.layout[pos[crossAxis]] += leadingCrossDim;
|
child.layout[pos[crossAxis]] += leadingCrossDim;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (node.layout[dim[mainAxis]] === undefined && !mainDimInStyle) {
|
|
||||||
node.layout[dim[mainAxis]] = mainPos;
|
|
||||||
}
|
|
||||||
node.layout[leading[mainAxis]] += getMargin(leading[mainAxis], node);
|
node.layout[leading[mainAxis]] += getMargin(leading[mainAxis], node);
|
||||||
node.layout[leading[crossAxis]] += getMargin(leading[crossAxis], node);
|
node.layout[leading[crossAxis]] += getMargin(leading[crossAxis], node);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user