moveBy method
Moves selection by delta positions with wrapping.
Positive delta moves down, negative moves up. Wraps around at list boundaries.
Implementation
void moveBy(int delta) {
if (_itemCount == 0) return;
_selectedIndex = (_selectedIndex + delta + _itemCount) % _itemCount;
_adjustScroll();
}