All Projects → ugurcany → Infinitelistview

ugurcany / Infinitelistview

A custom Android ListView that supports endless scrolling

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Infinitelistview

React Native Sortable List
React Native Sortable List component
Stars: ✭ 678 (+882.61%)
Mutual labels:  listview
List view item builder
Flutter package: Item builder for ListView,to quickly build header & item & footer,and provide jumpTo(index) function.
Stars: ✭ 31 (-55.07%)
Mutual labels:  listview
Restaurant App
Restaurant Food Ordering Mobile Application
Stars: ✭ 44 (-36.23%)
Mutual labels:  listview
Flabbylistview
Android library to display a ListView whose cells are not rigid but flabby and react to ListView scroll.
Stars: ✭ 764 (+1007.25%)
Mutual labels:  listview
React Natives App
App for the React & React Native developer community as a demo project for the React Native meetups in Germany
Stars: ✭ 20 (-71.01%)
Mutual labels:  listview
Listbuddies
Android library to achieve in an easy way, the behaviour of the home page in the Expedia app, with a pair of auto-scroll circular parallax ListViews.
Stars: ✭ 971 (+1307.25%)
Mutual labels:  listview
Slideanddraglistview
➰SlideAndDragListView (SDLV) is an extension of the Android ListView that enables slide and drag-and-drop reordering of list items.
Stars: ✭ 516 (+647.83%)
Mutual labels:  listview
Ultimaterefreshview
UltimateRefreshView 实现下拉刷新,上拉加载更多的轻量级库;支持RecyclerView ,ListView ,ScrollView & WebView
Stars: ✭ 64 (-7.25%)
Mutual labels:  listview
Llmlistview
super list view for uwp
Stars: ✭ 27 (-60.87%)
Mutual labels:  listview
Google Books Android Viewer
Android library to bridge between RecyclerView and sources like web page or database. Includes demonstrator (Google Books viewer)
Stars: ✭ 37 (-46.38%)
Mutual labels:  listview
Swipemenu
[DEPRECATED] A swipe menu for horizontal/vertical, support left/right and top/bottom directions
Stars: ✭ 817 (+1084.06%)
Mutual labels:  listview
Clusterize.js
Tiny vanilla JS plugin to display large data sets easily
Stars: ✭ 6,995 (+10037.68%)
Mutual labels:  listview
React Native Super Grid
Responsive Grid View for React Native
Stars: ✭ 971 (+1307.25%)
Mutual labels:  listview
React Native Sglistview
SGListView is a memory minded implementation of React Native's ListView
Stars: ✭ 745 (+979.71%)
Mutual labels:  listview
Multi type list view
A flutter customer ListView that displays multiple widget types.
Stars: ✭ 47 (-31.88%)
Mutual labels:  listview
Superadapter
[Deprecated]. 🚀 Adapter(BaseAdapter, RecyclerView.Adapter) wrapper for Android. 一个Adapter同时适用RecyclerView、ListView、GridView等。
Stars: ✭ 638 (+824.64%)
Mutual labels:  listview
Awesome Android Ui
😎😍Android libs and UI from GitHub or other websites. android libs from Github
Stars: ✭ 33 (-52.17%)
Mutual labels:  listview
Countdowntask
⌛️A countdown library for Android.
Stars: ✭ 64 (-7.25%)
Mutual labels:  listview
React Native Step Indicator
A simple react-native implementation of step indicator widget compatible with the ViewPager and ListView.
Stars: ✭ 1,054 (+1427.54%)
Mutual labels:  listview
Paging library
A Flutter package for paginating a list view
Stars: ✭ 35 (-49.28%)
Mutual labels:  listview

InfiniteListView JitPack Build Status Android Arsenal Join the chat at https://gitter.im/ugurcany/InfiniteListView

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.

How it works

How it works

Classes

InfiniteListView (extends FrameLayout)

  • Includes the following UI components:

    • SwipeRefreshLayout
    • ListView
  • Set adapter as follows: infiniteListView.setAdapter(adapter);

    • 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
  • Includes the following methods:

    • infiniteListView.addNewItem(item); -> adds new item to list
    • infiniteListView.addAll(newItems); -> adds list of new items 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'
}

Replace X.Y.Z with the latest release version number.

License

The MIT License (MIT)

Copyright (c) 2016 Ugurcan Yildirim

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].