recyclerview-multistate-section-endless-adapter
MultiState, section, endless recyclerView are made easily by this wrapper adapter.
I am working on section support. It will be deployed soon. If you find that it still doesn't meet your need, don't hersitate to send me a request. I love to work with you to solve problems. Send a request HERE
Installation
compile "me.henrytao:recyclerview:<latest-version>"
recyclerview-multistate-section-endless-adapter
is deployed to jCenter
. Make sure you have jcenter()
in your project gradle.
Demo
Please note that the app on the Play store is not always the latest version.
Features
- Multiple header and footer.
- Multistate adapter.
- Endless adapter.
- Header on grid.
- Merge adapter.
Usage
1. Simple header and footer spacing
public class MaterialAdapter extends SimpleRecyclerViewAdapter {
public MaterialAdapter(RecyclerView.Adapter baseAdapter) {
super(baseAdapter);
}
@Override
public RecyclerView.ViewHolder onCreateFooterViewHolder(LayoutInflater inflater, ViewGroup parent) {
return new FooterHolder(inflater, parent, R.layout.item_spacing);
}
@Override
public RecyclerView.ViewHolder onCreateHeaderViewHolder(LayoutInflater inflater, ViewGroup parent) {
return new HeaderHolder(inflater, parent, R.layout.item_spacing);
}
}
...
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mSimpleAdapter = new SimpleAdapter();
mMaterialAdapter = new MaterialAdapter(mSimpleAdapter);
vRecyclerView.setHasFixedSize(false);
vRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
vRecyclerView.setAdapter(mMaterialAdapter);
}
2. Endless adapter
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mSimpleAdapter = new SimpleAdapter();
mEndlessAdapter = new EndlessAdapter(mSimpleAdapter);
mEndlessAdapter.setEndlessThreshold(5);
mEndlessAdapter.setOnEndlessListener(new OnEndlessListener() {
@Override
public void onReachThreshold(EndlessAdapter adapter) {
// This method is called async. Please make sure it is still added to Activity if you use fragment.
if (isAdded()) {
mSimpleAdapter.addMoreItems(10);
// Remeber to call onNext. It will fetch next page.
adapter.onNext();
}
}
});
vRecyclerView.setHasFixedSize(false);
vRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
vRecyclerView.setAdapter(mEndlessAdapter);
}
3. More?
Please checkout sample section. I have a lot more example there.
Contributing
Any contributions are welcome!
Please check the CONTRIBUTING guideline before submitting a new issue. Wanna send PR? Click HERE
Special thanks to
License
Copyright 2015 "Henry Tao <hi@henrytao.me>"
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.