Headerandfooterrecyclerview

A RecyclerView solution, support addHeaderView、addFooterView
Alternatives To Headerandfooterrecyclerview
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Headerandfooterrecyclerview1,383
5 years ago27apache-2.0Java
A RecyclerView solution, support addHeaderView、addFooterView
Windless944
1a year ago7January 26, 20189mitSwift
Windless makes it easy to implement invisible layout loading view.
Statefullayout805
3 years ago1April 13, 20192apache-2.0Java
Android layout to show template for loading, empty, error etc. states
Stateview601
a year ago1mitJava
:sparkles: StateView is an invisible, zero-sized View that can be used to lazily inflate loadingView/emptyView/retryView/anyView at runtime.
Dynamicbox458
195 years ago3September 11, 20155Java
Android library to show Loading view when waiting for initial state
React Native Skeleton Content45232 months ago23December 08, 20218mitTypeScript
A customizable skeleton-like loading placeholder for react native projects using expo.
Xamarin.forms.statesquid255
3 years ago14April 25, 20203mitC#
Spiritual successor to EasyLoading, turn any layout element into an individual state-aware element.
React Native Skeleton Content Nonexpo25342 months ago12May 22, 20214mitTypeScript
A customizable skeleton-like loading placeholder for react native projects not using expo.
Nvbnbcollectionview248
7 years ago3February 01, 20162mitObjective-C
A Airbnb-inspired collection view
Terminal_layout134
5 months ago14May 09, 20211gpl-3.0Python
The project help you to quickly build layouts in terminal,cross-platform(一个跨平台的命令行ui布局工具)
Alternatives To Headerandfooterrecyclerview
Select To Compare


Alternative Project Comparisons
Readme

HeaderAndFooterRecyclerView

Introduction

HeaderAndFooterRecyclerView is a RecyclerView solution that supports addHeaderView, addFooterView to a RecyclerView.

Through this library, you can implement RecyclerView's Page Loading by dynamically modify the FooterView's State, such as "loading", "loading error", "loading success", "slipping to the bottom".

How to Use It

  • Add HeaderView, FooterView
    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 layout of RecyclerView paging load
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);
            }
        }
    };

Attention

If you have already added a HeaderView for RecyclerView by RecyclerViewUtils.setHeaderView(mRecyclerView, view); , then call the ViewHolder 's getAdapterPosition()getLayoutPosition(), ,the returned value will be affected by the addition of the HeaderView (the return position is the real position + headerCounter).

Therefore, in this case, please use: RecyclerViewUtils.getAdapterPosition(mRecyclerView, ViewHolder.this), RecyclerViewUtils.getLayoutPosition(mRecyclerView, ViewHolder.this).

Demo

  • Add HeaderView, FooterView

Screenshots

  • Support for ply loading of the LinearLayout layout RecyclerView

Screenshots

  • Support for paging loads of GridLayout layout RecyclerView

Screenshots

  • Supports paging loads of StaggeredGridLayout layout RecyclerView

Screenshots

  • The page load fails when the GridLayout layout is RecyclerView

Screenshots

License

Copyright 2015 Cundong

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Popular Loader Projects
Popular Layout Projects
Popular User Interface Components Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Java
Loading
Layout