RecyclerView的上拉刷新,和下拉加载

<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/srefresh"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/desc_recview"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v7.widget.RecyclerView>

</android.support.v4.widget.SwipeRefreshLayout>

//设置刷新
srefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
    @Override
    public void onRefresh() {
        Toast.makeText(Desc_listActivity.this,"正在刷新",Toast.LENGTH_SHORT).show();
//此处可以重新获取数据 
     srefresh.setRefreshing(false);
    }
});

//设置下拉加载更多
dec_review.setOnScrollListener(new RecyclerView.OnScrollListener() {//给recycleview设置滑动监听
    int last;//记录最后一条数据的下标
    @Override
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);
//判断当滑动静止,并且数据的长度等于适配器获得的集合的长度
 if(newState==RecyclerView.SCROLL_STATE_IDLE&&last+1==ada.getItemCount()){//当滑动为静态时候,并且等于最后一条数据
            Toast.makeText(Desc_listActivity.this,"加载更多",Toast.LENGTH_SHORT).show();
            ada.addAll((ArrayList<Sort_list.DataBean>) data);//通过方法,添加更多数据
            ada.notifyDataSetChanged();//刷新
        }
    }

    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);
//获取布局管理器,通过布局管理器得到最后一条数据下标
 LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
        last=layoutManager.findLastVisibleItemPosition();//得到最后一条数据
    }
});






猜你喜欢

转载自blog.csdn.net/zqj861791241/article/details/78253759