flutter书城页面,flutter小说阅读器

flutter 页面的生命周期(转)

转自

襄城ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

在 Flutter 中,有两类常用的 Widget:

在开发过程中,我们经常需要继承它们两来实现自己的 Widget。

一个 StatelessWidget 是不能被改变的,比如: Icon 、 Text 等。

如果你的控件一旦显示,就不需要再做任何的变更,那么你应该使用 StatelessWidget 。

实现一个自己的 StatelessWidget 很简单。

当你看到下面这个例子?时,你就知道它有多简单了。

看,只要在 build() 中返回你的视图就可以了。

一个 StatefulWidget 是有状态的,可变的。

它可以改变自己的外观,以响应用户的操作或者数据的变化。

比如: CheckBox 、 Switch ..

我们之所以能够改变一个 StatefulWidget ,是因为它有一个设置状态的函数:

调用这个函数后,就会触发 StatefulWidget 的视图树重建。

因此,当我们需要一个可交互的,即能根据用户操作或数据变化而改变视图的 Widget 时,那就得用上 StatelessWidget 了。

现在,来创建一个自定义的 StatefulWidget:

从上面的例子中可以看到, StatefulWidget 会要求提供一个含有视图树的 State 。

既然 State 能够控制一个视图的状态,那它肯定会有一系列的生命周期。

上图就是 State 的生命周期图。

flutter刷新页面的方法

这种方法最常见,但是有些地方引用的话,刷新的成本比较大,刷新的是整个页面,数据太多加载太慢的话,会有闪烁的现象

这种方法类似于iOS中的set方法,通过设置某个属性的时候,去刷新某个控件。在flutter中这种刷新方式,是对上面setState(){}方法的改进,根本的方法还是setState(){},只不过是通过方法去刷新某个控件。如下:

首先在pubspec.yaml中添加provider依赖

下面通过provider来实现一个发送验证码的案例。

创建一个TimerModel文件

页面布局如下:

flutter页面的绘制和管理

Element管理Widget和RenderObject。

widget保持显示当前的页面状态,当widget产生点击等交互,调用setState()改变element中管理的state,


分享标题:flutter书城页面,flutter小说阅读器
网站URL:http://myzitong.com/article/dscpjsd.html