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();
                }
            }));
  • 相关阅读:
    Cocos2d-x基础篇C++
    wamp+thinkphp环境配置
    bootstrap table笔记
    写后台SQL的一些心得
    mybatis代码自动生成
    Maven+SpringMVC+MyBatis 上传图片
    五毛的cocos2d-x学习笔记08-动画
    五毛的cocos2d-x学习笔记07-计时器、数据读写、文件读写
    五毛的cocos2d-x学习笔记06-处理用户交互
    学习python笔记 协程
  • 原文地址:https://www.cnblogs.com/shen-hua/p/5828422.html
Copyright © 2011-2022 走看看