StatelessElement createElement() => StatelessElement(this); @protected Widget build(BuildContext context); } 1. 2. 3. 4. 5. 6. 7. 8. 9. StatefulWidget --- A widget that has mutable state. abstract class StatefulWidget extends Widget { const StatefulWidget({ Key? key }) : super(key: ...
StatelessWidget和StatefulWidget是flutter的基础组件,日常开发中自定义Widget都是选择继承这两者之一。 两者的区别在于状态的改变,StatelessWidget面向那些始终不变的UI控件,比如标题栏中的标题;而StatefulWidget则是面向可能会改变UI状态的控件,比如有点击反馈的按钮。 StatelessWidget就没什么好研究的了,StatefulWidget的创建需要指...
StatelessWidget --- A widget that does not require mutable state. abstractclassStatelessWidgetextendsWidget{constStatelessWidget({Key?key}):super(key:key);@overrideStatelessElementcreateElement()=>StatelessElement(this);@protectedWidgetbuild(BuildContextcontext);} StatefulWidget --- A widget that has mutabl...
这里边执行了build(),在StatefulElement的实现是Widget build() => state.build(this);,所以最终调用的就是我们在state中经常要写的build函数,super.performRebuild()只是将自己设置为_dirty = false,表示下一帧不需要rebuild我 _child = updateChild(_child, built, slot)就是在build执行完之后,有了新的子widg...
在这个接口实现中,返回了一个 StatelessElement 对象,并将StatelessWidget对象传给了StatelessElement对象(这就是将widget配置来生成element),这里可以看到widget与element是相互包含的。 StatelessWidget声明了一个build接口,这个接口由继承StatelessWidget的类来实现,而调用是由element来执行的,这个可以从StatelessElement源码中可...