- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
详解Flutter如何使用Completer实现防抖功能
_buildContainer(Colors.lightBlue,constFlexible(
child:Text(这是一个项目,maxLines:1,overflow:TextOverflow.ellipsis,))),
_buildContainer(Colors.red,constFlexible(
fit:FlexFit.tight,
child:Text(这是一个项目,maxLines:1,overflow:TextOverflow.ellipsis,))),
_buildContainer(Colors.purple,Flexible(
fit:FlexFit.tight,
child:Text(这是一个项目*6,maxLines:1,overflow:TextOverflow.ellipsis,))),
_buildContainer(Colors.blue,Expanded(
child:Text(这是一个项目*6,maxLines:1,overflow:TextOverflow.ellipsis,))),
],),
Container_buildContainer(Colorcolor,Widgetchild){
returnContainer(
height:56,
color:color,
child:Row(
children:[
constSizedBox(width:16),
constText(来源:),
child,
constSizedBox(width:8),
Container(
padding:EdgeInsets.all(5),
decoration:constBoxDecoration(
color:Colors.cyan,
borderRadius:BorderRadius.all(Radius.circular(6))
child:Text(项目),
constSizedBox(width:16),
classDebouncer{
finalDurationdelay;
Completer_lastCompleter;
Timer_timer;
Debouncer({requiredthis.delay});
voidrun(Functionaction){
//如果之前的操作还没有完成,取消它
if(_lastCompleter!=null!_lastCompleter!.isCompleted){
_lastCompleter!.completeError(Cancelled);
_lastCompleter=Completer();
//重置计时器
_timer.cancel();
_timer=Timer(delay,(){
action();
_lastCompleter!.complete();
//处理取消操作
_lastCompleter!.future.catchError((error){
print(操作被取消);
打印如下:
在这个示例中:
Debouncer类包含了防抖逻辑。run方法接受一个要执行的动作,并且确保在连续调用时,只有最后一次调用会在指定的延迟后执行。当run方法被连续调用时,它会通过Completer取消前一个还未完成的动作,并重新开始计时。只有在延迟时间过去且没有新的调用时,最后一次动作才会执行。
这种方法可以有效地限制事件(如用户输入、按钮点击等)的处理频率,从而优化性能和资源利用。在实际应用中,大家可能需要根据具体情况调整延迟时间和处理逻辑。
您可能关注的文档
最近下载
- 成人氧气吸入疗法护理-中华护理学会团体标准.pptx VIP
- 2025年1月浙江浙江省普通高校招生信息技术选考真题卷.doc VIP
- 网络与信息安全管理员职业技能竞赛理论考试题及答案 .pdf VIP
- 建筑工程图集 01K403、01(03)K403:风机盘管安装(含2003年局部修改版).pdf VIP
- 工学一体化课程《小型网络管理与维护》任务2单元7教学单元活动方案.docx VIP
- 工学一体化课程《小型网络管理与维护》任务2单元6教学单元活动方案.docx VIP
- 中医护理门诊工作制度、岗位职责、安全管理制度.docx VIP
- 各类工作票和操作票模板.pdf VIP
- 公卫执业医师《学校、儿童少年卫生学必看考点》考试题.doc VIP
- 人工智能时代高职综合英语课程思政的融合与创新.pdf VIP
文档评论(0)