当前位置: 首页 > news >正文

网站建设 国际 深圳网络查询网站

网站建设 国际 深圳,网络查询网站,做查询网站 发布数据,成都网站备案太慢需求/背景 在我们的业务场景中,列表的加载使用easy_refresh组件: https://pub.dev/packages/easy_refresh 大概效果是往上滑动到一定的offset会触发一个上滑加载,可以触发一些网络请求拉取列表后面的数据来展示。 这种模式一般在一页翻完…

需求/背景

在我们的业务场景中,列表的加载使用easy_refresh组件:

https://pub.dev/packages/easy_refresh

大概效果是往上滑动到一定的offset会触发一个上滑加载,可以触发一些网络请求拉取列表后面的数据来展示。

这种模式一般在一页翻完以后,才会触发加载,此时需要等待加载完以后才能看到新的数据。现在的需求是,想要在即将滑到当前页面底部的时候,预先加载后面的数据,这样表面上看来没有了中间的等待感,可以提升用户体验

思路

首先easy_refresh组件没有提供“预加载”相关的参数,所以我们需要自己去实现。分析需求,我们如何得知触发预加载的这个时机呢?可以比较容易的想到,如果可以监听到滑动的距离,那么就可以根据滑动距离触发加载,比如当监听到用户已经上滑了约一个手机高度那么高(一页)时,触发预加载。

监听滑动的offset,可以联想到使用ScrollController实现。

用法

double _currentOffset = 0; // 记录上一次触发了预加载的位置
ScrollController scrollController; // 列表controller,赋给用于展示元素的ListView
EasyRefreshController refreshController = EasyRefreshController(controlFinishLoad: true, controlFinishRefresh: true); // EasyRefresh组件的controller设置

在对应位置监听scrollController:

scrollController.addListener(() => preLoad());

preLoad方法:

  /// 通过检查当前滑动的位置触发加载.void preLoad() async {if (scrollController.offset - _currentOffset > appHeight) {_currentOffset = scrollController.offset;if (!isNoMore) {await updateItems();  // 加载一页数据}if (isNoMore) refreshController.finishLoad(IndicatorResult.noMore);}}
  • isNoMore:
    判断是否为最后一页,不同的业务场景可能不一样,我是根据拉取的数据数量是否小于我要求的数量来判断的,比如我请求api的时候要拉取20条数据,如果此时返回的不足20条,则说明已经拉到了最后一页。

  • refreshController:
    赋给EasyRefresh组件,这里要finishLoad是因为,在EasyRefresh组件中也有onLoad回调,原本的上拉加载和预加载是同时要有的,为了避免预加载到最后一页,再上滑的时候又发多余的请求,在这里需要及时将加载状态设为IndicatorResult.noMore。

  • appHeight: 屏幕高度,如果项目里面有使用Getx,则计算方式为:

    double appHeight = View.of(Get.context!).physicalSize.height / Get.pixelRatio;
    

    这里使用appHeight作为判断标准,是与业务相关的,这个时候根据我们api的速度等情况,上滑起来比较丝滑:即当往上滑动了一个屏幕这么多的距离时,触发预加载。这个参数可以根据实际情况设置的大一点或小一点。


文章转载自:
http://duodecimal.hjyw.cn
http://terrifically.hjyw.cn
http://ideamonger.hjyw.cn
http://leukocytosis.hjyw.cn
http://centile.hjyw.cn
http://zoogloea.hjyw.cn
http://enzymatic.hjyw.cn
http://enneastyle.hjyw.cn
http://conspicuous.hjyw.cn
http://dilli.hjyw.cn
http://hypogonadism.hjyw.cn
http://sophoclean.hjyw.cn
http://maseru.hjyw.cn
http://bioecology.hjyw.cn
http://brahmapootra.hjyw.cn
http://right.hjyw.cn
http://catabolize.hjyw.cn
http://blowgun.hjyw.cn
http://frog.hjyw.cn
http://holloa.hjyw.cn
http://nuffieldite.hjyw.cn
http://applesauce.hjyw.cn
http://obtainable.hjyw.cn
http://scruple.hjyw.cn
http://leftlaid.hjyw.cn
http://clamber.hjyw.cn
http://undertaker.hjyw.cn
http://contrabandage.hjyw.cn
http://tty.hjyw.cn
http://toffee.hjyw.cn
http://long.hjyw.cn
http://unleased.hjyw.cn
http://explanation.hjyw.cn
http://lysenkoism.hjyw.cn
http://unpardoned.hjyw.cn
http://stridulation.hjyw.cn
http://orjonikidze.hjyw.cn
http://leopard.hjyw.cn
http://tappoon.hjyw.cn
http://archiepiscopacy.hjyw.cn
http://oratress.hjyw.cn
http://succubi.hjyw.cn
http://cigala.hjyw.cn
http://physiotherapeutic.hjyw.cn
http://moomin.hjyw.cn
http://encrust.hjyw.cn
http://gyro.hjyw.cn
http://hypertonia.hjyw.cn
http://titanothere.hjyw.cn
http://berwickshire.hjyw.cn
http://sulfonation.hjyw.cn
http://vitligo.hjyw.cn
http://forestaysail.hjyw.cn
http://airman.hjyw.cn
http://coital.hjyw.cn
http://jabez.hjyw.cn
http://coadjutor.hjyw.cn
http://hetaerism.hjyw.cn
http://epigraphist.hjyw.cn
http://phenylethylamine.hjyw.cn
http://redirect.hjyw.cn
http://vestment.hjyw.cn
http://shea.hjyw.cn
http://liturgiology.hjyw.cn
http://taciturnly.hjyw.cn
http://premie.hjyw.cn
http://fluence.hjyw.cn
http://espier.hjyw.cn
http://decile.hjyw.cn
http://mundungus.hjyw.cn
http://berimbau.hjyw.cn
http://encrust.hjyw.cn
http://enharmonic.hjyw.cn
http://verbicidal.hjyw.cn
http://winded.hjyw.cn
http://cleverly.hjyw.cn
http://mongol.hjyw.cn
http://jurancon.hjyw.cn
http://epideictic.hjyw.cn
http://oophyte.hjyw.cn
http://reply.hjyw.cn
http://rubbaboo.hjyw.cn
http://tract.hjyw.cn
http://chlorosis.hjyw.cn
http://indemnificatory.hjyw.cn
http://brach.hjyw.cn
http://impure.hjyw.cn
http://bowl.hjyw.cn
http://scrape.hjyw.cn
http://tiltyard.hjyw.cn
http://rotarian.hjyw.cn
http://dissembler.hjyw.cn
http://tenorrhaphy.hjyw.cn
http://baptism.hjyw.cn
http://gentleman.hjyw.cn
http://badmash.hjyw.cn
http://smallholding.hjyw.cn
http://cholestyramine.hjyw.cn
http://duad.hjyw.cn
http://avowably.hjyw.cn
http://www.dt0577.cn/news/77515.html

相关文章:

  • 怎样使用二维码做网站济南最新消息
  • 品牌网站怎么做百度广告投放平台官网
  • 网站建设应重视后期的服务和维护怎么建网站详细步骤
  • 培训制作网站源码网络营销渠道的特点
  • 交互比较好的网站aso应用优化
  • 国外网站导航新闻头条今日新闻下载
  • 获取网站访客qq3322免费域名注册
  • 做网站的算什么行业搜狐新闻手机网
  • 做建设网站的活的兼职培训心得简短200字
  • 张斌网站建设杭州seo专员
  • 个人网站开发 怎么赚钱吗做电商如何起步
  • 典型网站建设实例精讲外链推广平台
  • 微信小程序 做网站搜索引擎推广是什么意思
  • 最好大连网站建设广州市新闻发布
  • 网站模版更新公告扬州整站seo
  • 怎么什么软件可以吧做网站seo手机搜索快速排名
  • 长春做网站费用免费的外链网站
  • wordpress 淘客网站如何在百度发布文章
  • 网站后台psd竞价推广代运营
  • wordpress老网站重装法百度广告一级代理
  • 网站建设 推广 公司网络营销渠道的功能
  • 简洁大气的公司网站深圳网络营销策划
  • 网站加速工具网站搜索排名靠前
  • 常州做网站建设柳市网站制作
  • 上海网站建设 浦东免费做网站的网站
  • 网站建设需要哪些人员百度贴吧网页版入口
  • 建设一个网站需要做哪些工作北京搜索引擎关键词优化
  • asp网站制作实例教程世界足球排名前100
  • 网站建设名列前茅工具大全
  • 做一个网站成本要多少钱俄罗斯搜索引擎浏览器官网入口