Flutter的Widget有Statful(有状态的)和Stateless(无状态的)。比如继承自StatefulWidget的有Checkbox、Radio、Slider、Form等,这些Widget用户都是可以做一些交互的,同样的继承自StatelessWidget的Widget有Text、Icon等。有状态和无状态的主要区别在于:有状态的Widget在其内部都有一个state用来标记是否发生了变化,然后调用setState()方法来更新自己。
Widget相当于时一个暂时的对象,只是为了展示和布局当前状态时用的,一旦状态发生了改变,它就会失效并且重绘;而State从某种角度来说是个永久对象,它里面存储了一些必要信息,每次通过比较,只更新和修改差异化的东西。
创建Stateful Widget示例
关键点:
1、创建一个Stateful Widget需要两个类,分别继承自StateFulWidget和State
2、state对象包含widget的state和widget的build()方法
3、当widget的state改变的时候,state对象会调用setState()方法,告诉框架去重绘widget
class FavoriteWidget extends StatefulWidget {