Things unfortunately get more complicated if you allow children of varying heights. Then, in order to know what content should be visible at a particular scroll position, you must first fetch and lay out all content that appears above it. Or cheat by storing that information in a cache somewhere.