ptrload
Introduction: 一款下拉刷新以及上拉加载的控件库,扩展性强,使用简单。并附带有可以添加 header 和 footer 的 Recyclerview
Tags:
下拉刷新-RecyclerView-一款可以自定义 header 以及 footer 的下拉刷新和上拉加载库,可以实现对任意 View 的下拉刷新和上拉加载,目前仅实现了 RecyclerView。 是满足 list、gride 以及 staggred 形式的。 这是一款基于 Ptr 实现的下拉加载和上拉刷新功能的控件库,自定义性强,可以根据自己的需要自定义刷新的头部,以及加载得 footer。 同时 加载的 footer 支持两种风格和三中模式。两种风格:1.类似于 QQ 的,当 footer 显示了之后 继续往上拖动 才会加载。2.当 footer 显示后立即加载。 三中模式:1.加载的 footer 无论在数据是否满屏情况下都会显示,2.加载的 footer 只有在数据满屏之后才会显示,3.加载的 footer 一直都不显示。
使用方式
<com.ptr.refresh.ptr.view.PullRefreshRecyclerView
android:id="@+id/ptr_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"></com.ptr.refresh.ptr.view.PullRefreshRecyclerView>
PtrLoadMoreLayout loadMoreLayout = pullRefreshRecyclerView.getPtrLayout();
loadMoreLayout.setLoadMoreStyle(Constant.LOAD_STYLE_OVER);
RecyclerView recyclerView = pullRefreshRecyclerView.getRecyclerView();
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
pullRefreshRecyclerView.setLoadMoreType(Constant.LOAD_SHOW_BY_CONTENT);
pullRefreshRecyclerView.setLoadMoreStyle(Constant.LOAD_STYLE_OVER);//默认是 LOAD_STYLE_NORMAL
pullRefreshRecyclerView.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh() {
pullRefreshRecyclerView.setLoadMoreEnable(false);
pageNum = 1;
adapter.setData(getDdata());
pullRefreshRecyclerView.refreshComplete();
pullRefreshRecyclerView.setLoadMoreEnable(true);
pageNum++;
}
});
pullRefreshRecyclerView.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore() {
adapter.addItems(getDdata());
pageNum += 1;
pullRefreshRecyclerView.onLoadMoreCompleted(true,true);
}
});
pullRefreshRecyclerView.setRefreshEnable(false);//设置是否可以下拉刷新,默认是 true
pullRefreshRecyclerView.setLoadMoreEnable(true);//设置是否可以加载更多,默认是 true
在自定义 Header 时候可以参考 DefaultPullRefreshHeader;自定义 footer 时候可以参考 DefaultLoadMoreUIHandler;
pullRefreshRecyclerView.setEmptyView(View view); 可以设置一个数据无数据状态的 View,无数据的 View 会根据 Adapter 中数据的变化而自动显示或者隐藏。