TreeviewCopyright © aleen42 all right reserved, powered by aleen42
在 Android 中我们用到了 LinearLayout
,RelativeLayout
等布局,在 Flutter 好像并没有类似的东西,那在 Flutter 中控件是如何按照一定规则摆放的呢?
还记不记得之前说过的,Flutter 中一切皆控件,一切皆 Widget,之前讲过的 Text、Image 是 Widget,同样,布局也是 Widget。
在 Flutter 中,Widget 分为三类:
- LeafRenderObjectWidget,对应一些基础控件,例如 Text、Image等等。
- SingleChildRenderObjectWidget,对应一些包含一个子 Widget 的控件,它有一个
child
属性。 - MultiChildRenderObjectWidget,对应一些 包含多个子 Wdiget 的控件,它有一个
childremn
属性。
SingleChildRenderObjectWidget
看官方文档中这样描述 SingleChildRenderObjectWidget
:
A superclass for RenderObjectWidgets that configure RenderObject subclasses that have a single child slot.
它的子类有单个插槽
,也就是说,他有一个 child
属性,它的子类庞大:
其实常用的也就那么几个:
- Container
- Padding
- Align
- Center
- ConstrainedBox
目前我就接触到这么几个,后续有遇到再更新吧。
MultiChildRenderObjectWidget
A superclass for RenderObjectWidgets that configure RenderObject subclasses that have a single list of children.
它的子类有都拥有一个 列表
,它的家族倒是少一些,常用的也只是几个:
- Flex
- Flow
- Stack
- Wrap
下面我们来一一的学习他们,奥利给。