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();
                }
            }));
  • 相关阅读:
    HTML(六)——表单验证、正则表达式、事件
    ADO。Net(二)——防止SQL注入攻击
    ADO.Net(一)——增、删、改、查
    【转】高性能服务器架构(High-Performance Server Architecture)
    【Python】使用Python将Shellcode转换成汇编
    【技术知识】恶意PDF文件分析-PDFdump的问题
    【逆向工具】IDA Python安装与使用
    【windows核心编程】HideProcess
    Virut.ce-感染型病毒分析报告
    【黑客免杀攻防】读书笔记11
  • 原文地址:https://www.cnblogs.com/shen-hua/p/5828422.html
Copyright © 2011-2022 走看看