visibleRangeByHeight method

VisibleLineRange visibleRangeByHeight({
  1. required double viewTop,
  2. required double viewBottom,
})

Implementation

VisibleLineRange visibleRangeByHeight({
  required double viewTop,
  required double viewBottom,
}) {
  if (_root.summary.lines == 0) {
    return const VisibleLineRange(firstLine: 0, lastLine: 0, firstLineY: 0);
  }
  final first = _root.seekHeight(math.max(0, viewTop));
  final last = _root.seekHeight(math.max(viewTop, viewBottom));
  final maxLine = _root.summary.lines - 1;
  return VisibleLineRange(
    firstLine: first.line.clamp(0, maxLine),
    lastLine: last.line.clamp(first.line, maxLine),
    firstLineY: first.offset,
  );
}