If you have a categorical organization, meaning category per row, I would recommend not paginating items within the category but a full category at a time. I haven't been able to successfully load a subset of row data within any of the RowList-like components. From SDK1, roGridScreen a SetContentListSubset() to accomplish this.
Some experiments from last year gave the best experience by using replaceChild() on the root content node to replace a previously empty (i.e. unloaded) category with a populated one downloaded by a background task.
Some other notes:
- if you can avoid writing a fully custom component, it'll save you tons of work and poor performance on older devices. These devices suffer every time they run brightscript callbacks vs. the built-in components which running natively.
- strategically manage the # of items you lazy load. If the batch size is large, it can take a long time to convert to content nodes and rendezvous back to the render thread. If the batch size is small, too many rendezvous will cause lag in the navigation.