debugResolveOffsetForContentOffset method
({int index, int offsetInItem})
debugResolveOffsetForContentOffset(
- int contentOffset
)
Implementation
({int index, int offsetInItem}) debugResolveOffsetForContentOffset(
int contentOffset,
) {
if (_cachedItemCount <= 0) return (index: 0, offsetInItem: 0);
final rawOffset = contentOffset.toInt();
final targetOffset = _cachedItemCount <= _smallListExactResolutionLimit
? rawOffset.clamp(0, 0x7fffffff)
: contentOffset.clamp(0, math.max(0, _strideTree.total - 1)).toInt();
if (size.width <= 0) {
final index = _findStartIndexForOffset(targetOffset);
return (
index: index,
offsetInItem: targetOffset - _itemStartOffset(index),
);
}
if (_cachedItemCount <= _smallListExactResolutionLimit) {
return _resolveOffsetForContentOffsetByMeasuring(
contentOffset: targetOffset,
);
}
final index = _findStartIndexForOffset(targetOffset);
return (index: index, offsetInItem: targetOffset - _itemStartOffset(index));
}