1分钟
12 CustomMultiChildLayout-1
CustomMultiChildLayout
是 Flutter 为我们封装的简化自定义布局实现,它的内部同样是通过 MultiChildRenderObjectWidget
实现,但是它为我们封装了 RenderCustomMultiChildLayoutBox
和 MultiChildLayoutParentData
,并通过 MultiChildLayoutDelegate
暴露出需要自定义的地方。
使用 CustomMultiChildLayout
你只需要继承 MultiChildLayoutDelegate
,并实现如下方法即可:
void performLayout(Size size);
bool shouldRelayout(covariant MultiChildLayoutDelegate oldDelegate);
通过继承 MultiChildLayoutDelegate
,并且实现 performLayout
方法,我们可以快速自定义我们需要的控件,当然便捷的封装也代表了灵活性的丧失,可以看到 performLayout
方法中只有布局自身的 Size
参数,所以完成上图需求时,我们还需要 child 的大小和位置 ,也就是 childSize
和 childId
。
学员评价