viewport property

ListViewport get viewport

Returns viewport information for rendering.

Use this to render only the visible portion of a list:

final vp = nav.viewport;
for (var i = vp.start; i < vp.end; i++) {
  final isSelected = i == nav.selectedIndex;
  // render items[i]
}

Implementation

ListViewport get viewport {
  final start = _scrollOffset;
  final end = min(_scrollOffset + _maxVisible, _itemCount);
  return ListViewport(
    start: start,
    end: end,
    hasOverflowAbove: hasOverflowAbove,
    hasOverflowBelow: hasOverflowBelow,
  );
}