zoukankan      html  css  js  c++  java
  • RecyclerView 上拉加载下拉刷新

     RecyclerView 上拉加载下拉刷新

     <android.support.v4.widget.SwipeRefreshLayout
            android:id="@+id/teach_swipe"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <android.support.v7.widget.RecyclerView
                android:id="@+id/rv_recycler_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </android.support.v4.widget.SwipeRefreshLayout>
    public class RecyclerOnScrollListener extends RecyclerView.OnScrollListener {
        private LinearLayoutManager layoutManager;
        private LoadMoreData loadMoreData;
    
        public RecyclerOnScrollListener(LinearLayoutManager layoutManager, LoadMoreData loadMoreData) {
            this.layoutManager = layoutManager;
            this.loadMoreData = loadMoreData;
        }
    
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            int lastVisibleItem = layoutManager.findLastVisibleItemPosition();
            int totalItemCount = layoutManager.getItemCount();
            //dy>0表示向上滑动
            //lastVisibleItem >= totalItemCount - 2表示剩下两个
            if (lastVisibleItem >= totalItemCount - 2 && dy > 0) {
                loadMoreData.loadMore();
            }
        }
    
        public interface LoadMoreData {
            void loadMore();
        }
    }

     核心代码片段:------------------

     //下拉刷新
            mSwipeRefresh = (SwipeRefreshLayout) findViewById(R.id.teach_swipe);
            mSwipeRefresh.setSize(1);
            mSwipeRefresh.setColorSchemeColors(Color.RED, Color.GREEN);
            mSwipeRefresh.setProgressBackgroundColorSchemeResource(R.color.colorAccent);
            mSwipeRefresh.setOnRefreshListener(this);
    
     @Override
        public void onRefresh() {
            indexPage = 1;
            getData();
            mHandler.sendEmptyMessageDelayed(UPDATE, DELAY_TIME);
        }
    
    //上拉加载
            mRecyclerView.addOnScrollListener(new RecyclerOnScrollListener(layoutManager, new RecyclerOnScrollListener.LoadMoreData() {
                @Override
                public void loadMore() {
                    indexPage++;
                    getData();
                }
            }));
  • 相关阅读:
    C# ToString() 转字符串设置保留小数位数
    PHP生成随机字符方法
    PHP面向对象程序设计的61条黄金法则
    CakePHP manual 中文翻译3
    CakePHP manual 中文翻译6
    在ASP中常见的错误80004005信息和解决办法
    CakePHP manual 中文翻译1
    CakePHP manual 中文翻译4
    CakePHP manual 中文翻译8
    如何在html文件中包含其他html文件
  • 原文地址:https://www.cnblogs.com/shen-hua/p/5828422.html
Copyright © 2011-2022 走看看