epoxy-adapter / com.airbnb.epoxy.preload / EpoxyPreloader

EpoxyPreloader

class EpoxyPreloader<P : PreloadRequestHolder> : OnScrollListener

A scroll listener that prefetches view content.

To use this, create implementations of EpoxyModelPreloader for each EpoxyModel class that you want to preload. Then, use the EpoxyPreloader.with methods to create an instance that preloads models of that type. Finally, add the resulting scroll listener to your RecyclerView.

If you are using com.airbnb.epoxy.EpoxyRecyclerView then use com.airbnb.epoxy.EpoxyRecyclerView.addPreloader to setup the preloader as a listener.

Otherwise there is a RecyclerView.addEpoxyPreloader extension for easy usage.

Constructors

<init>

EpoxyPreloader(epoxyController: EpoxyController, requestHolderFactory: () -> P, errorHandler: PreloadErrorHandler, maxItemsToPreload: Int, modelPreloaders: List<EpoxyModelPreloader<*, *, out P>>)
EpoxyPreloader(adapter: EpoxyAdapter, requestHolderFactory: () -> P, errorHandler: PreloadErrorHandler, maxItemsToPreload: Int, modelPreloaders: List<EpoxyModelPreloader<*, *, out P>>)

Functions

cancelPreloadRequests

fun cancelPreloadRequests(): Unit

Cancels all current preload requests in progress.

onScrolled

fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int): Unit

onScrollStateChanged

fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int): Unit

Companion Object Functions

with

fun <P : PreloadRequestHolder> with(epoxyController: EpoxyController, requestHolderFactory: () -> P, errorHandler: PreloadErrorHandler, maxItemsToPreload: Int, modelPreloader: EpoxyModelPreloader<out EpoxyModel<*>, out ViewMetadata?, out P>): EpoxyPreloader<P>

Helper to create a preload scroll listener. Add the result to your RecyclerView. for different models or content types.

fun <P : PreloadRequestHolder> with(epoxyController: EpoxyController, requestHolderFactory: () -> P, errorHandler: PreloadErrorHandler, maxItemsToPreload: Int, modelPreloaders: List<EpoxyModelPreloader<out EpoxyModel<*>, out ViewMetadata?, out P>>): EpoxyPreloader<P>fun <P : PreloadRequestHolder> with(epoxyAdapter: EpoxyAdapter, requestHolderFactory: () -> P, errorHandler: PreloadErrorHandler, maxItemsToPreload: Int, modelPreloaders: List<EpoxyModelPreloader<out EpoxyModel<*>, out ViewMetadata?, out P>>): EpoxyPreloader<P>

Helper to create a preload scroll listener. Add the result to your RecyclerView.