相關文章:
BaseRecyclerViewAdapterHelper詳細介紹(二)----實現嵌套功能
BaseRecyclerViewAdapterHelper詳細介紹(三)----實現點擊事件,添加頭佈局,腳佈局
一,擁有功能:
1,上拉加載
2,下來刷新
3,添加頭佈局,腳佈局
4,列表嵌套
5,列表上拉動畫
6,代碼簡潔
7,列表嵌套時,可以點擊父條目,子條目,子條目中的某個控件
8,空佈局
9,拖拽,滑動刪除
10,多佈局
11,樹形列表
二,集成
1,github地址:
https://github.com/CymChad/BaseRecyclerViewAdapterHelper
2,先在 build.gradle(Project:XXXX) 的 repositories 添加:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
然後在 build.gradle(Module:app) 的 dependencies 添加:
dependencies {
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
}
三,實現上拉加載功能
1,初始化適配器
rv_load_more = (RecyclerView)findViewById(R.id.rv_load_more);
loadMoreAdapter = new LoadMoreAdapter(R.layout.item_load_more);
rv_load_more.setAdapter(loadMoreAdapter);
loadMoreAdapter.addData(mDatas);
2,實現上拉加載
loadMoreAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
@Override
public void onLoadMoreRequested() {
rv_load_more.postDelayed(new Runnable() {
@Override
public void run() {
loadMoreAdapter.loadMoreComplete(); //完成加載更多
page++;
if (totalNum <= mDatas.size()) {
loadMoreAdapter.loadMoreEnd();//沒有更多數據
}else {
loadMoreData();
}
}
}, 2000);
}
}, rv_load_more);
3,加載的假數據
private void loadMoreData() {
int count = loadMoreAdapter.getItemCount();
if (count <= 20) {
for (int i = count - 1; i < count + 2; i++) {
mDatas.add(new FlowItemBean("測試-" + i));
}
loadMoreAdapter.setNewData(mDatas);
loadMoreAdapter.notifyDataSetChanged();
}
}
4,adapter中的代碼
public class LoadMoreAdapter extends BaseQuickAdapter<FlowItemBean, BaseViewHolder> {
public LoadMoreAdapter(int layoutResId) {
super(layoutResId);
}
@Override
protected void convert(BaseViewHolder helper, FlowItemBean item) {
helper.setText(R.id.tv_load_more_item, item.label);
}
}
5,第一次進來會默認加載更多,使用下面的可以去掉(但是就無法顯示“沒有更多數據”)
loadMoreAdapter.disableLoadMoreIfNotFullPage();//默認第一次加載會進入回調
6,顯示空佈局
if(mDatas.size() == 0 ){
loadMoreAdapter.setEmptyView(LayoutInflater.from(this).inflate(
R.layout.load_failed_layout,null));
}
四,動畫功能
1,打開動畫(默認爲漸顯效果)
loadMoreAdapter.openLoadAnimation();
2,默認提供5種方法(漸顯、縮放、從下到上,從左到右、從右到左)
loadMoreAdapter.openLoadAnimation(BaseQuickAdapter.SCALEIN);
3,其他各種效果,看下面的文章:
3.1,BaseRecyclerAdapter之添加動畫(策略模式)
https://www.jianshu.com/p/fa3f97c19263