A pull to zoom-in RecyclerView for android

Overview

PullZoomRecyclerView

Android Arsenal

Using RecyclerView requires three steps:

  • Step one: use the PullZoomRecyclerView in XML
  • Step two: call the function setAdapter and the function setLayoutManager
  • Step three: call the function setZoomView and the function setHeaderContainer

Features

  • Two Pull Zoom mode (ZOOM_FOOTER or ZOOM_HEADER)
  • Listening pull process (including pullStart、 pullZooming, pullEnd)
  • You can reset the default smooth scroll to top interpolator(the default is DecelerateInterpolator)

Precautions

  1. Please make sure PullZoomRecyclerView is the root layout, or the parent of the PullZoomRecyclerView not intercept the touch event.
  2. Please ensure the Ancestor of the ZoomView support zoom, means that the Ancestor of the ZoomView should use wrap_parent, if the Ancestor is the exact value, whatever you adjust the child, will not work well.

Usage

Add dependency

dependencies {
   compile 'com.dinuscxj:pullzoomrecyclerview:1.0.4'
}

Used in xml

<com.dinuscxj.pullzoom.PullZoomRecyclerView
   android:id="@+id/recycler_view"
   android:layout_width="match_parent"
   android:layout_height="match_parent"/>

Used in java

mPullZoomRecyclerView.setAdapter(new Adapter());
mPullZoomRecyclerView.setLayoutMannager(new LinearLayoutManager(context));
mPullZoomRecyclerView.setZoomView(zoomView);
mPullZoomRecyclerView.setHeaderContainer(headerContainer);

Thanks

PullZoomView

Misc

QQ Group: 342748245

License

Copyright 2015-2019 dinus

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.
Comments
  • Multiple code improvements - squid:MethodCyclomaticComplexity, squid:S134, squid:S1151, squid:S1213, squid:S1186, squid:S1068

    Multiple code improvements - squid:MethodCyclomaticComplexity, squid:S134, squid:S1151, squid:S1213, squid:S1186, squid:S1068

    This pull request is focused on resolving occurrences of Sonar rules squid:MethodCyclomaticComplexity - Methods should not be too complex. squid:S134 - Control flow statements "if", "for", "while", "switch" and "try" should not be nested too deeply. squid:S1151 - "switch case" clauses should not have too many lines. squid:S1213 - The members of an interface declaration or class should appear in a pre-defined order. squid:S1186 - Methods should not be empty. squid:S1068 - Unused private fields should be removed. You can find more information about the issue here: https://dev.eclipse.org/sonar/rules/show/squid:MethodCyclomaticComplexity https://dev.eclipse.org/sonar/rules/show/squid:S134 https://dev.eclipse.org/sonar/rules/show/squid:S1151 https://dev.eclipse.org/sonar/rules/show/squid:S1213 https://dev.eclipse.org/sonar/rules/show/squid:S1186 https://dev.eclipse.org/sonar/rules/show/squid:S1068 Please let me know if you have any questions. George Kankava

    opened by georgekankava 1
  • common-java:DuplicatedBlocks - Source files should not have any duplicated blocks

    common-java:DuplicatedBlocks - Source files should not have any duplicated blocks

    This pull request is focused on resolving occurrences of Sonar rule common-java:DuplicatedBlocks - Source files should not have any duplicated blocks. You can find more information about the issue here: https://dev.eclipse.org/sonar/rules/show/common-java:DuplicatedBlocks Please let me know if you have any questions. George Kankava

    opened by georgekankava 0
  • Multiple code improvements - squid:S1171, squid:S1066, squid:S1213, squid:S1301, squid:UselessParenthesesCheck

    Multiple code improvements - squid:S1171, squid:S1066, squid:S1213, squid:S1301, squid:UselessParenthesesCheck

    This pull request is focused on resolving occurrences of Sonar rules squid:S1171 - Only static class initializers should be used. squid:S1066 - Collapsible "if" statements should be merged. squid:S1213 - The members of an interface declaration or class should appear in a pre-defined order. squid:S1301 - "switch" statements should have at least 3 "case" clauses. squid:UselessParenthesesCheck - Useless parentheses around expressions should be removed to prevent any misunderstanding. squid:SwitchLastCaseIsDefaultCheck - "switch" statements should end with a "default" clause. You can find more information about the issue here: https://dev.eclipse.org/sonar/rules/show/squid:S1171 https://dev.eclipse.org/sonar/rules/show/squid:S1066 https://dev.eclipse.org/sonar/rules/show/squid:S1213 https://dev.eclipse.org/sonar/rules/show/squid:S1301 https://dev.eclipse.org/sonar/rules/show/squid:UselessParenthesesCheck https://dev.eclipse.org/sonar/rules/show/squid:SwitchLastCaseIsDefaultCheck Please let me know if you have any questions. George Kankava

    opened by georgekankava 0
  • 空指针异常

    空指针异常

    Android 4.4.2, API19, Kitkat

    非必现,崩溃日志

    E/AndroidRuntime( 4892): java.lang.NullPointerException
    E/AndroidRuntime( 4892): 	at com.dinuscxj.pullzoom.PullZoomRecyclerView.b(PullZoomRecyclerView.java:2120)
    E/AndroidRuntime( 4892): 	at com.dinuscxj.pullzoom.PullZoomBaseView.onInterceptTouchEvent(PullZoomBaseView.java:2157)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1860)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2219)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2219)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2219)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2219)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2219)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2219)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2219)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2219)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2219)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2219)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2219)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2219)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2219)
    E/AndroidRuntime( 4892): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
    
    opened by Logan676 0
  • Start zooming during fling?

    Start zooming during fling?

    Is it possible to start the zooming effect during the fling? Right now if you fling and reach the top, everything stops. Then you have to try to scroll again so that the zooming effect starts. It would be great to add the zooming while flinging to improve motion effect

    opened by amanzan 1
Owner
dinus_developer
blank
dinus_developer
TikTok-RecyclerView - This is a demo app built using 'Koin' a new dependency injection framework for Android along with RecyclerView and ExoPlayer2.

TikTok-RecyclerView Demo About This is a demo app built using 'Koin' a new dependency injection framework for Android along with RecyclerView and ExoP

Baljeet Singh 19 Dec 28, 2022
A RecyclerView that implements pullrefresh and loadingmore featrues.you can use it like a standard RecyclerView

XRecyclerView a RecyclerView that implements pullrefresh , loadingmore and header featrues.you can use it like a standard RecyclerView. you don't need

XRecyclerView 5.3k Dec 26, 2022
A RecyclerView that implements pullrefresh and loadingmore featrues.you can use it like a standard RecyclerView

XRecyclerView a RecyclerView that implements pullrefresh , loadingmore and header featrues.you can use it like a standard RecyclerView. you don't need

XRecyclerView 5.3k Dec 26, 2022
Carousel Recyclerview let's you create carousel layout with the power of recyclerview by creating custom layout manager.

Carousel Recyclerview let's you create carousel layout with the power of recyclerview by creating custom layout manager.

Jack and phantom 504 Dec 25, 2022
RecyclerView : SleepQualityTracker with RecyclerView app

RecyclerView - SleepQualityTracker with RecyclerView app SleepQualityTracker with RecyclerView This app builds on the SleepQualityTracker developed pr

Kevin 2 May 14, 2022
Pagination-RecyclerView - Simple and easy way to Paginating a RecyclerView

Pagination-RecyclerView Simple and easy way to Paginating a RecyclerView Android

Rakshit Nawani 0 Jan 3, 2022
An Android Animation library which easily add itemanimator to RecyclerView items.

RecyclerView Animators RecyclerView Animators is an Android library that allows developers to easily create RecyclerView with animations. Please feel

Daichi Furiya 11.2k Jan 8, 2023
A RecyclerView(advanced and flexible version of ListView in Android) with refreshing,loading more,animation and many other features.

UltimateRecyclerView Master branch: Dev branch: Project website:https://github.com/cymcsg/UltimateRecyclerView Description UltimateRecyclerView is a R

MarshalChen 7.2k Jan 2, 2023
[UNMAINTAINED] Sticky Headers decorator for Android's RecyclerView

This project is no longer being maintained sticky-headers-recyclerview This decorator allows you to easily create section headers for RecyclerViews us

timehop 3.7k Jan 8, 2023
Android library providing simple way to control divider items (ItemDecoration) of RecyclerView

RecyclerView-FlexibleDivider Android library providing simple way to control divider items of RecyclerView Release Note [Release Note] (https://github

Yoshihito Ikeda 2.4k Dec 18, 2022
[] Super fast and easy way to create header for Android RecyclerView

DEPRECATED I created this library back in the day when I thought RecyclerView was all new and difficult. Writing an adapter that could inflate multipl

Bartek Lipinski 1.3k Dec 28, 2022
Android Library to provide swipe, click and other functionality to RecyclerView

RecyclerViewEnhanced Android Library to provide swipe, click and other functionality to RecyclerView Usage Add this to your build.gradle file dependen

Nikhil Panju 1k Dec 29, 2022
Android library defining adapter classes of RecyclerView to manage multiple view types

RecyclerView-MultipleViewTypeAdapter RecyclerView adapter classes for managing multiple view types Release Note [Release Note] (https://github.com/yqr

Yoshihito Ikeda 414 Nov 21, 2022
ItemDecoration for RecyclerView using LinearLayoutManager for Android

RecyclerItemDecoration RecyclerItemDecoration allows you to draw divider between items in recyclerview with multiple ViewType without considering item

magiepooh 328 Dec 27, 2022
Set of plugable extenstions for Android RecyclerView

DynamicRecyclerView Set of light and non-invasive extensions for Android RecyclerView widget. Does not use custom RecyclerView or LayoutManager. With

Ilja S. 342 Nov 11, 2022
Android library for RecyclerView to manage order of items and multiple view types.

recyclerview-binder Android Library for RecyclerView to manage order of items and multiple view types. Features Insert any items to wherever you want

Satoru Fujiwara 185 Nov 15, 2022
Android Library to provide swipe, click and other functionality to RecyclerView

RecyclerViewEnhanced Android Library to provide swipe, click and other functionality to RecyclerView Usage Add this to your build.gradle file dependen

Nikhil Panju 1k Dec 29, 2022
Epoxy is an Android library for building complex screens in a RecyclerView

Epoxy Epoxy is an Android library for building complex screens in a RecyclerView. Models are automatically generated from custom views or databinding

Airbnb 8.1k Dec 29, 2022