首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Flutter】ListView 列表高级功能 ( ScrollController 上拉加载更多 )

文章目录 一、ScrollController 上拉加载更多 二、ScrollController 使用流程 三、ScrollController 判定滑动到底部 四、完整代码示例 五、相关资源 一、ScrollController...上拉加载更多 ---- 在 FLutter 中 , 所有的列表都支持设置一个 ScrollController 类型的参数 , 设置 ScrollController , 用于控制上拉加载更多内容 ;...列表组件中设置 controller 属性 ; /// 列表组件 child: ListView( controller: _scrollController, /// 设置上拉加载更多 children..._loadMore(); } }); 加载更多方法 : /// 上拉加载更多 _loadMore() async { /// 强制休眠 1 秒...垂直列表 /// RefreshIndicator 下拉刷新 /// ScrollController 上拉加载更多 void main() { runApp(MyApp()); } class

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    FlatList ListView SectionList 下拉刷新 上拉加载 彻底解决

    关于 RN 里面的上拉加载一直是个问题。 至于 FlatList SectionList 自带的上拉加载功能,根本就是骗人的。 不满屏就回调,上拉若干次后则不再回调 等等,且不想再吐槽。...有点: 支持上拉和下拉刷新 不用做任何标志位标志上拉下拉 支持无更多数据功能 支持代码使其自动下拉刷新(场景:第一次页面加载完毕,自动下拉) 内容超过屏幕,距离滑动到底部 30 单位,自动回调上拉 待完善...: 支持自定义上拉、下拉提示文本 支持自定义距离上拉完毕一定距离触发上拉回调。...但是 npm 还没有更新 ----------------------------- 更新 ----------------------- 只更新了 github 源码 更新内容 修复了有时上拉加载还会加载两次的问题...每个均可自定义样式 可使用自定义空视图 iOS增加了上拉加载手机震动 目前我使用的 0.50.3 RN 自带的震动是强震动。

    4K30

    【Flutter 专题】图解 ListView 下拉刷新与上拉加载 (一)

    和尚上次学 ListView 时,只学习了一下异步请求数据加载新闻和 Loading 等待的小知识点,但对于新闻列表数据的更新和加载更多是必不可少的,而实现【下拉刷新】与【上划加载更多】的方式有很多种...ListView 变更为 new Refresh,和尚主要是处理 onHeaderRefresh 下拉刷新 和 onFooterRefresh 底部刷新 两个方法中的数据处理。...ScrollController controller, ScrollPhysics physics}) { return new Container( child: new ListView.builder...问题一:初始化进入页面后,加载完第一页之后刷新数据不加载,第二次刷新数据才加载,且加载的是上一次刷新的数据?...,但是都是第二次刷新才加载第一次刷新的数据,接口是正常的,但是数据总是慢一拍,和尚测试发现因为没有用 setState(() {}); 以后一定要注意,这样才可以实时进行更新。

    1.7K31

    【Flutter 专题】图解 ListView 下拉刷新与上拉加载 (二)

    和尚上次尝试 ListView 异步加载列表数据时,用了三方库 flutter_refresh,这种方式使用很简单。但列表数据的加载也绝非一种,和尚这次准备用原生尝试一下。...和尚这次的列表并没有单独处理动画效果,只是对数据的刷新与加载更多进行正常加载进行处理,还需要进一步的学习研究。 ?...ListView + NotificationListener 和尚参考了很多大神的实现方式,发现 NotificationListener 很像 Android 的滑动监听事件,再顶部和底部添加事件处理...= 0) { childWidget = new Padding( padding: EdgeInsets.all(2.0), child: new ListView.builder...new EdgeInsets.fromLTRB(0.0, 35.0, 0.0, 0.0), child: new Center( child: new Text('正在加载中

    1K21

    实现 RecyclerView 上拉加载及自动加载

    之前在《一步步打造自己的通用上拉加载布局》(如果没有看过,建议先看下这一篇)写到如何实现一个通用的上拉加载布局,本文将基于此进行扩展,实现 RecyclerView 的上拉加载及自动加载。...之前在《一步步打造自己的通用上拉加载布局》(如果没有看过,建议先看看这一篇)写到如何实现一个通用的上拉加载布局,本文将基于此进行扩展,实现 RecyclerView 的上拉加载及自动加载。...在之前的《一步步打造自己的通用上拉加载布局》已经提到,下拉刷新是将获取到的数据替换掉原有的数据,而上拉加载则是将获取到的数据插入到原来数据的末尾与底部提示加载的 View(如FooterView)之间,...准备工作 由于在中已经把上拉的逻辑都封装好,因此这里主要是对的及自动加载的封装。...这个 Adapter 如下,代码可不必细看,它是上拉加载的副产品,不是主要逻辑,于这里贴出只是交底。

    1.5K90

    vue上拉加载更多组件

    我想,工作一段时间的都碰见过上拉加载更多需求,现在这种插件也蛮多的,也很多是把上拉加载下拉刷新结合。...但是这些组件都有一个问题,就是下拉到最底部,刷新浏览器,浏览器会记住这个距离,从而触发上拉加载的方法。虽然这个小问题在正常情况下没什么影响,于是自己就研究研究,写了一个上拉加载更多的组件。...要写上拉加载其实还分两种场景,一种是相对window,也就是相对于可视窗口,一种是在一个容器内。大部分使用场景是相对窗口,所以暂时只写了一个相对于window的。...上拉加载原理简单来说就是判断内容是否到达底部。容器自身的高度加上距离顶部的距离就是现在整个页面的高度。整个页面的高度减去可视窗口的高度再减去滚动条移动的距离,当接近0的时候就是到达底部的时候。...明白了这个原理上拉加载就很好实现了。 标签: 这边使用了vue的slot插槽。

    2.1K10

    基于SwipeRefreshLayout的上拉加载控件

    实际项目中,后台肯定的接口肯定都是分页的,那么,分页加载也是自然而然的事,下面基于Google原生的下拉刷新控件SwipeRefreshLayout,实现上拉加载更多的功能。...private ListView mListView; // 上拉监听器, 到了最底部的上拉加载操作 private OnLoadListener mOnLoadListener...与mDownY一起用于滑动到底部时判断是上拉还是下拉 private int mMoveY; // 是否在加载中 (上拉加载更多) private boolean mIsLoading..., 条件是到了最底部, ListView不在加载中, 且为上拉操作....由于SwipeRefreshLayout本身就是下拉加载控件,这样封装后,该控件就具备了下拉刷新上拉加载更多的功能,用法没有任务变化: <com.jackie.sample.custom_view.CustomSwipeRefreshLayout

    88510

    上拉加载下拉刷新了解下

    height: 1rem;这里的高度应该与刷新文字一样高 position: fixed; z-index: 100; } 2.功能实现的重头戏是在逻辑上,...this.refreshTouchMovee); this.el.removeEventListener('touchend', this.refreshTouchEnd);//具体的函数,我们直接在位置计算中看 位置计算 我们分下拉刷新,上拉加载两块计算...,分析可得 下拉刷新的逻辑 = 当前页面的首项在屏幕中且容器向下滑动的距离大于一定值 上拉加载的逻辑 = 当前页面已滑动到底部 好,我们直接看具体的实现逻辑代码 //代码中包含界面变化和数据更新,仔细看哦...$store.commit('bottomShowTrue');//松开后底部就biu的出现啦 if (this.bottomFlag) {//若符合上拉加载的条件,则直接进行数据更新...this.tipText = '数据加载中

    1.7K20

    优雅地实现RecyclerView的上拉加载

    RecylerView 上拉加载更多 上拉加载的多状态 ---- 这篇博客是承接上一篇博客--探索Android架构的DataLayer层(DataManager方式)具体实现,其实是上篇博客的一个使用比较普遍的例子...,当然如果把上一篇博客设计的数据加载回调接口提炼出来也是可以做一篇单独的文章。...先说说我们希望的RecycerView应该有的样子:上拉加载更多,没有更多,加载错误然后点击重试。...先谈谈思路,其实很简单,就是通过getItemViewType()加载不同的布局,这里就是把加载更多布局封装进adapter中。...接着上篇写的数据加载接口来看,开始加载的时候加入加载的itemView,完成加载后去掉它。通过给RecyclerView添加的滑动事件来判断加载时机。

    95340

    react native实现上拉加载下拉刷新

    前言 我们在做原生app开发的时候,很多场景都会用到下拉刷新、上拉加载的操作,Android中如PullToRefreshListView,ios中如MJRefresh等都是比较好用,且实现上比较简单的第三方库...他们的实现原理大体相同,都是在列表的基础上新增头部和尾部,然后新增手势触摸的逻辑判断。那么对于react native,我们也可以用相同的原理来实现。...topIndicatorRender:顶部刷新时候执行的方法(里面三个参数代表三种不同的状态) pulling:正在下拉的状态 Pullok:已经拉倒位置,可以放手的状态 pullrelease: 放手加载的状态...renderHeader:渲染头部的方法,如: 上拉刷新控件...使用 该组件使用也是相当的简单和方便,来看ListView中如何使用: import PullRefreshScrollView from 'react-native-pullrefresh-scrollview

    4.7K80

    实现 iOS 无感知上拉加载更多

    什么是无感知上拉加载更多 什么是无感知,这个这样理解:在网络情况正常的情况下,用户对列表进行连续的上拉时,该列表可以无卡顿不停出现新的数据。...如果要体验话,Web 端很多已经做到了,比如掘金的首页,还有比如掘金 iOS 的 App,列表都是无感知上拉加载更多。 说来惭愧,写了这久的代码,还真的没有认真思考这个功能怎么实现。...网上的思路(二) 然后在继续的搜索中,我看到了另外一个方案: 很多时候我们上拉刷新需要提前加载新数据,这时候利用 MJRefreshAutoFooter 的属性 triggerAutomaticallyRefreshPercent...MJRefreshComponent 从本质上更像虚基类。 总结 如果不是掘友提出这个问题,我可能都不会太仔细的去研究这个功能,也许继续普普通通的使用一般的上拉加载更多就够了。...iOS 关于列表上拉(平滑加载数据)自动加载数据的问题[1] MJRefresh小技巧(上拉提前刷新)[2] 参考资料 [1] iOS 关于列表上拉(平滑加载数据)自动加载数据的问题: https:/

    2.3K40
    领券