@@ -264,6 +264,21 @@ class _LayoutSizes {
264264 final double ? spacePerFlex;
265265}
266266
267+ extension on CrossAxisAlignment {
268+ double _getChildCrossAxisOffset (double freeSpace, bool flipped) {
269+ return switch (this ) {
270+ CrossAxisAlignment .stretch || CrossAxisAlignment .baseline => 0.0 ,
271+ CrossAxisAlignment .start => flipped ? freeSpace : 0.0 ,
272+ CrossAxisAlignment .center => freeSpace / 2 ,
273+ CrossAxisAlignment .end =>
274+ CrossAxisAlignment .start._getChildCrossAxisOffset (
275+ freeSpace,
276+ ! flipped,
277+ ),
278+ };
279+ }
280+ }
281+
267282extension on MainAxisAlignment {
268283 (double leadingSpace, double betweenSpace) _distributeSpace (
269284 double freeSpace,
@@ -312,19 +327,24 @@ extension on MainAxisAlignment {
312327 }
313328}
314329
315- extension on CrossAxisAlignment {
316- double _getChildCrossAxisOffset (double freeSpace, bool flipped) {
317- return switch (this ) {
318- CrossAxisAlignment .stretch || CrossAxisAlignment .baseline => 0.0 ,
319- CrossAxisAlignment .start => flipped ? freeSpace : 0.0 ,
320- CrossAxisAlignment .center => freeSpace / 2 ,
321- CrossAxisAlignment .end =>
322- CrossAxisAlignment .start._getChildCrossAxisOffset (
323- freeSpace,
324- ! flipped,
325- ),
326- };
327- }
330+ double ? _getChildBaseline (
331+ RenderBox child,
332+ BoxConstraints constraints,
333+ TextBaseline baseline,
334+ ) {
335+ // TODO: use ChildLayoutHelper.getBaseline when minimum Flutter version >= 3.24
336+ assert (! child.debugNeedsLayout);
337+ assert (child.constraints == constraints);
338+ return child.getDistanceToBaseline (baseline, onlyReal: true );
339+ }
340+
341+ double ? _getChildBaselineDry (
342+ RenderBox child,
343+ BoxConstraints constraints,
344+ TextBaseline baseline,
345+ ) {
346+ // TODO: use ChildLayoutHelper.getDryBaseline when minimum Flutter version >= 3.24
347+ return child.getDryBaseline (constraints, baseline);
328348}
329349
330350class RenderHtmlFlex extends RenderBox
@@ -544,7 +564,7 @@ class RenderHtmlFlex extends RenderBox
544564 ? BoxConstraints (maxWidth: extent)
545565 : BoxConstraints (maxHeight: extent),
546566 layoutChild: layoutChild,
547- getBaseline: ChildLayoutHelper .getDryBaseline ,
567+ getBaseline: _getChildBaselineDry ,
548568 ).axisSize.crossAxisExtent;
549569 }
550570 }
@@ -728,7 +748,7 @@ class RenderHtmlFlex extends RenderBox
728748 final _LayoutSizes sizes = _computeSizes (
729749 constraints: constraints,
730750 layoutChild: ChildLayoutHelper .dryLayoutChild,
731- getBaseline: ChildLayoutHelper .getDryBaseline ,
751+ getBaseline: _getChildBaselineDry ,
732752 );
733753
734754 if (_isBaselineAligned) {
@@ -816,7 +836,7 @@ class RenderHtmlFlex extends RenderBox
816836 return _computeSizes (
817837 constraints: constraints,
818838 layoutChild: ChildLayoutHelper .dryLayoutChild,
819- getBaseline: ChildLayoutHelper .getDryBaseline ,
839+ getBaseline: _getChildBaselineDry ,
820840 ).axisSize.toSize (direction);
821841 }
822842
@@ -937,7 +957,11 @@ class RenderHtmlFlex extends RenderBox
937957 _LayoutSizes _computeSizes ({
938958 required BoxConstraints constraints,
939959 required ChildLayouter layoutChild,
940- required ChildBaselineGetter getBaseline,
960+ required double ? Function (
961+ RenderBox child,
962+ BoxConstraints constraints,
963+ TextBaseline baseline,
964+ ) getBaseline,
941965 }) {
942966 assert (_debugHasNecessaryDirections);
943967
@@ -1077,7 +1101,7 @@ class RenderHtmlFlex extends RenderBox
10771101 final _LayoutSizes sizes = _computeSizes (
10781102 constraints: constraints,
10791103 layoutChild: ChildLayoutHelper .layoutChild,
1080- getBaseline: ChildLayoutHelper .getBaseline ,
1104+ getBaseline: _getChildBaseline ,
10811105 );
10821106
10831107 final double crossAxisExtent = sizes.axisSize.crossAxisExtent;
0 commit comments