Skip to content

promontory7/DynamicRecyclerView

 
 

Repository files navigation

DynamicRecyclerView

Set of light and non-invasive extensions for Android RecyclerView widget. Does not use custom RecyclerView or LayoutManager. With this extensions you can create RecyclerView with following features:

###Drag and drop reordering.

  • Implemented using RecyclerView.OnItemTouchListener
  • Support for custom "Drag frame" drawable
  • ~350 LOC

#####Usage:

    dragDropTouchListener = new DragDropTouchListener(recyclerView, this) {
        @Override
        protected void onItemSwitch(RecyclerView recyclerView, int from, int to) {
            adapter.swapPositions(from, to);
            adapter.notifyItemChanged(to);
            adapter.notifyItemChanged(from);
 
         @Override
         protected void onItemDrop(RecyclerView recyclerView, int position) {
        }
   };
   }
   
    recyclerView.addOnItemTouchListener(dragDropTouchListener);

###Swipe to dismiss items This is port of Roman Nurik's SwipeToDismiss for ListView

  • Implemented using RecyclerView.OnItemTouchListener
  • Configurable swipe directions: only left, only right, both, none
  • ~320 LOC

#####Usage:

 swipeToDismissTouchListener = new SwipeToDismissTouchListener(recyclerView, new SwipeToDismissTouchListener.DismissCallbacks() {
            @Override
           public SwipeToDismissTouchListener.SwipeDirection canDismiss(int position) {
               return SwipeToDismissTouchListener.SwipeDirection.RIGHT;
           }
            @Override
           public void onDismiss(RecyclerView view, List<SwipeToDismissTouchListener.PendingDismissData> dismissData) {
              for (SwipeToDismissTouchListener.PendingDismissData data : dismissData) {
                  adapter.removeItem(data.position);
                  adapter.notifyItemRemoved(data.position);
              }
           }
   });
  recyclerView.addOnItemTouchListener(swipeToDismissTouchListener);

###Select/activate items

  • Small RecyclerViewAdapter extension that can keep a state of selected/activated items

#####Usage Use as normal RecyclerView.Adapter

###ItemTouchListenerAdapter As RecyclerView does not have standard way to add click listeners to the items, this RecyclerView.OnItemTouchListener intercepts touch events and translates them to simple onItemClick() and onItemLongClick() callbacks.

#####Usage

    recyclerView.addOnItemTouchListener(new ItemTouchListenerAdapter(recyclerView, this));

###Sample Sample app code is included, please see DemoActivity.

For full featured demo of real app see /du:/ tasks app on Google Play Store

About

Set of plugable extenstions for Android RecyclerView

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%