布局类组件都会包含一个或多个子组件,不同的布局类组件对子组件排版(layout)方式不同。Flutter中,根据Widget是否需要包含子节点将Widget分为了三类,如下表:
Widget | 用途 |
---|---|
LeafRenderObjectWidget | Widget树的叶子节点,用于没有子节点的widget,通常基础组件都属于这一类,如Image。 |
SingleChildRenderObjectWidget | 包含一个子Widget,如:ConstrainedBox、DecoratedBox等 |
MultiChildRenderObjectWidget | 包含多个子Widget,一般都有一个children参数,接受一个Widget数组。如Row、Column、Stack等。 |