Flex has a highly complex sizing algorithm, which does not always produce the expected result. Here are a few common problems:
1. HBox (or other container) width is 100%, but nevertheless causes a scroll bar in the parent container
For width there are three important properties: minWidth, width, and maxWidth. (And similar for height.) Flex will do its best to satisfy minWidth and maxWidth, without regard to width. By default, minWidth is the width of all the children of the HBox, so if this is bigger than the actual width of the parent (i.e. 100%) the box will cause a scroll bar to appear. To fix this, set minWidth="0".
2. Vertical scroll bar is unaccounted for in width calculation when verticalScrollPolicy="auto". (Same problem exists with a horizontal scroll bar and the height calculation.)
This is a problem for example when the inner components of a container have width="100%", but stretch vertically past the bottom of the container. The container will get a vertical scroll bar, but the width of the scroll bar is unaccounted for, causing a short horizontal scroll bar to also appear. To fix this set verticalScrollPolicy="on".
1. HBox (or other container) width is 100%, but nevertheless causes a scroll bar in the parent container
For width there are three important properties: minWidth, width, and maxWidth. (And similar for height.) Flex will do its best to satisfy minWidth and maxWidth, without regard to width. By default, minWidth is the width of all the children of the HBox, so if this is bigger than the actual width of the parent (i.e. 100%) the box will cause a scroll bar to appear. To fix this, set minWidth="0".
2. Vertical scroll bar is unaccounted for in width calculation when verticalScrollPolicy="auto". (Same problem exists with a horizontal scroll bar and the height calculation.)
This is a problem for example when the inner components of a container have width="100%", but stretch vertically past the bottom of the container. The container will get a vertical scroll bar, but the width of the scroll bar is unaccounted for, causing a short horizontal scroll bar to also appear. To fix this set verticalScrollPolicy="on".