天天看点

Android swiperefreshlayout 实现上拉刷新 加载

swiperefreshlayout是V4包下控件 安卓自带,不需要导入任何依赖

private void initPullRefresh() {
        /**
         * 下拉刷新回调方法
         */
        srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                //前面添加数据 用集合传过去
                Toast.makeText(MainActivity.this,"刷新",Toast.LENGTH_SHORT).show();
                if(data!=null&&data.size()!=0){
                    data.clear();
                }
     
                initData(page);//请求主页数据
                ada.notifyDataSetChanged();
                srl.setRefreshing(false);//关闭
            }
        });
    }
           
private void initLoadMoreListener() {
 
   //对Recyclerview 的一个滑动监听
  rv.setOnScrollListener(new RecyclerView.OnScrollListener() {
            int lastVisibleItem ;
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);

                //判断RecyclerView的状态 是空闲时,同时,是最后一个可见的ITEM时才加载
                if(newState==RecyclerView.SCROLL_STATE_IDLE&&lastVisibleItem+1==ada.getItemCount()){
                    Toast.makeText(MainActivity.this,"加载",Toast.LENGTH_SHORT).show();
                    initData(page++);//请求主页数据
                    ada.notifyDataSetChanged();
                }
            }
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);

                LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
                //最后一个可见的ITEM
                lastVisibleItem=layoutManager.findLastVisibleItemPosition();
            }
        });
    }