didLayout method

void didLayout()

Implementation

void didLayout() {
  scrollableViewportSize = Size(
      _contentSize!.width + renderStyle.paddingLeft.computedValue + renderStyle.paddingRight.computedValue,
      _contentSize!.height + renderStyle.paddingTop.computedValue + renderStyle.paddingBottom.computedValue);

  setUpOverflowScroller(scrollableSize, scrollableViewportSize);

  if (positionedHolder != null && renderStyle.position != CSSPositionType.sticky) {
    // Make position holder preferred size equal to current element boundary size except sticky element.
    positionedHolder!.preferredSize = Size.copy(size);
  }

  // Positioned renderBoxModel will not trigger parent to relayout. Needs to update it's offset for itself.
  if (parentData is RenderLayoutParentData) {
    RenderLayoutParentData selfParentData = parentData as RenderLayoutParentData;
    RenderBoxModel? parentBox = parent as RenderBoxModel?;
    if (selfParentData.isPositioned && parentBox!.hasSize) {
      CSSPositionedLayout.applyPositionedChildOffset(parentBox, this);
    }
  }

  needsLayout = false;
  dispatchResize(contentSize, boxSize ?? Size.zero);

  if (isSelfSizeChanged) {
    renderStyle.markTransformMatrixNeedsUpdate();
  }
}