ARecyclerView
對(duì)RecyclerView的封裝,功能強(qiáng)大穿稳、使用簡(jiǎn)單俯画、擴(kuò)展性強(qiáng)。該庫(kù)主要分成三部分:RecyclerAdapter司草、XRecyclerView艰垂、XRecyclerContentLayout
歡迎star、fork埋虹,提出寶貴意見(jiàn)猜憎。
使用
- Gradle : compile 'cn.droidlover:XRecyclerView:1.0.0'
- Github : ARecyclerView
RecyclerAdapter
RecyclerAdapter簡(jiǎn)化了Adapter的開(kāi)發(fā),封裝了一些常用的邏輯搔课,包括數(shù)據(jù)集合操作胰柑、接口監(jiān)聽(tīng)RecyclerItemCallback可以滿足99%的需求。
使用示例
public class TestRecAdapter extends RecyclerAdapter<TestRecAdapter.Item, TestRecAdapter.ViewHolder> {
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
}
}
XRecyclerView
XRecyclerView是對(duì)RecyclerView的封裝,其主要特性包括:
- 一行代碼添加柬讨、刪除崩瓤、修改Header或者Footer
- 一行代碼添加默認(rèn)的上拉加載效果
- 一行代碼切換自定義上拉加載效果
- 一行代碼輕松添加LayoutManager
- 一行代碼添加divider
- Adapter規(guī)范及封裝RecyclerAdapter
使用示例
recyclerView.verticalLayoutManager(this) //設(shè)置layoutManager
.setAdapter(adapter); //設(shè)置Adapter
recyclerView.horizontalDivider(R.color.x_red, R.dimen.divider_height); //設(shè)置divider
recyclerView.setOnRefreshAndLoadMoreListener(new XRecyclerView.OnRefreshAndLoadMoreListener() { //設(shè)置刷新和上拉加載監(jiān)聽(tīng)
@Override
public void onRefresh() {
loadData(1);
}
@Override
public void onLoadMore(int page) {
loadData(page);
}
});
recyclerView.useDefLoadMoreView(); //使用默認(rèn)的上拉刷新樣式
recyclerView.addHeaderView(headView); //添加header
recyclerView.addFooterView(footview); //添加footer
recyclerView.removeHeaderView(headview); //刪除header
recyclerView.removeFooterView(footview); //刪除footer
XRecyclerContentLayout
XRecyclerContentLayout繼承了QTContentLayout,可自定義Loading踩官、Error却桶、Empty、Content四種顯示狀態(tài)蔗牡,滿足了絕大部分需求.
使用示例
<cn.droidlover.xrecyclerview.XRecyclerContentLayout
android:id="@+id/contentLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:recyclerBackgroundColor="#f5f5f5"
app:recyclerScrollbarNone="true"
app:recyclerScrollbarStyle="outsideOverlay" />
contentLayout.loadingView(new LoadingView(this));
.errorView(new ErrorView(this));
.emptyView(new EmptyView(this));
contentLayout.showLoading();
contentLayout.showError();
contentLayout.showEmpty();
contentLayout.showContent();
自定義實(shí)現(xiàn)XRecyclerContentLayout
在XRecyclerContentLayout中內(nèi)置了SwipeRefreshLayout下拉刷新樣式颖系,您也可以自定義實(shí)現(xiàn)XRecyclerContentLayout,只需實(shí)現(xiàn)XRecyclerView.StateCallback接口即可.
public interface StateCallback {
void notifyEmpty(); //數(shù)據(jù)為空
void notifyContent(); //顯示contentview
void refreshState(boolean isRefresh); //更新刷新?tīng)顟B(tài)
void refreshEnabled(boolean isEnabled); //刷新是否可用
}