adjustScroll method
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),
);
}