文章目录
背景
相信我们在Flutter开发过程中接触最多的无疑就是Widget了,通过Widget我们可以实现诸多功能:
- 描述UI的层级结构
- 定制UI的各色样式,国际化(font, color, theme)
- 定义UI布局方式(padding,center等)
- 数据共享(事件传递)(notification,InheritedWidget等)
按照官方的说法“Widget是用于描述Element的配置信息”,如何去理解这句话,下面我们具体分析:
Widgets系统分类
通过源码查看,我们发现Widget是一个抽象类,直接或者间接继承自Widget的类达到六百多个,下面整合这些Widget信息对Widget做一个简单的分类,直接继承自Widget的类只有四个(还有一个PreferredSizeWidget,在我们实际开发者用得比较少),我们就以这四个作为入口: