Flutter RefreshIndicator 下拉刷新组件 Material 风格的刷新效果

题记

—— 优美的应用体验 来自于细节的处理,更源自于码农的自我要求与努力,当然也需要码农年轻灵活的思维。


<p>盘点Flutter跨平台APP开发中使用到的进度条</p> </div> <p/> <p>Flutter是谷歌推出的最新的移动开发框架。RefreshIndicator 是 Material 风格的滑动刷新Widget ,效果是下拉刷新显示的加载圆圈。<br/> <img src="https://img-blog.csdnimg.cn/20201111075114234.png?x-oss-process=image/watermark,type\_ZmFuZ3poZW5naGVpdGk,shadow\_10,text\_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3psMTg2MDM1NDM1NzI=,size\_16,color\_FFFFFF,t\_70#pic\_center" alt="在这里插入图片描述"/></p> <hr/> <p>本文章实现Demo运行效果 如下:</p> <p><img src="https://img-blog.csdnimg.cn/20201111073753190.gif#pic\_center" alt="在这里插入图片描述"/></p> <p><strong>Demo配置如下</strong></p> <pre><code class="prism language-java"><span class="token comment">///下拉刷新组件</span> <span class="token keyword">class</span> <span class="token class-name">HomePageRefreshIndicator</span> <span class="token keyword">extends</span> <span class="token class-name">StatefulWidget</span> <span class="token punctuation">{<!-- --></span> <span class="token annotation punctuation">@override</span> \_TestPageState <span class="token function">createState</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token function">\_TestPageState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">class</span> <span class="token class-name">\_TestPageState</span> <span class="token keyword">extends</span> <span class="token class-name">State</span><span class="token generics function"><span class="token punctuation">&lt;</span>HomePageRefreshIndicator<span class="token punctuation">&gt;</span></span> <span class="token punctuation">{<!-- --></span> <span class="token annotation punctuation">@override</span> Widget <span class="token function">build</span><span class="token punctuation">(</span>BuildContext context<span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> <span class="token keyword">return</span> <span class="token function">Scaffold</span><span class="token punctuation">(</span> appBar<span class="token operator">:</span> <span class="token function">AppBar</span><span class="token punctuation">(</span> title<span class="token operator">:</span> <span class="token function">Text</span><span class="token punctuation">(</span><span class="token string">"下拉刷新"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token comment">//下拉刷新组件</span> body<span class="token operator">:</span> <span class="token function">RefreshIndicator</span><span class="token punctuation">(</span> <span class="token comment">//圆圈进度颜色</span> color<span class="token operator">:</span> Colors<span class="token punctuation">.</span>blue<span class="token punctuation">,</span> <span class="token comment">//下拉停止的距离</span> displacement<span class="token operator">:</span> <span class="token number">44.0</span><span class="token punctuation">,</span> <span class="token comment">//背景颜色</span> backgroundColor<span class="token operator">:</span> Colors<span class="token punctuation">.</span>grey<span class="token punctuation">\[</span><span class="token number">200</span><span class="token punctuation">\]</span><span class="token punctuation">,</span> onRefresh<span class="token operator">:</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> async <span class="token punctuation">{<!-- --></span> <span class="token comment">//模拟网络请求</span> await Future<span class="token punctuation">.</span><span class="token function">delayed</span><span class="token punctuation">(</span><span class="token function">Duration</span><span class="token punctuation">(</span>milliseconds<span class="token operator">:</span> <span class="token number">2000</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//结束刷新</span> <span class="token keyword">return</span> Future<span class="token punctuation">.</span><span class="token function">value</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token comment">//一个列表 </span> child<span class="token operator">:</span> ListView<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span> itemBuilder<span class="token operator">:</span> <span class="token punctuation">(</span>BuildContext context<span class="token punctuation">,</span> <span class="token keyword">int</span> index<span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> <span class="token keyword">return</span> <span class="token function">Container</span><span class="token punctuation">(</span> height<span class="token operator">:</span> <span class="token number">66</span><span class="token punctuation">,</span> child<span class="token operator">:</span> <span class="token function">Text</span><span class="token punctuation">(</span><span class="token string">"测试数据"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token comment">//列表数据源数量</span> itemCount<span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span> <span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </code></pre> <hr/> <p>【x1】微信公众号的每日提醒 随时随记 每日积累 随心而过 文章底部扫码关注</p> <p><a href="https://www.toutiao.com/c/user/token/MS4wLjABAAAAYMrKikomuQJ4d-cPaeBqtAK2cQY697Pv9xIyyDhtwIM/">【x2】各种系列的视频教程 免费开源 关注 你不会迷路</a></p> <p><a href="https://biglead.blog.csdn.net/article/details/93532582">【x3】系列文章 百万 Demo 随时 复制粘贴 使用</a></p> <p><a href="https://github.com/zhaolongs/flutter\_demo\_app/blob/master/lib/progress/test\_RefreshIndicator\_page.dart">【x4】一目了然的源码</a></p> <p><a href="https://www.zhihu.com/zvideo/1308873518554267648">【x5】简短的视频不一样的体验</a></p> <hr/> <p>不局限于思维,不局限语言限制,才是编程的最高境界。</p> <p>以小编的性格,肯定是要录制一套视频的,随后会上传</p> <p>有兴趣 你可以关注一下 <a href="https://www.toutiao.com/c/user/token/MS4wLjABAAAAYMrKikomuQJ4d-cPaeBqtAK2cQY697Pv9xIyyDhtwIM/">西瓜视频 — 早起的年轻人</a></p> <p>本文章 的源码<a href="https://github.com/zhaolongs/flutter\_demo\_app/blob/master/lib/progress/test\_RefreshIndicator\_page.dart">在这里</a><br/> <img src="https://img-blog.csdnimg.cn/20201031094959816.gif#pic\_center" alt="在这里插入图片描述"/></p>

本文同步分享在 博客“早起的年轻人”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang