adjustScroll method

void adjustScroll(
  1. int viewportHeight
)

Adjusts the scroll offset to keep the selected item visible within the viewportHeight.

Implementation

void adjustScroll(int viewportHeight) {
  if (_flatNodes.isEmpty || viewportHeight <= 0) return;
  _selectedIndex = _selectedIndex.clamp(0, _flatNodes.length - 1);

  if (_selectedIndex < _scrollOffset) {
    _scrollOffset = _selectedIndex;
  } else if (_selectedIndex >= _scrollOffset + viewportHeight) {
    _scrollOffset = _selectedIndex - viewportHeight + 1;
  }
  _scrollOffset = _scrollOffset.clamp(
    0,
    (_flatNodes.length - viewportHeight).clamp(0, _flatNodes.length),
  );
}