16.第三方库导入与网络数据异步请求与展示
前言
在 iOS 开发中 我们经常使用 CocoaPods 等工具进行包管理。那么在 flutter 开发中又该如何进行呢?
一、 http
这是官方提供来一个网络库:http
点击复制

1.1 修改 pubspec.yaml 配置文件

1.2 更新依赖库

1.3 在使用的地方导入
二、 异步函数
2.1 简单汇总Service
简单汇总一下Service,便于后续使用。
2.2 发送请求
这里简单选择在 initState 中进行网络请求,调用移步方法
这里可以发现,和我们在 iOS 开发中的网络请求的调用形式有很大差别。iOS开发中我们都是通过回调的形式接收请求结果的。这里使用 await。
三、 数据模型转换
接收到网络数据后我们自然需要进行数据模型的转换。
3.1 定义数据模型
3.2 Json 转 Map
3.3 构建 Cell
Text
样式设置
缩略方式设置
设置最大宽度
Container
设置图片圆角
3.4 构建 ListView
3.5 效果

四、 Future & FutureBuilder
除了按照上面这种我们在 iOS 开发中一样常规的思路进行请求和展示外,再介绍另一种可以处理这种场景。
4.1 请求方法修改
之前的加载方法:
修改为:
4.2 ListView 修改
AsyncSnapshot
包含有绑定的 future 回调的数据,也包含异步任务的状态。我们可以用来判断是否展示加载页面。
4.3 看看效果

五、 结合上面两种方式
结合上面两种方式,这里使用 Future 调整加载数据的函数。
5.1 请求函数修改
5.2 回调处理
5.3 异常处理
通过 Future 我们也可以捕捉异常。
5.4 设置超时
六、 保留数据
总结
第一种方式更加接近我们 iOS 开发中的思路
第二种方式 Future & FutureBuilder 更加充分利用 Future 特性
而结合二者的方式则对我这个iOS刚入门Flutter的新手而言,更加熟悉同时也有一些新的体验
完整代码
Last updated
Was this helpful?