As an important optimization, grid views skip items that are not in view, and instead add empty space to the layout still has the right dimensions (for scrolling). Calculations were off though, leading to the last row being dropped when it had too few items to fill it completely.