用户登录

StatefulWidget,这种类型的小部件里面可以有一些能够变化的状态 .. 也就是 StaefulWidget 构建的用户界面可以动态的发生变化 .. 比如在我们这个例子里面 .. 点了这个漂浮按钮,界面上显示的这个数字要动态的发生变化 .. 这种情况我们就可以使用一个 StaefulWidget ..

下面可以把我们这个小部件改造成一个 StatefulWidget .. 让它继承一下 StatefulWidget .. 要注意的是 StaefulWidget 小部件本身也是 immutable ,不可改变的 ..

小部件需要的可以变化的那些状态要单独放在一个 State 对象里面 .. 这个 State 对象可以使用小部件里的 createState 这个方法来创建 ..

我们先剪切一下 StateManagementDemo 里同的这些东西 .. 里面 @override 一下 StatefulWidget 里的 createState ..

方法返回的东西可以单独放在一个类里面 .. 方法返回的是 _StateManagementDemoState .. 名字叫 createState ... 返回的是一个 _StateManagementDemoState() 实例 ..

下面再去创建一下这个类 .. 这个类要继承的是 State ... 类型是 StateManagementDemo .. 在这个 State 类里面可以包含 StateManagementDemo 小部件里的一些数据,还有小部件表示的那个界面 .. 也就是 build 方法返回的东西 ..

把之前剪切的东西都粘贴到这里 ..

重新启动一下 ... 再打开控制台 ..

按一下应用界面上的这个漂浮按钮 .. 每次按的时候 count 的值都会发生变化 .. 不过界面上显示的这个 count 的值仍然没有变化 ..

这个是因为,StatefulWidget 里面的状态一但发生了变化,我们要把这个变化放在 setState 方法里面 .. 这样小部件才会被重建,显示变化之后的状态 ..

在这个漂浮按钮的 onPressed 方法里面 .. 用一下 setState 方法,给它一个回调 .. 然后里面可以设置一下 count 的值,让它的值加上 1 ..

然后到模拟器上再试一下 .. 按一下这个动作按钮 .. count 的值会加上 1,这个变化是在 setState 方法里面完成的,所以每次有变化,小部件都会使用新的状态被重建 .. 重建以后,界面上会显示小部件变化之后的状态 ..

这个 count 是在这个类内部使用的一个属性 ... 所以我们可以在名字的开头这里添加一个下划线 ... 再修改一下用了这个 count 的地方 ..

最后再到模拟器上试一下 .... 按一下漂浮动作按钮 .. 会让 _count 的值加上 1 ...

StatefulWidget:带变化状态的小部件《 Flutter 移动应用:状态管理 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点