childScrollOffset method
- covariant RenderObject child
override
Returns the scroll offset for the leading edge of the given child.
The child
must be a child of this sliver.
This method differs from childMainAxisPosition in that childMainAxisPosition gives the distance from the leading visible edge of the sliver whereas childScrollOffset gives the distance from sliver's zero scroll offset.
Implementation
@override
double? childScrollOffset(RenderObject child) {
assert(child.parent == this);
final GrowthDirection growthDirection = constraints.growthDirection;
switch (growthDirection) {
case GrowthDirection.forward:
double childScrollOffset = 0.0;
RenderSliver? current = childBefore(child as RenderSliver);
while (current != null) {
childScrollOffset += current.geometry!.scrollExtent;
current = childBefore(current);
}
return childScrollOffset;
case GrowthDirection.reverse:
double childScrollOffset = 0.0;
RenderSliver? current = childAfter(child as RenderSliver);
while (current != null) {
childScrollOffset -= current.geometry!.scrollExtent;
current = childAfter(current);
}
return childScrollOffset;
}
}