GithubHelp home page GithubHelp logo

kapal's Introduction

Android SwipeableRecyclerView

Based on romannurik`s Android-SwipeToDismiss.

Sample project implementation of a list of CardViews in a RecyclerView with a TouchListener that allows dismissing of elements by swiping the elements to the left or right.

Output sample

####How to use

  • Add these Gradle dependencies to your app's module:

    dependencies {
        ...
        
        // already includes 'com.android.support:recyclerview-v7:23.1.1'
        compile 'com.github.brnunes:swipeablerecyclerview:1.0.2'
    
        // only necessary if you are using CardView
        compile 'com.android.support:cardview-v7:23.1.1'
    }
    

The RecyclerView and CardView widgets are part of the v7 Support Libraries.

  • Instantiate a SwipeableRecyclerViewTouchListener passing as parameters the RecyclerView and a SwipeableRecyclerViewTouchListener.SwipeListener that will receive the callbacks.

  • Add the instantiated SwipeableRecyclerViewTouchListener as a RecyclerView.OnItemTouchListener.

    SwipeableRecyclerViewTouchListener swipeTouchListener =
            new SwipeableRecyclerViewTouchListener(mRecyclerView,
                    new SwipeableRecyclerViewTouchListener.SwipeListener() {
                        @Override
                        public boolean canSwipeLeft(int position) {
                            return true;
                        }
    
                        @Override
                        public boolean canSwipeRight(int position) {
                            return true;
                        }
    
                        @Override
                        public void onDismissedBySwipeLeft(RecyclerView recyclerView, int[] reverseSortedPositions) {
                            for (int position : reverseSortedPositions) {
                                mItems.remove(position);
                                mAdapter.notifyItemRemoved(position);
                            }
                            mAdapter.notifyDataSetChanged();
                        }
    
                        @Override
                        public void onDismissedBySwipeRight(RecyclerView recyclerView, int[] reverseSortedPositions) {
                            for (int position : reverseSortedPositions) {
                                mItems.remove(position);
                                mAdapter.notifyItemRemoved(position);
                            }
                            mAdapter.notifyDataSetChanged();
                        }
                    });
    
    mRecyclerView.addOnItemTouchListener(swipeTouchListener);

kapal's People

Contributors

azkaakh avatar christoap avatar christoapb avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.