功能:(复杂界面布局的数据更新)PullToRefreshScrollView实现下拉刷新/上拉加载更多

  写在前面!

经过一段时间的学习,我发现本文成功的介绍了一种错误的处理滑动布局嵌套的问题,本想删除,但是想想还是留下给同学们引以为戒吧,千万不能用这种饮鸩止渴的方式


下面开始一本正经的胡说八道,但是很多同学确实是这么想的,也确实是这么做的:

  注意:本文主要的内容是讲解如何实现整个页面的下拉刷新和上拉加载的动作,而具体的请求数据的逻辑,拉动动作的监听中该放什么逻辑都是要自行按需添加的,本文实现拉动动作的内容适合大家一起看,但是业务逻辑部分不适合,只作为示范,就不投稿了。若有浏览到本文的同学,可以找我细聊,因为有具体业务逻辑才能说明详细过程。

      在一个布局比较复杂的Activity界面中,有列表,有普通布局等,这些内容都是要定期更新的。对于一些信息更新很快的应用来说,比如文字直播类的每隔一分钟就有新货出来,那么用户在界面浏览时间较长时,希望可以手动的(下拉)刷新刚发布的数据;或者服务端的数据太多,不能一次性的全部呈现给客户端,那么就要分批(上拉)加载更多的内容,这样不至于一次加载大量数据造成拥堵。

        我们知道,在一个布局很多的页面中,一下不能显示全部的内容,当内容过多的时候就要使用ScrollView套在最外层的布局上,此时,只需要在ScrollView的外层再嵌套一个新的布局:PullToRefreshScrollView 即可实现整个布局的上拉和下拉动作,那么在更新数据的时候就在上拉和下拉的监听中请求数据即可实现想要的布局中的数据更新。

如何实现:

1:到这个百度云链接中下载该zip压缩包,实现本功能必备的压缩包,然后解压,将文件作为一个module 给import进你的项目中。步骤:File>New>Import Module,点击Source directory那一行最右边的点点点中,选择你下载并压缩后的文件,点击OK结束。

2:找到刚添加进来的module中的internal>PullToRefreshScrollView这个类,这就是本文要说的对象。在XML文件中,这个布局这样添加

该布局的嵌套使用示范

3:在Fragment或者Activity中使用,看看刷新的逻辑,这里只说核心代码

下图所示的代码,是添加在onCreate()方法中的自动刷新,监听上拉和下拉的方法。

那么上图中的getMomInformation是什么呢?即要请求的新数据,下面看看这个里面是什么

网络请求,即当页面有上拉/下拉的动作发生时就会调用请求的操作

那么上图中的橙色框中的方法是什么?即判断页面刚才发生的是上拉还是下拉的动作然后给出上拉/下拉的停止动作(不能一直刷新或者加载啊)

结束

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,638评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,300评论 4 61
  • 1、吃瘦你的下半身:香蕉含有丰富钾,又饱肚又低脂,可减少脂肪在身体的下半身堆积; 2、肌肤控油:急救法,先冷敷一下...
    瘦朵朵88阅读 873评论 0 0
  • 油画 作者:李继 一切都是枉然。深绿或浅黄 在枝头簇拥,在风中飘拂 丁香和蔷薇驾...
    胡不度阅读 3,066评论 2 8
  • 参考:http://www.52caml.com/head_first_ml/ml-chapter9-factor...
    jlinleung阅读 343评论 0 0