标签搜索

Flutter基础二State

cicaba
2020-03-10 / 0 评论 / 2 阅读 / 正在检测是否收录...

StatelessWidget

Flutter中的StatelessWidget是一个不需要状态更改的widget - 它没有要管理的内部状态。
当您描述的用户界面部分不依赖于对象本身中的配置信息以及widget的BuildContext 时,无状态widget非常有用。
AboutDialog, CircleAvatar和 Text 都是StatelessWidget的子类。
无状态widget的build方法通常只会在以下三种情况调用:

  • 将widget插入树中时
  • 当widget的父级更改其配置时
  • 当它依赖的InheritedWidget发生变化时

StatefulWidget

StatefulWidget 是可变状态的widget。 使用setState方法管理StatefulWidget的状态的改变。调用setState告诉Flutter框架,某个状态发生了变化,Flutter会重新运行build方法,以便应用程序可以应用最新状态。

状态是在构建widget时可以同步读取的信息可能会在widget的生命周期中发生变化。确保在状态改变时及时通知状态 变化是widget实现者的责任。当widget可以动态更改时,需要使用StatefulWidget。 例如, 通过键入表单或移动滑块来更改widget的状态. 或者, 它可以随时间变化 - 或者数据推送更新UI

Checkbox, Radio, Slider, InkWell, Form, 和 TextField 都是有状态的widget,也是StatefulWidget的子类。

  • 如果用户交互或数据改变导致widget改变,那么它就是有状态的。
  • 如果一个widget是最终的或不可变的,那么它就是无状态。
0

评论 (0)

取消