performLayout method

  1. @override
void performLayout(
  1. Constraints constraints
)
override

Implementation

@override
void performLayout(Constraints constraints) {
  final int headerWidth = 2 + stringWidth(title);
  const int headerH = 1;

  int maxChildWidth = headerWidth;
  int totalChildHeight = 0;

  if (expanded) {
    for (final child in children) {
      child.layout(constraints);
      final ExpansionTileParentData childData =
          child.parentData as ExpansionTileParentData;
      childData.offset = Offset(2, headerH + totalChildHeight);
      maxChildWidth = maxChildWidth > child.size!.width
          ? maxChildWidth
          : child.size!.width;
      totalChildHeight += child.size!.height;
    }
  }

  final int totalWidth =
      maxChildWidth + 2 > headerWidth ? maxChildWidth + 2 : headerWidth;
  final int totalHeight = headerH + totalChildHeight;
  size = Size(totalWidth, totalHeight);
}