支持addHeaderView、 addFooterView、分頁加載數據的RecyclerView

介紹

HeaderAndFooterRecyclerView是支持addHeaderView、 addFooterView、分頁加載數據的RecyclerView。git

它能夠對 RecyclerView 控件進行拓展,給RecyclerView增長HeaderView、FooterView,而且不須要對你的Adapter作任何修改。github

同時,經過修改FooterView State,能夠動態爲FooterView賦予不一樣狀態(加載中、加載失敗、滑到最底等),能夠實現RecyclerView分頁加載數據時的loading/theEnd/NetWorkError效果。web

項目地址

https://github.com/cundong/HeaderAndFooterRecyclerViewless

使用

  • 添加HeaderView、FooterViewide

        mHeaderAndFooterRecyclerViewAdapter = new HeaderAndFooterRecyclerViewAdapter(mDataAdapter);
        mRecyclerView.setAdapter(mHeaderAndFooterRecyclerViewAdapter);

        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));        //add a HeaderView
        RecyclerViewUtils.setHeaderView(mRecyclerView, new SampleHeader(this));        //add a FooterView
        RecyclerViewUtils.setFooterView(mRecyclerView, new SampleFooter(this));
  • LinearLayout/GridLayout/StaggeredGridLayout佈局的RecyclerView分頁加載佈局

mRecyclerView.addOnScrollListener(mOnScrollListener);
private EndlessRecyclerOnScrollListener mOnScrollListener = new EndlessRecyclerOnScrollListener() {        @Override
        public void onLoadNextPage(View view) {            super.onLoadNextPage(view);            LoadingFooter.State state = RecyclerViewStateUtils.getFooterViewState(mRecyclerView);            if(state == LoadingFooter.State.Loading) {                Log.d("@Cundong", "the state is Loading, just wait..");                return;
            }

            mCurrentCounter = mDataList.size();            if (mCurrentCounter < TOTAL_COUNTER) {                // loading more
                RecyclerViewStateUtils.setFooterViewState(EndlessLinearLayoutActivity.this, mRecyclerView, REQUEST_COUNT, LoadingFooter.State.Loading, null);
                requestData();
            } else {                //the end
                RecyclerViewStateUtils.setFooterViewState(EndlessLinearLayoutActivity.this, mRecyclerView, REQUEST_COUNT, LoadingFooter.State.TheEnd, null);
            }
        }
    };

截圖

  • 添加HeaderView、FooterViewthis

截屏

  • 支持分頁加載的LinearLayout佈局RecyclerViewspa

截屏

  • 支持分頁加載的GridLayout佈局RecyclerViewcode

截屏

  • 支持分頁加載的StaggeredGridLayout佈局RecyclerVieworm

截屏

相關文章
相關標籤/搜索