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(android.support.v7.widget.RecyclerView.LayoutManager layoutManager) |
EndlessScrollHelper(android.support.v7.widget.RecyclerView.LayoutManager layoutManager,
int visibleThreshold) |
EndlessScrollHelper(android.support.v7.widget.RecyclerView.LayoutManager layoutManager,
int visibleThreshold,
com.mikepenz.fastadapter.adapters.ItemAdapter footerAdapter) |
| Modifier and Type | Method and Description |
|---|---|
EndlessScrollHelper<Model> |
addTo(android.support.v7.widget.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. |
<Item extends com.mikepenz.fastadapter.IItem> |
withNewItemsDeliveredTo(com.mikepenz.fastadapter.IItemAdapter<?,Item> itemAdapter,
com.mikepenz.fastadapter.IInterceptor<Model,Item> itemFactory)
Registers an
OnNewItemsListener that delivers results to the
specified IItemAdapter. |
<Item extends com.mikepenz.fastadapter.IItem> |
withNewItemsDeliveredTo(com.mikepenz.fastadapter.IItemAdapter<?,Item> itemAdapter,
com.mikepenz.fastadapter.IInterceptor<Model,Item> itemFactory,
EndlessScrollHelper.OnNewItemsListener<Model> extraOnNewItemsListener)
An overload of
withNewItemsDeliveredTo()
that allows additional callbacks. |
EndlessScrollHelper<Model> |
withNewItemsDeliveredTo(com.mikepenz.fastadapter.adapters.ModelAdapter<Model,?> modelItemAdapter)
Registers an
OnNewItemsListener that delivers results to the
specified ModelAdapter through its ModelAdapter.add(Model...) method. |
EndlessScrollHelper<Model> |
withNewItemsDeliveredTo(com.mikepenz.fastadapter.adapters.ModelAdapter<Model,?> 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(android.support.v7.widget.RecyclerView.LayoutManager layoutManager)
public EndlessScrollHelper(android.support.v7.widget.RecyclerView.LayoutManager layoutManager,
int visibleThreshold)
public EndlessScrollHelper(android.support.v7.widget.RecyclerView.LayoutManager layoutManager,
int visibleThreshold,
com.mikepenz.fastadapter.adapters.ItemAdapter footerAdapter)
layoutManager - visibleThreshold - footerAdapter - the itemAdapter used to host Footer itemspublic EndlessScrollHelper<Model> addTo(android.support.v7.widget.RecyclerView recyclerView)
public EndlessScrollHelper<Model> withOnLoadMoreHandler(@NonNull EndlessScrollHelper.OnLoadMoreHandler<Model> onLoadMoreHandler)
OnLoadMoreHandler which will be used for loading new
items.onLoadMoreHandler - public EndlessScrollHelper<Model> withOnNewItemsListener(@NonNull EndlessScrollHelper.OnNewItemsListener<Model> onNewItemsListener)
OnNewItemsListener which will receive the new items
loaded by onLoadMore().onNewItemsListener - withNewItemsDeliveredTo(IItemAdapter, IInterceptor),
withNewItemsDeliveredTo(ModelAdapter)public <Item extends com.mikepenz.fastadapter.IItem> EndlessScrollHelper<Model> withNewItemsDeliveredTo(@NonNull com.mikepenz.fastadapter.IItemAdapter<?,Item> itemAdapter, @NonNull com.mikepenz.fastadapter.IInterceptor<Model,Item> 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(@NonNull com.mikepenz.fastadapter.adapters.ModelAdapter<Model,?> modelItemAdapter)
OnNewItemsListener that delivers results to the
specified ModelAdapter through its ModelAdapter.add(Model...) method.modelItemAdapter - withNewItemsDeliveredTo(ModelAdapter, OnNewItemsListener)public <Item extends com.mikepenz.fastadapter.IItem> EndlessScrollHelper<Model> withNewItemsDeliveredTo(@NonNull com.mikepenz.fastadapter.IItemAdapter<?,Item> itemAdapter, @NonNull com.mikepenz.fastadapter.IInterceptor<Model,Item> itemFactory, @NonNull EndlessScrollHelper.OnNewItemsListener<Model> extraOnNewItemsListener)
withNewItemsDeliveredTo()
that allows additional callbacks.Item - itemAdapter - itemFactory - extraOnNewItemsListener - public EndlessScrollHelper<Model> withNewItemsDeliveredTo(@NonNull com.mikepenz.fastadapter.adapters.ModelAdapter<Model,?> modelItemAdapter, @NonNull EndlessScrollHelper.OnNewItemsListener<Model> extraOnNewItemsListener)
withNewItemsDeliveredTo()
that allows additional callbacks.modelItemAdapter - extraOnNewItemsListener - protected void onLoadMore(@NonNull
EndlessScrollHelper.ResultReceiver<Model> out,
int currentPage)
OnLoadMoreHandler.out - currentPage - withOnLoadMoreHandler(OnLoadMoreHandler)protected void onNewItems(@NonNull
java.util.List<Model> newItems,
int page)
OnNewItemsListener.newItems - page - withOnNewItemsListener(OnNewItemsListener)public void onLoadMore(int currentPage)
onLoadMore in class EndlessRecyclerOnScrollListener