All Projects → pwittchen → Infinitescroll

pwittchen / Infinitescroll

Licence: apache-2.0
Infinite Scroll (Endless Scrolling) for RecyclerView in Android

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Infinitescroll

Ngx Ui Scroll
Infinite/virtual scroll for Angular
Stars: ✭ 145 (-20.77%)
Mutual labels:  scroll, scrolling, infinite-scroll
Infinite Ajax Scroll
Turn your existing pagination into infinite scrolling pages with ease
Stars: ✭ 804 (+339.34%)
Mutual labels:  scroll, infinite-scroll, infinite
Android scroll endless
Scroll endless for Android recyclerview
Stars: ✭ 12 (-93.44%)
Mutual labels:  recyclerview, scroll, scrolling
ng-mat-select-infinite-scroll
Infinite Scroll directive for angular material select component
Stars: ✭ 39 (-78.69%)
Mutual labels:  infinite-scroll, scroll, infinite
volx-recyclerview-fast-scroll
An easy to use implementation for fast scroll recyclerview
Stars: ✭ 34 (-81.42%)
Mutual labels:  recyclerview, scrolling, scroll
Svelte Infinite Scroll
Infinite Scroll Component to Svelte
Stars: ✭ 102 (-44.26%)
Mutual labels:  scroll, infinite-scroll, infinite
vuejs-loadmore
A pull-down refresh and pull-up loadmore scroll component for Vue.js. Vue上拉加载下拉刷新组件
Stars: ✭ 62 (-66.12%)
Mutual labels:  infinite-scroll, scroll, infinite
react-infinite-scroll-list
Manage infinite list with the IntersectionObserver API
Stars: ✭ 20 (-89.07%)
Mutual labels:  infinite-scroll, scroll, infinite
Recyclerview Fastscroller
A fully customizable Fast Scroller for the RecyclerView in Android, written in Kotlin
Stars: ✭ 585 (+219.67%)
Mutual labels:  recyclerview, scroll, scrolling
Viewprt
A tiny, dependency-free, high performance viewport position & intersection observation tool
Stars: ✭ 36 (-80.33%)
Mutual labels:  scrolling, infinite-scroll
Google Books Android Viewer
Android library to bridge between RecyclerView and sources like web page or database. Includes demonstrator (Google Books viewer)
Stars: ✭ 37 (-79.78%)
Mutual labels:  recyclerview, infinite-scroll
Ngx Infinite Scroll
Infinite Scroll Directive for Angular
Stars: ✭ 1,024 (+459.56%)
Mutual labels:  scroll, infinite-scroll
Fuckmyscroll.js
🔮 Animated scrolling to certain point or anchor
Stars: ✭ 10 (-94.54%)
Mutual labels:  scroll, scrolling
Dragscroll
micro library for drag-n-drop scrolling style
Stars: ✭ 989 (+440.44%)
Mutual labels:  scroll, scrolling
Rsdayflow
iOS 7+ Calendar (Date Picker) with Infinite Scrolling.
Stars: ✭ 843 (+360.66%)
Mutual labels:  scroll, infinite-scroll
Vue List Scroller
Simple and easy to use Vue.js component for efficient rendering large lists
Stars: ✭ 65 (-64.48%)
Mutual labels:  scroll, infinite-scroll
Scroll Js
Light cross-browser scroller that uses native javascript
Stars: ✭ 179 (-2.19%)
Mutual labels:  scroll, scrolling
Jscroll
An infinite scrolling plugin for jQuery.
Stars: ✭ 1,084 (+492.35%)
Mutual labels:  scrolling, infinite-scroll
Horizontal Scroll
Horizontal scroll with inertia
Stars: ✭ 175 (-4.37%)
Mutual labels:  scroll, scrolling
Pd Select
vue components ,like ios 3D picker style,vue 3d 选择器组件,3D滚轮
Stars: ✭ 101 (-44.81%)
Mutual labels:  scroll, scrolling

InfiniteScroll Android Arsenal Build Status Maven Central

Infinite Scroll (Endless Scrolling) for RecyclerView in Android

JavaDoc is available at: http://pwittchen.github.io/InfiniteScroll/

Contents

Motivation

For a long time I couldn't find the right implementation of the infinite scroll AKA endless scroll for Android. A few solutions I've found weren't production ready, weren't working correctly or had too many features. I wanted to have small, easy and flexible solution to implement infinite scroll for Android, which works with RecyclerView from the newest Android API. That's why this project was created.

Examples

Sample app can be found in app directory.

Below, you can see an animation presenting, how sample application works.

Moreover, you can see examplary usage of this library in SearchTwitter app.

Demo

Usage

Create necessary fields in your Activity:

public RecyclerView recyclerView;
private LinearLayoutManager layoutManager;

Create new InfiniteScrollListener:

private InfiniteScrollListener createInfiniteScrollListener() {
  return new InfiniteScrollListener(maxItemsPerRequest, layoutManager) {
    @Override public void onScrolledToEnd(final int firstVisibleItemPosition) {
      // load your items here
      // logic of loading items will be different depending on your specific use case
      
      // when new items are loaded, combine old and new items, pass them to your adapter
      // and call refreshView(...) method from InfiniteScrollListener class to refresh RecyclerView
      refreshView(recyclerView, new MyAdapter(items), firstVisibleItemPosition);
    }
  }
}

Initialize RecyclerView and LinearLayoutManager in your Activity:

@Override protected void onCreate(Bundle savedInstanceState) {
  recyclerView = (RecyclerView) findViewById(R.id.recycler_view);

  layoutManager = new LinearLayoutManager(this);
  recyclerView.setHasFixedSize(true);
  recyclerView.setLayoutManager(layoutManager);
  
  // set your custom adapter
  recyclerView.setAdapter(new MyAdapter(items));
  
  // add InfiniteScrollListener as OnScrollListener
  recyclerView.addOnScrollListener(createInfiniteScrollListener());
}

If you want to display loading progress, you should add additional view for it, show it while loading starts and hide it when loading is finished. Check exemplary app in this repository to see concrete solution.

That's it!

Download

Latest version: Maven Central

replace x.y.z with the latest version

You can depend on the library through Maven:

<dependency>
    <groupId>com.github.pwittchen</groupId>
    <artifactId>infinitescroll</artifactId>
    <version>x.y.z</version>
</dependency>

or through Gradle:

dependencies {
  compile 'com.github.pwittchen:infinitescroll:x.y.z'
}

Tests

To execute unit tests run:

./gradlew test

Code style

Code style used in the project is called SquareAndroid from Java Code Styles repository by Square available at: https://github.com/square/java-code-styles.

Static Code Analysis

To run Static Code Analysis, type:

./gradlew check

Reports from analysis are generated in library/build/reports/ directory.

Who is using this library?

Are you using this library in your app and want to be listed here? Send me a Pull Request or an e-mail to [email protected]

License

Copyright 2016 Piotr Wittchen

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
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].