Flutter 网络请求类封装及搜索框实现
在 Flutter 中定时器相对 iOS 来说比较好的一点就是定时器事件的执行不会受视图拖拽的影响,不涉及到模式。但是需要注意一点的是在页面离开的时候要对定时器进行销毁。
成都创新互联公司从2013年创立,先为海沧等服务建站,海沧等地企业,进行企业商务咨询服务。为海沧企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
开始的时候我们是在页面中直接使用三方框架 http 进行网络的请求,这里不好的一点就是如果将来我们更换了网络请求框架的话,项目中涉及到网络的请求的地方都需要改动,对项目的影响会比较大。所以这里我们自己封装了一个网络请求类,定义自己的网络请求方法,即使将来更换三方框架的话,我们只需要在我们自己网络请求类里面更换就好,项目的其他地方不用改动。对网络请求进行封装,相信不管是 iOS 项目还是安卓项目肯定也都是这样做的。
这里我们是基于 Dio 这个三方框架进行封装的,在 HttpManager 类中我们定义了 Dio 的单例对象 _dioInstance ,通过单例方法 _getDioInstance 来获取单例对象。我们定义了 post 跟 get 两个静态方法,在这两个方法中我们都调用了私有方法 _sendRequest , _sendRequest 方法中通过该传入的枚举参数 HttpMethod 来区分 Dio 单例对象是调用 get 还是 post 请求。这里需要注意的是方法中一定要使用 async ,返回值前要加 await 。
在聊天页面中我们可以看到顶部的搜索框,这个搜索框是跟列表一起滚动的,所以比较好的实现方式就是把搜索框定义为一个 cell 。其实这个搜索框只有点击事件,点击之后跳转一个新的页面,所以我们只需要使用小部件来实现搜索框的展示就好。搜索框由白色底视图跟图片和文本组成,所以这里我们通过 Stack 部件来实现, children 的第一个元素为白色底视图,图片跟搜索文字用 Row 部件来实现,图片跟文字布局左右排列。
Flutter倒计时定时器(一)
写一个倒计时定时器听起来真的好简单,然而在Flutter里面写这个东西还是挺坑的。
原本以为创建一个Timer就一切都搞定了,但并没办法实时获取倒计时的进度。
看了一下源码,我们还可以创建一个周期性的Timer,从打印结果可以看到Timer的tick是从1开始的。
我们修改一下做一个倒计时获取重新获取验证码的功能。
Flutter ----- Timer(定时器)
Timer 官网
Timer 类存在于dart:async内,所以我们需要先导入
回调只需要一次:
回调多次的定时器:
基本用法如上所述,至于倒计时,延迟执行....... 自由发挥。
网页标题:flutter定时的简单介绍
网页地址:http://scyingshan.cn/article/dsddjgc.html