Bringing extended scrolling features to Android's native ListView and ExpandableListView.

Related tags

ListView quickscroll
Overview

About QuickScroll

QuickScroll is a library aimed at creating similar scrolling experiences to the native Contacts app's People view. It has the same scrolling capabilities as the ListView's native fastscroll, but comes with a much a much more customizable design, two indicator styles and an allways visible scrollbar. The two most common modes are popup and indicator. Works seamlessly with ListView and ExpandableListView. Check out the demo application, available in the Play Store.

QuickScroll works great with basically any third party library, in fact, it's just a lightveight View subclass with few lines of initialization code. For more info check out this blog post.

Usage

A project with mulitple working samples can be found in the /sample folder.

  1. Include the widget in your layout. Currently, you can only put it to the right side of the ListView, this can be done via a RelativeLayout, a LinearLayout or any other positioning trick of your choice. The default width is 30 dp, but if you really want to change it, you can do it via an object method.

     <com.andraskindler.quickscroll.QuickScroll
     android:id="@+id/quickscroll"
     android:layout_width="wrap_content"
     android:layout_height="match_parent"/>
    
  2. Implement the Scrollable interface in your BaseExpandableListAdapter or BaseAdapter subclass. You must override the methods below.

    The first function returns the corresponding String to display at any given position:

     @Override
     public String getIndicatorForPosition(int childposition, int groupposition) {
         return null;
     }
    

    The second function is responsible for is for implementing scroll behaviour. This can be used to perform special tasks, e.g. if you want to snap to the first item starting with a letter in an alphabetically ordered list or jump between groups in an ExpandableListView. If you want the normal approach, simply return childposition.

     @Override
     public int getScrollPosition(int childposition, int groupposition) {
     return 0;
     }
    
  3. Initialize the QuickScroll widget:

     final QuickScroll quickscroll = (QuickScroll) layout.findViewById(R.id.quickscroll);
     quickscroll.init(QuickScroll.TYPE_INDICATOR, listview, adapter, QuickScroll.STYLE_HOLO);
    

    The first parameter assigns the type, the second and third binds the ListView (or ExpandableListView) and its adapter. The last one defines the style, currently there are two available:

    • STYLE_HOLO creates a scrollbar fitting into stock holo design.
    • STYLE_NONE creates a transparent scrollbar, so you can create a fully customised underlying layout.

    Both styles also come with a _WITH_HANDLE suffix, creating a holo-themed handlebar on the scrollbar.

  4. (Optional) Do some customizing: change the colors, sizes and font styles. This can be done via object methods.

Including in your app

QuickScroll is available as an Android Library Project. In Eclipse, you can include it by referencing as a library project, in IntelliJ, you can add it as a module.

Other notices

The lowest supported API level is 8 (FroYo)

Developed by Andras Kindler ([email protected])

License

Copyright 2013 Andras Kindler

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.
You might also like...
A generic, customizable, open source Android ListView implementation that has 'Pull to Refresh' functionality.
A generic, customizable, open source Android ListView implementation that has 'Pull to Refresh' functionality.

Android 'Pull to Refresh' ListView library Demo video: http://www.youtube.com/watch?v=VjmdELnm3GI Project A generic, customizable, open source Android

Awesome Listview filter functionality in Android.
Awesome Listview filter functionality in Android.

About Awesome Listview filter functionality in Android. See it in Action: https://www.youtube.com/watch?v=RO54U1ES5CA Listview with beautiful transpar

Android ListView with sticky headers

DEPRECATED HeaderListView is deprecated. No new development will be taking place. Quickstart Import the HeaderListView module in your Android Studio p

Simple ListView based Android AccordionView
Simple ListView based Android AccordionView

Android Accordion View Example git pull import to eclipse properties-android uncheck is library run as android application See main.xml. Screenshot L

An easy to use Drag & Drop List for Android. Direct replacement of the android ListView.

DragNDropListView DragNDropListView is a direct replacement for the stock Android ListView. If you know how to use ListView, you already know how to u

Android ListView that implements the QuickReturn UI pattern. Written from scratch with focus on performance.
Android ListView that implements the QuickReturn UI pattern. Written from scratch with focus on performance.

QuickReturn Android ListView that implements the QuickReturn UI pattern. Written from scratch with focus on performance. Demo Usage In your build.grad

AssignmentListView is an Android ListView widget which calculate image loading times.

AssignmentListView is an Android ListView widget which calculate image loading times.

A small android library for tagging views inside a ScrollView as "sticky" making them stick to the top of the scroll container until a new sticky view comes and takes it's place

StickyScrollViewItems StickyScrollViewItems is a ScrollView subclass that allowed you to mark items inside the ScrollView as sticky. The items marked

This is a very simple library for Android that allows you to stick an header to a scrollable view and easily apply animation to it
This is a very simple library for Android that allows you to stick an header to a scrollable view and easily apply animation to it

StikkyHeader This is a very simple library for Android that allows you to stick an header to a ListView and easily apply animation to it Usage To use

Comments
  • Can't import to Android Studio

    Can't import to Android Studio

    How to import to android studio?

    I tried compile 'com.andraskindler.quickscroll:quickscroll:0.9.8' but I can't import any library class to my Activities/fragments.

    I also tried to importing it as module but Android Studio shows that it doesn't find Gradle.

    opened by borjaruiz 3
  • Problem with gradle integration

    Problem with gradle integration

    There seems to be a problem with the jitpack repository compilation.

    The log is this: https://jitpack.io/com/github/andraskindler/quickscroll/quickscroll-0.9.8/build.log

    opened by bilthon 2
  • Publish correctly to Maven Central

    Publish correctly to Maven Central

    This library looks excellent, great work, but I think it's published in Maven Central incorrectly. I try to do compile 'com.andraskindler.quickscroll:quickscroll:0.9.8' in my gradle project but it doesn't work.

    I'm doing something wrong? Or the version in the Maven Central isn't working?

    opened by 4brunu 2
Owner
Andras Kindler
Andras Kindler
An open source Android library that provides a floating group view at the top of the ExpandableListView

FloatingGroupExpandableListView FloatingGroupExpandableListView is a huge name an open source Android library that provides a floating group view (aka

Diego Lima 376 Nov 28, 2022
Android library to display a ListView whose cells are not rigid but flabby and react to ListView scroll.

FlabbyListView This library is not maintained anymore and there will be no further releases Android library to display a ListView which cells are not

JPARDOGO 762 Nov 23, 2022
HorizontalListView is an Android ListView widget which scrolls in a horizontal manner (in contrast with the SDK-provided ListView which scrolls vertically).

HorizontalListView HorizontalListView is an Android ListView widget which scrolls in a horizontal manner (in contrast with the SDK-provided ListView w

MeetMe 722 Nov 10, 2022
Android widget with pull to refresh for all the views,and support loadMore for ListView , RecyclerView, GridView and SwipeRefreshLayout.

CommonPullToRefresh Android widget with pull to refresh for all the views,and support loadMore for ListView,RecyclerView,GridView and SwipeRefreshLayo

null 1.1k Nov 10, 2022
An Android custom ListView and ScrollView with pull to zoom-in.

PullZoomView An Android custom ListView and ScrollView with pull to zoom-in. Features Set ZoomView enable Add HeaderView Custom ZoomView Parallax or N

Frank-Zhu 2.3k Dec 26, 2022
Parallax ScrollView and ListView for Android

Parallax Scrolls Parallax ListView and ScrollView for Android This project includes ScrollView with one or more parallaxed views ListView with paralla

Nir Hartmann 851 Dec 3, 2022
android custom listview,with interaction pattern load more and pull to refresh to load data dinamically

The first thing that i have to say is render thanks to johannilsson because all the part of pull to refresh listview is based in the code of his repos

Fabian Leon 447 Nov 15, 2022
[] A swipe menu for ListView.

SwipeMenuListView A swipe menu for ListView. Demo Usage Add dependency dependencies { compile 'com.baoyz.swipemenulistview:library:1.3.0' } Step 1

星一 3.5k Dec 16, 2022
Easy to use ListView with pinned sections for Android.

Easy to use ListView with pinned sections for Android 2.1 and higher. Pinned section is a header view which sticks to the top of the list until at lea

Sergej Shafarenka 2.6k Dec 21, 2022
A ListView with pinned section headers for Android

PinnedHeaderListView This library provides a sectioned ListView with pinned headers. It looks and feels much like the default contacts app does on And

James Smith 665 Nov 29, 2022