美文网首页kotlinAndroid知识Android技术知识
拒绝三方,拒绝上拉,简单实现分页加载 (附源码)

拒绝三方,拒绝上拉,简单实现分页加载 (附源码)

作者: 尘少少少 | 来源:发表于2017-06-07 15:46 被阅读143次

    本文为ListView的实现方式,
    想要RecyclerView的实现方式,
    可以克隆Bamboy合集的Git:
    https://github.com/Bamboy120315/bamboy.git

    在移动开发中,
    上拉加载、分页加载几乎是随处可见,
    各种第三方控件也层出不穷,
    但是我们真的需要第三方吗?
    第三方与我们的项目真的契合吗?
    用户体验一定好吗?

    现在就给大家分享下我的分页加载,
    我的方案不能称之为上拉加载,
    不是不能,
    而是不需要。
    看下效果就知道咯,
    为了更直观的表现,
    我把每一页的条目用不同的颜色来代替:


    这里写图片描述

    可以发现,
    我的方案与一般的上拉加载最大的不同,
    就是我的方案完全没有阻塞,
    只要不全部看完,
    就一直畅通无阻。

    而一般的都是还没看几条,
    就会提示你再拉一下,
    不但不友好,
    体验也不行。

    好了,
    介绍就到这里,
    下面开启干货模式。

    一、滑动加载
    说得那么高大上,
    是不是以为会很难很难?
    其实不然,
    关键只是一个监听而已。

    // ListView滑动监听,滑动到倒数第三个条目即开始读取下一页内容
    AbsListView.OnScrollListener scrollListener = new AbsListView.OnScrollListener() {
    
        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
        }
    
        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            // 判断是否快滚动到底部
            if (view.getLastVisiblePosition() >= view.getCount() - 4) {
                // 滚动到倒数第三个条目的时候,就开始读取下页内容
                loadData();
            }
        }
    };
    
    lv_list.setOnScrollListener(scrollListener);
    

    尘少一贯风格,
    就是这么简单。

    但是我要说的还没说完,
    既然我的优势是用户体验高,
    那我就将我的优势继续发挥咯。

    二、状态提示
    细心地用户会发现,
    我的列表底部有一行文字,
    “已加载全部商品”,
    但是这只是其中一种状态,
    它有四个状态:

        1、正常状态
              蓄势待发,
              随时可以加载下一页内容
    
        2、正在加载
              正在读取下一页内容,
              除非读取结束,
              否则不会改变。
              
              更重要的功能是防止异步带来的困扰,
              例如第三页数据还没回来,
              第四页就又开始请求了,
              有了这个状态,
              只需要在网络请求时做个小判断,
              我们就可以不再为异步而头疼了
    
        3、已加载全部
              当所有数据都已读取完毕,
              就是功德圆满的时刻,
              一切结束不解释。
    
        4、读取异常
              这个其实很常见,
              服务器异常、
              网络不畅等,
              这个时候这行文本就有了另一个功能,
              那就是点击重新加载。
              
              是不是很清新脱俗、
              通俗易懂?
    

    看到这里,
    是不是很想立刻体验一把呢?
    废话不多说,
    尘少老规矩,
    上源码:
    http://download.csdn.net/download/bamboy_/9736883

    本文为ListView的实现方式,
    想要RecyclerView的实现方式,
    可以克隆Bamboy合集的Git,
    更有全新的插件化列表哦:
    https://github.com/Bamboy120315/bamboy.git
    手机扫码下载App一睹为快:

    手机浏览器扫码直接下载安装

    相关文章

      网友评论

      本文标题:拒绝三方,拒绝上拉,简单实现分页加载 (附源码)

      本文链接:https://www.haomeiwen.com/subject/bifafxtx.html