InfiniteListView

 In Custom Views

InfiniteListView is a custom Android ListView that gets extended at each time new items are loaded by swiping to the bottom of list. It also supports swipe-to-refresh behavior.

See the app module for the sample usage of InfiniteListView and InfiniteListAdapter.

InfiniteListView (extends FrameLayout)

  • Includes the following UI components:
    • SwipeRefreshLayout
    • ListView
  • Initialize it as follows: infiniteListView.init(adapter, loadingView);
    • adapter (InfiniteListAdapter)
      • Extend it to create your own adapter
        • Override its onNewLoadRequired() method to load new items when required (on swipe-to-bottom)
        • Override its onRefresh() method to set what to do on swipe-to-refresh
        • Override its onItemClick(position) method to set what to do on item click
        • Override its onItemLongClick(position) method to set what to do on item long-click
    • loadingView (View)
      • Footer view to be displayed while loading new items
  • Includes the following methods:
    • infiniteListView.addNewItem(item); -> adds new item to list
    • infiniteListView.clearList(); -> clears entire list
    • infiniteListView.startLoading(); -> call this before item loading starts
    • infiniteListView.stopLoading(); -> call this after item loading ends
    • infiniteListView.hasMore(hasMore); -> call this to let the view know whether there is more to load or not
  • Custom XML attributes:
    • swipeRefreshIndicatorColor (color)
    • scrollbarVisible (boolean)
    • dividerVisible (boolean)

InfiniteListAdapter (abstract class, extends ArrayAdapter)

  • Constructor takes the following params:
    • activity (Activity)
    • itemLayoutRes (int)
      • e.g., R.layout.item_text
    • itemList (ArrayList)
  • Includes the following abstract methods:
    • onNewLoadRequired()
    • onRefresh()
    • onItemClick(position)
    • onItemLongClick(position)

How to use

Step 1. Add the JitPack repository in your root build.gradle at the end of repositories:

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

Step 2. Add the dependency:

dependencies {
    compile 'com.github.ugurcany:InfiniteListView:X.Y.Z'
}

How It’s Work

infinitelistview (2)
Recommended Posts

Leave a Comment

Contact Us

We're not around right now. But you can send us an email and we'll get back to you, asap.

Not readable? Change text.