项目作者: hendraanggrian

项目描述 :
Simpler Android endless scrolling list
高级语言: Java
项目地址: git://github.com/hendraanggrian/recyclerview-paginated.git
创建时间: 2017-04-28T05:23:19Z
项目社区:https://github.com/hendraanggrian/recyclerview-paginated

开源协议:Apache License 2.0

下载


download
build
license

Paginated RecyclerView

demo_list demo_grid

Customizable pagination in Android RecyclerView. Some of the features are:

  • Placeholder view when page is being fetched.
  • Error view when page has failed to load.
  • Works with LinearLayoutManager and StaggeredGridLayoutManager.

Download

  1. repositories {
  2. google()
  3. jcenter()
  4. }
  5. dependencies {
  6. implementation "com.hendraanggrian.recyclerview:recyclerview-paginated:$version"
  7. }

Usage

Use PaginatedRecyclerView

It has several attributes:

  • paginationThreshold - set the offset from the end of the list at which the paginate more event needs to be triggered, default is 5.
  • placeholderAdapter - class name of customized placeholder adapter, may be ignored.
  • errorAdapter - class name of customized error adapter, may be ignored.
  1. <com.hendraanggrian.recyclerview.widget.PaginatedRecyclerView
  2. android:id="@+id/recyclerView"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent" ></com.hendraanggrian.recyclerview.widget.PaginatedRecyclerView>

Create Pagination

  1. public class PostPagination extends PaginatedRecyclerView.Pagination {
  2. @Override
  3. public boolean getPageStart(int page) {
  4. return 0;
  5. }
  6. @Override
  7. public void onNextPage(int page) {
  8. if (loadItemSuccess) {
  9. populateItems(); // add items to adapter
  10. notifyLoadingCompleted();
  11. }
  12. if (reachPageEnd) {
  13. notifyPaginationFinished();
  14. }
  15. }
  16. }

Attach Pagination to PaginatedRecyclerView

  1. recyclerView.setLayoutManager(lm)
  2. recyclerView.setAdapter(adapter)
  3. recyclerView.setPagination(pagination)

Customization

Use custom loading row

Create custom loading adapter, and supply it to PaginatedRecyclerView.

  1. public class CustomLoadingAdapter extends LoadingAdapter {
  2. @Override
  3. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  4. ...
  5. }
  6. }
  7. CustomLoadingAdapter placeholderAdapter = new CustomLoadingAdapter();
  8. recyclerView.setLoadingAdapter(placeholderAdapter);