StatefulWidget
和StatelessWidget一样,StatefulWidget也是继承自Widget类,并重写了createElement()方法,不同的是返回的Element 对象并不相同;另外StatefulWidget类中添加了一个新的接口createState()
1 // StatefulWidget的类定义: 2 import 'package:flutter/material.dart'; 3 4 abstract class StatefulWidget extends Widget { 5 const StatefulWidget({ Key key }) : super(key: key); 6 7 @override 8 StatefulElement createElement() => new StatefulElement(this); 9 10 @protected 11 State createState(); 12 } 13 14 // StatefulElement 间接继承自Element类,与StatefulWidget相对应(作为其配置数据)。 15 // StatefulElement中可能会多次调用createState()来创建状态(State)对象。 16 17 // createState() 用于创建和Stateful widget相关的状态,它在Stateful widget的生命周期中可能会被多次调用。 18 // 例如,当一个Stateful widget同时插入到widget树的多个位置时,Flutter framework就会调用该方法为每一个位置生成一个独立的State实例, 19 // 其实,本质上就是一个StatefulElement对应一个State实例。