Android使用RecyclerView+SwipeRefreshLayout进行拉下刷新

来源:互联网 发布:gre词汇 知乎 编辑:程序博客网 时间:2024/06/05 05:57
super.initData();mPaipu_tuijian = new Paipu_tuijian(getContext(), mRecyclerView);GetDataNet(false);mSwipeRefreshWidget.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {    @Override    public void onRefresh() {        GetDataNet(false);        new Thread(new Runnable() {            @Override            public void run() {                mSwipeRefreshWidget.setRefreshing(false);            }        }).start();    }

});

首先填充适配器,然后设置是否执行刷新操作

重要的位置就是一个滑动代码

 mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {            @Override            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {                super.onScrollStateChanged(recyclerView, newState);                if (newState  == RecyclerView.SCROLL_STATE_IDLE && lastVisibleItem+1 == mPaipu_tuijian.getItemCount()){                    GetDataNet(true);                    mPaipu_tuijian.changeMoreStatus(Paipu_tuijian.PULLUP_LOAD_MORE);                }            }            @Override            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {                super.onScrolled(recyclerView, dx, dy);                lastVisibleItem = linearLayoutManager.findLastVisibleItemPosition();//                getPositionAndOffset();                Log.e("TAG","lastVisibleItem我是当前的位置-------"+lastVisibleItem);            }        });
记录最后一次加载的位置,当刷新的时候定位过去


  //滚动到指定的位置    private void scrollToPosition(){        if (mRecyclerView.getLayoutManager()!=null&&lastPosition>=0){            mRecyclerView.scrollToPosition(lastVisibleItem);//            ((LinearLayoutManager)mRecyclerView.getLayoutManager()).scrollToPositionWithOffset(lastPosition,lastVisibleItem);        }    }

阅读全文
0 0