flutter的widget分析

210 阅读1分钟
  • StatelessElement和StatefulWidget都有build函数,而RenderObjectWidget没有.说明在build树中,StatelessElement和StatefulWidget是枝,RenderObjectWidget是叶.
  • 他们都有element,因为build树是由element支撑的.
  • RenderObjectWidget负责绘制,StatefulWidget负责刷新
  • 某些Widget会包含child,children
  • 一般dart的层级结构应该这么画(同一个事实上的widget通过build串起来,最后以RenderObjectWidget结尾)

  • 整块Widget的所有child,事实上在同一个层级上.如上图的Text和_inputPading
  • RenderObjectWidget也是可以有child的,例如Semantics.
  • Widget的child可能和实际上构建的child不同.例如RaisedButton会将Text移交到_inputPadding.