performLayout method
Called to perform the actual layout computation for this render object.
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);
}