diff --git a/packages/flutter/lib/src/rendering/custom_layout.dart b/packages/flutter/lib/src/rendering/custom_layout.dart index 3262ee09a1..f290afbbda 100644 --- a/packages/flutter/lib/src/rendering/custom_layout.dart +++ b/packages/flutter/lib/src/rendering/custom_layout.dart @@ -29,7 +29,15 @@ class MultiChildLayoutParentData extends ContainerBoxParentData { /// given the previous instance. /// /// Override [getSize] to control the overall size of the layout. The size of -/// the layout cannot depend on layout properties of the children. +/// the layout cannot depend on layout properties of the children. This was +/// a design decision to simplify the delegate implementations: This way, +/// the delegate implementations do not have to also handle various intrinsic +/// sizing functions if the parent's size depended on the children. +/// If you want to build a custom layout where you define the size of that widget +/// based on its children, then you will have to create a custom render object. +/// See [MultiChildRenderObjectWidget] with [ContainerRenderObjectMixin] and +/// [RenderBoxContainerDefaultsMixin] to get started or [RenderStack] for an +/// example implementation. /// /// Override [performLayout] to size and position the children. An /// implementation of [performLayout] must call [layoutChild] exactly once for diff --git a/packages/flutter/lib/src/widgets/basic.dart b/packages/flutter/lib/src/widgets/basic.dart index eb236eb0ca..6ad28f323e 100644 --- a/packages/flutter/lib/src/widgets/basic.dart +++ b/packages/flutter/lib/src/widgets/basic.dart @@ -1955,7 +1955,7 @@ class LayoutId extends ParentDataWidget { /// the children. /// /// [CustomMultiChildLayout] is appropriate when there are complex relationships -/// between the size and positioning of a multiple widgets. To control the +/// between the size and positioning of multiple widgets. To control the /// layout of a single child, [CustomSingleChildLayout] is more appropriate. For /// simple cases, such as aligning a widget to one or another edge, the [Stack] /// widget is more appropriate.