Flutter 开发实战

235课时
2.1K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
1分钟

08 自定义流程

上述主要描述了 MultiChildRenderObjectWidgetMultiChildRenderObjectElement 和其他三个辅助类ContainerRenderObjectMixinRenderBoxContainerDefaultsMixinContainerBoxParentData 之间的关系。

了解几个关键类之后,我们看一般情况下,实现自定义布局的简化流程是:

  • 1、自定义 ParentData 继承 ContainerBoxParentData
  • 2、继承 RenderBox ,同时混入 ContainerRenderObjectMixinRenderBoxContainerDefaultsMixin 实现自定义RenderObject
  • 3、继承 MultiChildRenderObjectWidget,实现 createRenderObjectupdateRenderObject 方法,关联我们自定义的 RenderBox
  • 4、override RenderBoxperformLayoutsetupParentData 方法,实现自定义布局。

当然我们可以利用官方的 CustomMultiChildLayout 实现自定义布局,这个后面也会讲到,现在让我们先从基础开始, 而上述流程中混入的 ContainerRenderObjectMixinRenderBoxContainerDefaultsMixin ,在 RenderFlexRenderWrapRenderStack 等官方实现的布局里,也都会混入它们。