Stateful Widgets

什么时候需要Stateful Widget?

  当需要跟用户进行交互时,我们希望,页面上的部分widgets根据用户的操作和指令,做出相应的响应时

Stateful Widget的组成

Stateful Widget由两部分组成:

  • 继承自StatefulWidget的类(the class that extends StatefulWidget)
  • 继承自State的类(the class that extends State)
the class that extends StatefulWidget
  • 这个类会在其createState方法中创建一个State对象
  • 这个类的实例的生存期比其State对象的实例的生成期短
  • 这个类中的数据不可改变
  • 这个类通过构造函数传递信息,与Stateless Widget一样
  • 当数据需要更改时,这个类就会被新创建出来的类取代
the class that extends State
  • 该类中的数据可以改变
  • 它使用build方法来构造UI组件
  • 它可以对用户事件进行响应

Stateful widget的 Build 方法

  • Stateful Widget 通过其继承了State的类中的build方法,来构造UI组件
  • 这种组件可以改变状态,并且实现重绘/渲染
  • 当调用Stateful Widget的setState方法时,其build方法会被重新调用

生命周期有关的方法(LifeCycle Methods)

  1. the class that extends StatefulWidget

    • createState()
  2. the class that extends State

    • build()
      当Widget需要重绘时,Flutter就会调用该方法
    • initState()
      当每次Widget被创建的时候,Flutter也会调用这个方法
    • didChangeDependencies()
      当Flutter检测到数据信息改变导致UI改变调用build方法时,就会调用这个方法;注意,当setState()被调用时,该方法不会被调用
    • didUpdateWidget()
      当Flutter必须丢弃继承自StatefulWidget的类并将其用一个新的类替代时,就会调用这个方法,来将现有的State类与新的StatefulWidget类联系起来
    • setState()
      当需要更新UI或者调用build方法时,可以调用这个方法
    • deactivate()
      当State类从Tree上移除时,就会调用这个方法。主要用于State对象可以从一个Tree移到另一个Tree的时候
    • dispose()
      当继承了State类的对象被销毁时,Flutter就会调用这个方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值