zoukankan      html  css  js  c++  java
  • RecyclerView 监听滑动条滚动事件触发load more

    //倒数第几个开始加载
        private int mCountDown = 1;
        //上一次加载点 所在recyclerview 中的位置
        private int mExLoadPos = -1;
    
        private OnLoadMore mOnLoadMore;
    
    
        private LinearLayoutManager mLinearLayoutManager;
    
        public EndlessRecyclerOnScrollListener(LinearLayoutManager linearLayoutManager, OnLoadMore onLoadMore) {
            this.mLinearLayoutManager = linearLayoutManager;
            mOnLoadMore = onLoadMore;
        }
    
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
    
            int loadPos = recyclerView.getAdapter().getItemCount() - mCountDown;
            //最后一个可见视图在 recyclerview  中的位置
            int lvvPos = mLinearLayoutManager.findLastVisibleItemPosition();
    //        System.out.println("last:" + mExLoadPos + " loadpos:" + loadPos + " lvvPos:" + lvvPos + " dy:" + dy);
            //当指定 加载点视图 小于等于最后可见视图,且 向下滑动; 加载机会
            if (dy > 0 && loadPos <= lvvPos) {
                doLoadMore(loadPos);
            }
    
        }
    
        private synchronized void doLoadMore(int loadPos) {
            if (mExLoadPos != loadPos) {
                //如果上一次加载点 和本次加载点不同,则可以加载,含括 lastloadpos > loadpos && lastloadpos < loadpos
    //            System.out.println("start load more");
                mExLoadPos = loadPos;
                mOnLoadMore.onLoadMore();
            }
        }
    
        public interface OnLoadMore {
            void onLoadMore();
        }
    
        public int getmCountDown() {
            return mCountDown;
        }
    
        public void setmCountDown(int mCountDown) {
            this.mCountDown = mCountDown;
        }

    主要用于监听竖直方向滑动事件,当达到设定值  CountDown 时 触发 load more 事件,多用于加载更多内容

  • 相关阅读:
    事件模型
    用jQ实现一个简易计算器
    自学如何去学习jQuery
    用原生的javascript 实现一个无限滚动的轮播图
    Android 代码注解初学者
    安卓实现textView次行缩进效果
    安卓 checkBox添加左边距
    安卓 垂直SeekBar
    安卓 API 19 低版本设置单选按钮替换
    安卓BLE测试apk
  • 原文地址:https://www.cnblogs.com/fantasy-es/p/4623533.html
Copyright © 2011-2022 走看看