additionalPositiveYOffsetFromAtomicPlaceholders method
double
additionalPositiveYOffsetFromAtomicPlaceholders(
)
Implementation
double additionalPositiveYOffsetFromAtomicPlaceholders() {
if (_paragraph == null || _placeholderBoxes.isEmpty || _allPlaceholders.isEmpty) return 0.0;
// Base paragraph height measured as sum of line heights when available.
final double baseHeight =
_paraLines.isEmpty ? (_paragraph?.height ?? 0.0) : _paraLines.fold<double>(0.0, (sum, lm) => sum + lm.height);
double maxBottom = baseHeight;
final int n = math.min(_placeholderBoxes.length, _allPlaceholders.length);
for (int i = 0; i < n; i++) {
final ph = _allPlaceholders[i];
if (ph.kind != _PHKind.atomic) continue;
final tb = _placeholderBoxes[i];
// Map placeholder index to the corresponding render box (may be a wrapper).
RenderBox? rb = ph.atomic;
if (rb == null) continue;
final RenderBoxModel? styleBox = _resolveStyleBoxForPlaceholder(rb);
if (styleBox == null) continue;
double extraDy = 0.0;
final Offset? rel = CSSPositionedLayout.getRelativeOffset(styleBox.renderStyle);
if (rel != null && rel.dy > 0) extraDy += rel.dy;
final Offset? tr = styleBox.renderStyle.effectiveTransformOffset;
if (tr != null && tr.dy > 0) extraDy += tr.dy;
final double bottom = tb.bottom + extraDy;
if (bottom > maxBottom) maxBottom = bottom;
}
final double extra = maxBottom - baseHeight;
return extra > 0 ? extra : 0.0;
}