getItemSizesFromSliverList method

_SizeResult? getItemSizesFromSliverList(
  1. int buildFrom,
  2. int buildTo
)

Implementation

_SizeResult? getItemSizesFromSliverList(int buildFrom, int buildTo) {
  assert(!intervalManager.hasPendingUpdates);

  if (firstChild == null) return null;

  var listFrom = indexOf(firstChild!);
  var listTo = indexOf(lastChild!) + 1;

  if (buildTo <= listFrom || buildFrom >= listTo) return null;

  var from = math.max(listFrom, buildFrom);
  var to = math.min(listTo, buildTo);

  if (to <= from) return null;

  var child = firstChild;
  for (var i = listFrom; i < from; i++) {
    child = childAfter(child!);
  }
  var size = 0.0;
  for (var i = from; i < to; i++) {
    size += paintExtentOf(child!);
    child = childAfter(child);
  }
  return _SizeResult(from, to, size);
}