天天看點

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();
            }
        });
    }