beginIndexForScrollOffset static method
double
beginIndexForScrollOffset(
{ - required double offset,
- required double itemExtent,
- required double itemCount,
- required int dataLength,
- double trailingBlankItemCount = 0,
- double minTrailingVisibleItemCount = 3,
})
Implementation
static double beginIndexForScrollOffset({
required double offset,
required double itemExtent,
required double itemCount,
required int dataLength,
double trailingBlankItemCount = 0,
double minTrailingVisibleItemCount = 3,
}) {
if (dataLength <= 0 || itemCount <= 0 || itemExtent <= 0) {
return 0.0;
}
final rawBeginIndex = offset / itemExtent;
if (rawBeginIndex.isNaN || rawBeginIndex.isInfinite) {
return 0.0;
}
final maxBeginIndex = maxBeginIndexFor(
dataLength: dataLength,
itemCount: itemCount,
trailingBlankItemCount: trailingBlankItemCount,
minTrailingVisibleItemCount: minTrailingVisibleItemCount,
);
return rawBeginIndex.clamp(0.0, maxBeginIndex).toDouble();
}