如果你已经开始尝试使用flutter,那么一定多多少少接触过flutter的widget了,widget很多,多的让刚刚入门的同学头大,那我就废话不说了,直接贴出flutter常见widget继承关系图,让我们学习的时候更有头绪。
以上只是部分widget的列举,不可能列举所有,特别是StatelessWidget和StatefulWidget 类似于原生开发中的组合控件,各种控件之间可以任意组合从而得到各种不同而炫酷的效果;我们不可能把官方的所有组件都了解一遍,但我们可以触类旁通。
比如,我们可以看到组件分为四个大类,其中RenderObjectWidget又分为三个小类,这三个小类(LeafRenderObjectWidget、SingleChildRenderObjectWidget、MutilChildRenderObjectWidget)的子类在开发中用的很多,通常都是通过组合若干这样的组件来生成新得组件。
从以上关系可以得出一些规律,比如Cloumn和Row都是继承Flex,那么Flex支持的属性其子组件也能够支持,还有些组件上面并没有提及,比如组件Center继承于Align,其本质是对Align处于中间定位的一个特例。
StatelessWidget基本都是用于纯展示或者容器类的widget,而StatefullWidget通常会保存一些用户状态。
由于组件繁多,只能抛砖引玉,今后会介绍更多技术细节的东西。