BaseRecyclerViewAdapterHelper詳細介紹(一)

相關文章:

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章