diff --git a/src/Layout.js b/src/Layout.js index dff63f01..5b0c6686 100755 --- a/src/Layout.js +++ b/src/Layout.js @@ -484,7 +484,8 @@ var computeLayout = (function() { if (!leadingPos && trailingPos) { child.layout[pos[crossAxis]] = node.layout[dim[crossAxis]] - - getDimWithMargin(child, crossAxis) - + child.layout[dim[crossAxis]] - + getMargin(child, trailing[crossAxis]) - getPosition(child, trailing[crossAxis]); } } else { diff --git a/src/__tests__/Layout-test.js b/src/__tests__/Layout-test.js index 1c3b5804..26db616c 100755 --- a/src/__tests__/Layout-test.js +++ b/src/__tests__/Layout-test.js @@ -917,6 +917,17 @@ describe('Layout', function() { ); }); + it('should layout with position absolute right and negative margin', function() { + testLayout( + {style: {}, children: [ + {style: {right: 20, marginLeft: 5, marginRight: -5, width: 5, position: 'absolute'}} + ]}, + {width: 0, height: 0, top: 0, left: 0, children: [ + {width: 5, height: 0, top: 0, left: -20} + ]} + ); + }); + xit('should layout text with alignItems: stretch', function() { testLayout( {style: {width: 80, padding: 7, alignItems: 'stretch', measure: text('loooooooooong with space')}},