public class EndlessScrollHelper<Model> extends EndlessRecyclerOnScrollListener
EndlessRecyclerOnScrollListener, providing a more powerful API
for endless scrolling.
This class exposes 2 callbacks to separate the loading logic from delivering the results:
This class also takes care of other various stuffs like:
View.post(Runnable).OnLoadMoreHandler should be implemented via static classes or lambda expressions).IItemAdapter or ModelAdapter.| Modifier and Type | Class and Description |
|---|---|
static interface |
EndlessScrollHelper.OnLoadMoreHandler<Model> |
static interface |
EndlessScrollHelper.OnNewItemsListener<Model> |
static interface |
EndlessScrollHelper.ResultReceiver<Model>
A callback interface provided by the
EndlessScrollHelper where
onLoadMore() results are to be delivered. |
| Constructor and Description |
|---|
EndlessScrollHelper() |
EndlessScrollHelper(LayoutManager layoutManager) |
EndlessScrollHelper(LayoutManager layoutManager,
int visibleThreshold) |
EndlessScrollHelper(LayoutManager layoutManager,
int visibleThreshold,
ItemAdapter footerAdapter) |
| Modifier and Type | Method and Description |
|---|---|
EndlessScrollHelper<Model> |
addTo(RecyclerView recyclerView) |
protected void |
onLoadMore(EndlessScrollHelper.ResultReceiver<Model> out,
int currentPage)
The default implementation takes care of calling the previously set
OnLoadMoreHandler. |
void |
onLoadMore(int currentPage) |
protected void |
onNewItems(java.util.List<Model> newItems,
int page)
The default implementation takes care of calling the previously set
OnNewItemsListener. |
EndlessScrollHelper<Model> |
withNewItemsDeliveredTo(<any> modelItemAdapter)
Registers an
OnNewItemsListener that delivers results to the
specified ModelAdapter through its ModelAdapter#add method. |
<Item extends IItem> |
withNewItemsDeliveredTo(<any> itemAdapter,
<any> itemFactory)
Registers an
OnNewItemsListener that delivers results to the
specified IItemAdapter. |
<Item extends IItem> |
withNewItemsDeliveredTo(<any> itemAdapter,
<any> itemFactory,
EndlessScrollHelper.OnNewItemsListener<Model> extraOnNewItemsListener)
An overload of
withNewItemsDeliveredTo()
that allows additional callbacks. |
EndlessScrollHelper<Model> |
withNewItemsDeliveredTo(<any> modelItemAdapter,
EndlessScrollHelper.OnNewItemsListener<Model> extraOnNewItemsListener)
An overload of
withNewItemsDeliveredTo()
that allows additional callbacks. |
EndlessScrollHelper<Model> |
withOnLoadMoreHandler(EndlessScrollHelper.OnLoadMoreHandler<Model> onLoadMoreHandler)
Define the
OnLoadMoreHandler which will be used for loading new
items. |
EndlessScrollHelper<Model> |
withOnNewItemsListener(EndlessScrollHelper.OnNewItemsListener<Model> onNewItemsListener)
Define the
OnNewItemsListener which will receive the new items
loaded by onLoadMore(). |
disable, enable, getCurrentPage, getFirstVisibleItem, getLayoutManager, getTotalItemCount, getVisibleItemCount, onScrolled, resetPageCount, resetPageCountpublic EndlessScrollHelper()
public EndlessScrollHelper(LayoutManager layoutManager)
public EndlessScrollHelper(LayoutManager layoutManager,
int visibleThreshold)
public EndlessScrollHelper(LayoutManager layoutManager,
int visibleThreshold,
ItemAdapter footerAdapter)
layoutManager - visibleThreshold - footerAdapter - the itemAdapter used to host Footer itemspublic EndlessScrollHelper<Model> addTo(RecyclerView recyclerView)
public EndlessScrollHelper<Model> withOnLoadMoreHandler(EndlessScrollHelper.OnLoadMoreHandler<Model> onLoadMoreHandler)
OnLoadMoreHandler which will be used for loading new
items.onLoadMoreHandler - public EndlessScrollHelper<Model> withOnNewItemsListener(EndlessScrollHelper.OnNewItemsListener<Model> onNewItemsListener)
OnNewItemsListener which will receive the new items
loaded by onLoadMore().onNewItemsListener - withNewItemsDeliveredTo(IItemAdapter, IInterceptor),
withNewItemsDeliveredTo(ModelAdapter)public <Item extends IItem> EndlessScrollHelper<Model> withNewItemsDeliveredTo(<any> itemAdapter, <any> itemFactory)
OnNewItemsListener that delivers results to the
specified IItemAdapter. Converting each result to an IItem using the given
itemFactory.Item - itemAdapter - itemFactory - withNewItemsDeliveredTo(IItemAdapter, IInterceptor, OnNewItemsListener)public EndlessScrollHelper<Model> withNewItemsDeliveredTo(<any> modelItemAdapter)
OnNewItemsListener that delivers results to the
specified ModelAdapter through its ModelAdapter#add method.modelItemAdapter - withNewItemsDeliveredTo(ModelAdapter, OnNewItemsListener)public <Item extends IItem> EndlessScrollHelper<Model> withNewItemsDeliveredTo(<any> itemAdapter, <any> itemFactory, EndlessScrollHelper.OnNewItemsListener<Model> extraOnNewItemsListener)
withNewItemsDeliveredTo()
that allows additional callbacks.Item - itemAdapter - itemFactory - extraOnNewItemsListener - public EndlessScrollHelper<Model> withNewItemsDeliveredTo(<any> modelItemAdapter, EndlessScrollHelper.OnNewItemsListener<Model> extraOnNewItemsListener)
withNewItemsDeliveredTo()
that allows additional callbacks.modelItemAdapter - extraOnNewItemsListener - protected void onLoadMore(EndlessScrollHelper.ResultReceiver<Model> out, int currentPage)
OnLoadMoreHandler.out - currentPage - withOnLoadMoreHandler(OnLoadMoreHandler)protected void onNewItems(java.util.List<Model> newItems, int page)
OnNewItemsListener.newItems - page - withOnNewItemsListener(OnNewItemsListener)public void onLoadMore(int currentPage)
onLoadMore in class EndlessRecyclerOnScrollListener