Class ListPreloader<T>

  • Type Parameters:
    T - The type of the model being displayed in the list.
    All Implemented Interfaces:
    android.widget.AbsListView.OnScrollListener

    public class ListPreloader<T>
    extends java.lang.Object
    implements android.widget.AbsListView.OnScrollListener
    Loads a few resources ahead in the direction of scrolling in any AbsListView so that images are in the memory cache just before the corresponding view in created in the list. Gives the appearance of an infinitely large image cache, depending on scrolling speed, cpu speed, and cache size.

    Must be put using AbsListView.setOnScrollListener(android.widget.AbsListView.OnScrollListener), or have its corresponding methods called from another AbsListView.OnScrollListener to function.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  ListPreloader.PreloadModelProvider<U>
      An implementation of PreloadModelProvider should provide all the models that should be preloaded.
      static interface  ListPreloader.PreloadSizeProvider<T>
      An implementation of PreloadSizeProvider should provide the size of the view in the list where the resources will be displayed.
    • Field Summary

      • Fields inherited from interface android.widget.AbsListView.OnScrollListener

        SCROLL_STATE_FLING, SCROLL_STATE_IDLE, SCROLL_STATE_TOUCH_SCROLL
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void onScroll​(android.widget.AbsListView absListView, int firstVisible, int visibleCount, int totalCount)  
      void onScrollStateChanged​(android.widget.AbsListView absListView, int scrollState)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ListPreloader

        public ListPreloader​(@NonNull
                             RequestManager requestManager,
                             @NonNull
                             ListPreloader.PreloadModelProvider<T> preloadModelProvider,
                             @NonNull
                             ListPreloader.PreloadSizeProvider<T> preloadDimensionProvider,
                             int maxPreload)
        Constructor for ListPreloader that accepts interfaces for providing the dimensions of images to preload, the list of models to preload for a given position, and the request to use to load images.
        Parameters:
        preloadModelProvider - Provides models to load and requests capable of loading them.
        preloadDimensionProvider - Provides the dimensions of images to load.
        maxPreload - Maximum number of items to preload.
    • Method Detail

      • onScrollStateChanged

        public void onScrollStateChanged​(android.widget.AbsListView absListView,
                                         int scrollState)
        Specified by:
        onScrollStateChanged in interface android.widget.AbsListView.OnScrollListener
      • onScroll

        public void onScroll​(android.widget.AbsListView absListView,
                             int firstVisible,
                             int visibleCount,
                             int totalCount)
        Specified by:
        onScroll in interface android.widget.AbsListView.OnScrollListener