Parallax ScrollView and ListView for Android

Overview

Parallax Scrolls

Parallax ListView and ScrollView for Android

This project includes

  • ScrollView with one or more parallaxed views
  • ListView with parallaxed header
  • Complete parallaxed ListView
  • ExpandableListView with parallaxed header
  • Complete parallaxed ExpandableListView
  • Support Android 1.6 and above

Usage

See demo app for best practice - https://play.google.com/store/apps/details?id=com.nirhart.parallaxscrollexample

  • parallax_factor - For ScrollView and ListView, the first view's parallax factor
  • inner_parallax_factor - For ScrollView only - the parallax factor between each view and view
  • parallax_views_num - For ScrollView only - the number of parallaxed views
  • circular_parallax - For ListView only - whether all of the list is parallaxed or not

Maven repository access

In the build.gradle (at the module level) add the new dependency:

  compile 'com.github.nirhart:parallaxscroll:1.0'

or look for it using Android Studio module dependencies

Example ParallaxScroll Usage

<com.nirhart.parallaxscroll.views.ParallaxScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:parallax_factor="1.9"
    tools:context=".MainActivity" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:background="@drawable/item_background"
            android:gravity="center"
            android:text="PARALLAXED"
            android:textSize="50sp"
            tools:ignore="HardcodedText" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 	Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
            android:textSize="26sp"
            android:background="@android:color/white"
            android:padding="5dp"
            tools:ignore="HardcodedText" />
    </LinearLayout>

</com.nirhart.parallaxscroll.views.ParallaxScrollView>

Building

Using gradle to build.

This project uses the gradle wrapper to build the library and example app

assemble the library

./gradlew :ParallaxScroll:assembleDebug

install the example

./gradlew :ParallaxScrollExample:installDebug

note: on windows use gradlew.bat instead of ./gradlew

Comments
  • Listview appears on top of image view by default

    Listview appears on top of image view by default

    Hey I basically have an imageview on top of a listview. I am applying your parallax scroll. But by default, on switching on the app, the listview appears over the imageview. This happens only when i use parallax scroll. On removing it they appear one after the other. It would be great if you could provide a solution.

    opened by krtkrj 21
  • TextView cuts off while using ParallaxScrollView

    TextView cuts off while using ParallaxScrollView

    screenshot_2014-08-25-20-41-27

    I've used the following layout for the Parallax effect:

    <com.nirhart.parallaxscroll.views.ParallaxScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:parallax_factor="2"
        android:fitsSystemWindows="true"
        android:background="#ffffffff">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            android:orientation="vertical" >
    
            <ImageView
                android:id="@+id/article_image"
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:adjustViewBounds="true"
                android:baselineAlignBottom="true"
                android:cropToPadding="true"
                android:scaleType="fitCenter"
                android:src="@drawable/about_teaser"
                android:background="#36487d" />
    
    
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:background="#ffffffff"
                   >
    
    
                    <TextView
                        android:id="@+id/title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginTop="10dp"
                        android:text="@string/app_name"
                        android:textColor="#50A7B3"
                        android:textAppearance="?android:attr/textAppearanceLarge"
                        />
    
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceSmall"
                        android:text="Version unbekannt"
                        android:id="@+id/version"
                        android:textColor="#696969"
                        android:layout_marginBottom="10dp"
                        android:layout_marginStart="10dp"
                        android:layout_marginLeft="10dp"/>
    
    
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text=""
                        android:id="@+id/text"
                        android:clickable="true"
                        android:autoLink="email|web"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="10dp"
                        android:layout_marginTop="10dp"
                        android:layout_marginBottom="10dp"
                        android:textColor="#696969"/>
    
                </LinearLayout>
        </LinearLayout>
    </com.nirhart.parallaxscroll.views.ParallaxScrollView>
    

    Any fix for this issue?

    The only fix i know is to add margin/padding manually, but the problem is that with different devices the padding/margin is too much or too less....

    opened by MDXDave 8
  • View not in ParallaxScrollView gets parallax effect

    View not in ParallaxScrollView gets parallax effect

    Hi I have a problem. I implemented your parallaxsrollview, and it worked fine (big thx). Later there was an idea to put a view over the srollview like a header, and it is changing its alpha as you scroll. To achive this, i had to change my scroll container linearlayout to relative. This way it worked, but the srcollview didn't contain all of the views it should. I searched for a solution, and i found, if i put the whole layout in a relativelayout, and in that the original parallaxscrollview with linearlayout, and later in the xml i added the framelayout. It almost worked, but this framelayout got the parallax effect. It is a little bit strange for me. Any idea? thx

    opened by szoszig 6
  • Flikering Issue

    Flikering Issue

    When we fast scroll and take finger up from the scroll view,a white color will flickered over the parallaxed area.Does any one know how to solve this.

    opened by JithinSunny 5
  • Can you disable scrolling on a view?

    Can you disable scrolling on a view?

    I'm using the Google map fragment and it's hard to zoom and move on the map because the scroll action executes at the same time.

    btw it's not an issue is a question

    opened by charlires 4
  • No ParallaxEffect in ListView with API Level 8

    No ParallaxEffect in ListView with API Level 8

    I test your sample project and i see no parallax effect on both ListView examples with Android 2.2 (API Level 8). This is a common problem because i see it in every library for parallax effects.

    no_parallax (ListView example without effect)

    with_parallax (ScrollView example with effect)

    opened by felixWackernagel 4
  • Returning to activity with parallax

    Returning to activity with parallax

    Hello, hopefully this is an easy fix. I setup the parallax and works as i want it to, but my listviews are linked so when you select one, a new activity shows showing more information. the problem is when i return back to the parallax scroll, its super buggy and jumps all over the place. In android studio the logs keep reading "gc_for_alloc freed" do you know how i can fix this or any suggestions would help as well. thanks

    opened by srowe0091 1
  • Parallax View click listener problems

    Parallax View click listener problems

    I am using your library for parallax views, so I have a Imageview at the top & a linear layout below it. I need the linear layout to parallax on top of the imageview. It works fine , but the click listeners get messed up. Clicking on imageviews in the linear layout don't register clicks they rather go to the parallaxed imageview behind it.

    My Layout :

    
    <com.nirhart.parallaxscroll.views.ParallaxScrollView
         xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:tools="http://schemas.android.com/tools"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         app:parallax_factor="1.5"
         app:alpha_factor="1.0"
         tools:context=".DetailActivity" >
    
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        xmlns:fresco="http://schemas.android.com/apk/res-auto"
            xmlns:tools="http://schemas.android.com/tools"
            android:id="@+id/rootLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context="com.test.dribbbleapp.ui.activities.DetailActivity">
    
            <ImageView
                android:id="@+id/detailView"
                android:layout_width="match_parent"
                android:layout_height="400dp"
             />
    
            <View   android:id="@+id/dividerLayout"
                    android:layout_width="fill_parent"
                    android:layout_height="2dp"
                    android:layout_below="@id/detailView"
                    android:layout_marginTop="-41dp"
                    android:background="@color/style_color_primary_dark"/>
    
            <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="100dp"
                    android:layout_below="@id/detailView"
                    android:id="@+id/headerLayout"
                    android:layout_marginTop="-40dp"
                    android:background="@color/style_color_primary">
    
                <ImageView android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:layout_centerVertical="true"
                           android:id="@+id/ivComments"
                           android:layout_marginLeft="32dp"
                           android:src="@drawable/ic_comment_outline_grey"/>
    
                <TextView android:layout_width="wrap_content"
                          android:layout_height="wrap_content"
                          android:id="@+id/tvCommentCount"
                          android:text="134"
                          android:layout_marginLeft="16dp"
                          android:layout_centerVertical="true"
                          android:layout_toRightOf="@id/ivComments"/>
    
                <ImageView android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:id="@+id/ivLikes"
                           android:layout_centerVertical="true"
                           android:src="@drawable/ic_heart_outline_grey"
                           android:layout_marginLeft="32dp"
                           android:layout_toRightOf="@id/tvCommentCount"/>
    
                <TextView android:layout_width="wrap_content"
                          android:layout_height="wrap_content"
                          android:id="@+id/tvLikesCount"
                          android:layout_marginLeft="16dp"
                          android:text="45"
                          android:layout_centerVertical="true"
                          android:layout_toRightOf="@id/ivLikes"/>
    
            </RelativeLayout>
            <TextView
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:id="@+id/tvDescription"
                android:layout_below="@id/headerLayout"/>
    
            <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/tvTags"
                    android:layout_below="@id/tvDescription"/>
    
        </RelativeLayout>
    </com.nirhart.parallaxscroll.views.ParallaxScrollView>
    

    Any ideas what I am doing wrong ?

    Edit : The image click listeners work well but clicking anywhere else on the layout causes the click to go to the background imageview.

    Thanks

    opened by adnan-SM 1
  • Multiple header items with different parallax rates

    Multiple header items with different parallax rates

    I'd like to have a parallax effect where different items in the header scroll at different rates but currently the "addParallaxHeaderView" method seems to overwrite the old view. Would you accept PRs to add this functionality possibly? Ideally all the views would be able to handle different offsets so they all scroll at their own rate. Similar to the video referenced by http://stackoverflow.com/questions/17932798/spotify-listview-header-image-effect (of the spotify app) but in a situation where the text and the image might scroll at different rates.

    I guess my question is, is this possible as the library is or does this functionality need to be added?

    opened by srodenberg 1
  • Feature: Alpha

    Feature: Alpha

    I find your library really useful, thanks for building! I'm using it on a personal project and I found useful to have an 'alpha factor' in addition to parallax-factor. In this way, views move and fade away when scrolling.

    Feel free to merge, comment or discard if you don't find it useful ;)

    Cheers!

    opened by lgvalle 1
  • parallax_scroll_1.5.jar not working

    parallax_scroll_1.5.jar not working

    When I added the jar to my libs folder, my program wouldn't compile. This is the output in Eclipse.

    Error generating final archive: Found duplicate file for APK: AndroidManifest.xml Origin 1: C:[...[\bin\resources.ap_ Origin 2: C:[...]\libs\parallax_scroll_1.5.jar

    opened by 36wish 1
  • ParallaxScrollView while scrolling it hide content on second row

    ParallaxScrollView while scrolling it hide content on second row

    On ParallaxScrollView with parallax_views_num = 3, while scrolling on row second and third it invisible only show first row. Anyone know how to fix it. Please help me.

    Before scrolling screenshot_1533692459

    On scrolling screenshot_1533692463

    opened by ryansoy 0
  • broken since update to support libs 26.1.0

    broken since update to support libs 26.1.0

    Since updating to 26.1.0 With support libs I'm getting this error. Can someone confirm?

    org.schabi.newpipe.report.ErrorActivity: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class com.nirhart.parallaxscroll.views.ParallaxScrollView
                                                                                                           Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class com.nirhart.parallaxscroll.views.ParallaxScrollView
                                                                                                           Caused by: java.lang.reflect.InvocationTargetException
                                                                                                               at java.lang.reflect.Constructor.newInstance0(Native Method)
                                                                                                               at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
                                                                                                               at android.view.LayoutInflater.createView(LayoutInflater.java:645)
                                                                                                               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
                                                                                                               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
                                                                                                               at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
                                                                                                               at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
                                                                                                               at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
                                                                                                               at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
                                                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
                                                                                                               at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
                                                                                                               at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:339)
                                                                                                               at android.view.LayoutInflater.inflate(<Xposed>)
                                                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
                                                                                                               at org.schabi.newpipe.fragments.detail.VideoDetailFragment.onCreateView(VideoDetailFragment.java:187)
                                                                                                               at android.support.v4.app.Fragment.performCreateView(Fragment.java:2354)
                                                                                                               at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1419)
                                                                                                               at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1740)
                                                                                                               at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1809)
                                                                                                               at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:799)
                                                                                                               at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2580)
                                                                                                               at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2367)
                                                                                                               at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2322)
                                                                                                               at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2229)
                                                                                                               at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:700)
                                                                                                               at android.os.Handler.handleCallback(Handler.java:751)
                                                                                                               at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                                               at android.os.Looper.loop(Looper.java:154)
                                                                                                               at android.app.ActivityThread.main(ActivityThread.java:6186)
                                                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
                                                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
                                                                                                               at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:103)
                                                                                                            Caused by: java.lang.NumberFormatException: For input string: "1.9"
                                                                                                               at java.lang.Integer.parseInt(Integer.java:521)
                                                                                                               at com.android.internal.util.XmlUtils.convertValueToInt(XmlUtils.java:133)
                                                                                                               at android.content.res.TypedArray.getInt(TypedArray.java:365)
                                                                                                               at android.content.res.XResources$XTypedArray.getInt(XResources.java:1409)
                                                                                                               at com.nirhart.parallaxscroll.views.ParallaxScrollView.init(ParallaxScrollView.java:45)
                                                                                                               at com.nirhart.parallaxscroll.views.ParallaxScrollView.<init>(ParallaxScrollView.java:33)
                                                                                                               at java.lang.reflect.Constructor.newInstance0(Native Method) 
                                                                                                               at java.lang.reflect.Constructor.newInstance(Constructor.java:430) 
                                                                                                               at android.view.LayoutInflater.createView(LayoutInflater.java:645) 
                                                                                                               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787) 
                                                                                                               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) 
                                                                                                               at android.view.LayoutInflater.rInflate(LayoutInflater.java:858) 
                                                                                                               at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
                                                                                                               at android.view.LayoutInflater.rInflate(LayoutInflater.java:861) 
                                                                                                               at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
                                                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:518) 
                                                                                                               at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method) 
                                                                                                               at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:339) 
                                                                                                               at android.view.LayoutInflater.inflate(<Xposed>) 
                                                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:426) 
                                                                                                               at org.schabi.newpipe.fragments.detail.VideoDetailFragment.onCreateView(VideoDetailFragment.java:187) 
                                                                                                               at android.support.v4.app.Fragment.performCreateView(Fragment.java:2354) 
                                                                                                               at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1419) 
                                                                                                               at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1740) 
                                                                                                               at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1809) 
                                                                                                               at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:799) 
                                                                                                               at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2580) 
                                                                                                               at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2367) 
                                                                                                               at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2322) 
                                                                                                               at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2229) 
                                                                                                               at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:700) 
                                                                                                               at android.os.Handler.handleCallback(Handler.java:751) 
                                                                                                               at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                                                               at android.os.Looper.loop(Looper.java:154) 
                                                                                                               at android.app.ActivityThread.main(ActivityThread.java:6186) 
                                                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) 
                                                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) 
                                                                                                               at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:103) 
                                                                                                           android.view.InflateException: Binary XML file line #0: Error inflating class com.nirhart.parallaxscroll.views.ParallaxScrollView
                                                                                                           Caused by: java.lang.reflect.InvocationTargetException
                                                                                                               at java.lang.reflect.Constructor.newInstance0(Native Method)
                                                                                                               at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
                                                                                                               at android.view.LayoutInflater.createView(LayoutInflater.java:645)
                                                                                                               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
                                                                                                               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
                                                                                                               at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
                                                                                                               at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
                                                                                                           	at android.view.Layou
    
    opened by theScrabi 19
  • Parallax on the bottom?

    Parallax on the bottom?

    I'm building an app where I'm required to have two parallaxed views, one at the top and one at the bottom, which consist of images, and between them there should be some long text. How could I implement this? I have tried just doing it as if they were both one after the other, but if the text is too long, when I get to the bottom, the parallaxed view has almost completely disappeared from the screen(either up or down, depending on the sign of the parallax factor).

    opened by noldidrita 0
  • Problem with GridView

    Problem with GridView

    i'm implementing Parallax effect on one of my fragments , that contains of an ImageView and a GridView below that. if i use wrap_content for my GridView it's height change to just one row of my grid and there is no parallax effect , but if i use a fixed height for GridView it would be working. how can i make it work with wrap_content?

    <com.nirhart.parallaxscroll.views.ParallaxScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:parallax_factor="1.9" >
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <ImageView
            android:id="@+id/img_gallery_selected"
            android:layout_width="match_parent"
            android:layout_height="220dp"
            android:scaleType="centerCrop"
            tools:ignore="HardcodedText"/>
    
        <GridView
            android:id="@+id/gridView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:columnWidth="90dp"
            android:numColumns="auto_fit"
            android:verticalSpacing="2dp"
            android:horizontalSpacing="2dp"
            android:stretchMode="columnWidth"
            android:gravity="center"
            tools:ignore="HardcodedText">
        </GridView>
    
    
    </LinearLayout>
    
    </com.nirhart.parallaxscroll.views.ParallaxScrollView>
    
    opened by Arash-gm 0
Owner
Nir Hartmann
Nir Hartmann
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
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

Emil Sjölander 1k Jan 7, 2023
A tiling scrollview to display large picture (similar to iOS "CATiledLayer")

Project is not maintained right now. Please see the note at the end of this file. Introduction This Android widget aims to provide a scalable way to d

Sebastian Roth 245 Nov 25, 2022
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.

ListBuddies This library is not maintained anymore and there will be no further releases Android library of a pair of auto-scroll circular parallax Li

JPARDOGO 970 Dec 29, 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
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
Bringing extended scrolling features to Android's native ListView and ExpandableListView.

About QuickScroll QuickScroll is a library aimed at creating similar scrolling experiences to the native Contacts app's People view. It has the same s

Andras Kindler 461 Nov 11, 2022
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

null 187 Dec 22, 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
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

Erik Wallentinsen 639 Nov 17, 2022
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

Bhavya  Mehta 446 Nov 20, 2022
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

Applidium 314 Nov 10, 2022
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

Maciej Lopacinski 164 Nov 28, 2022
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

Felipe Lima 191 Nov 25, 2022
AssignmentListView is an Android ListView widget which calculate image loading times.

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

null 5 Sep 9, 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
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

Carlo Marinangeli 847 Dec 30, 2022