computeAbsolutePaintOffsetFor method
The offset at which the given child
should be painted.
The returned offset is from the top left corner of the inside of the
viewport to the top left corner of the paint coordinate system of the
child
.
This is useful when the one or both of the axes of the viewport are reversed. The normalized layout offset of the child is used to compute the paint offset in relation to the verticalAxisDirection and horizontalAxisDirection.
Implementation
@protected
Offset computeAbsolutePaintOffsetFor(
RenderBox child, {
required Offset layoutOffset,
}) {
// This is only usable once we have sizes.
assert(hasSize);
assert(child.hasSize);
final double xOffset = switch (horizontalAxisDirection) {
AxisDirection.right => layoutOffset.dx,
AxisDirection.left => viewportDimension.width - (layoutOffset.dx + child.size.width),
AxisDirection.up || AxisDirection.down => throw Exception('This should not happen'),
};
final double yOffset = switch (verticalAxisDirection) {
AxisDirection.up => viewportDimension.height - (layoutOffset.dy + child.size.height),
AxisDirection.down => layoutOffset.dy,
AxisDirection.right || AxisDirection.left => throw Exception('This should not happen'),
};
return Offset(xOffset, yOffset);
}