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();
                }
            }));
  • 相关阅读:
    43 李新佳 实验1
    0909 编译之路
    读后感
    评论
    0302作业
    构建之法第四章
    Latency Compensating Methods in Client/Server Ingame Protocol Design and Optimization
    利用Ptrace在Android平台实现应用程序控制[转]
    Bit Twiddling Hacks[转]
    Unity3D实用工具汇总[转]
  • 原文地址:https://www.cnblogs.com/shen-hua/p/5828422.html
Copyright © 2011-2022 走看看