android - How to use SwipeDismissBehavior.OnDismissListener on RecyclerView -


i trying use swipedismissbehavoir design support library. i've list items in recyclerview , swiping item have dismiss (like google inbox app) .

i've set listener recyclerview items swipedismissbehavior ondismiss listener not getting called.

  swipedismissbehavior behavior = new swipedismissbehavior();      coordinatorlayout.layoutparams params = (coordinatorlayout.layoutparams)mitemlayout.getlayoutparams();     params.setbehavior(behavior);     behavior.setlistener(new swipedismissbehavior.ondismisslistener() {         @override         public void ondismiss(view view) {          }          @override         public void ondragstatechanged(int i) {          }     });     mitemlayout.setlayoutparams(params); 

here example how delete row swipe

mainactivity.java

    @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          final recyclerview recyclerview = (recyclerview)findviewbyid(r.id.recyclerview);          // init layout manager         recyclerview.layoutmanager layoutmanager = new linearlayoutmanager(this);        final arraylist<string> list = new arraylist<string>();         list.add("item1");         list.add("item2");         list.add("item3");         list.add("item4");         list.add("item5");         list.add("item6");          final myadapter adapter = new myadapter(list);         recyclerview.setlayoutmanager(layoutmanager);         recyclerview.setadapter(adapter);          itemtouchhelper swipetodismisstouchhelper = new itemtouchhelper(new itemtouchhelper.simplecallback(                 itemtouchhelper.left | itemtouchhelper.right, itemtouchhelper.left | itemtouchhelper.right) {             @override             public boolean onmove(recyclerview recyclerview, recyclerview.viewholder viewholder, recyclerview.viewholder target) {                 // callback drag-n-drop, false skip feature                 return false;             }              @override             public void onswiped(recyclerview.viewholder viewholder, int direction) {                 // callback swipe dismiss, removing item data , adapter                  list.remove(viewholder.getadapterposition());                 adapter.notifyitemremoved(viewholder.getadapterposition());             }         });         swipetodismisstouchhelper.attachtorecyclerview(recyclerview);      } 

adapter

    public class myadapter extends recyclerview.adapter<myadapter.myviewholder>    {      arraylist<string> dataset_;      public static class myviewholder extends recyclerview.viewholder{         public button mbtn;         public textview mtextview2;          public myviewholder(view v){             super(v);             mbtn  = (button) itemview.findviewbyid(r.id.delete);             mtextview2 = (textview) itemview.findviewbyid(r.id.textview2);         }     }       public myadapter (arraylist<string> dataset){         dataset_ = dataset;     }      @override     public myviewholder oncreateviewholder(viewgroup parent, int viewtype){          view v = layoutinflater.from(parent.getcontext()).inflate(r.layout.my_text_view,parent,false);          myviewholder myviewholder = new myviewholder(v);         return myviewholder;     }      @override     public void onbindviewholder(myviewholder holder,int position){         holder.mtextview2.settext(dataset_.get(position));     }      @override     public int getitemcount(){         return dataset_.size();     } } 

layout

 <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"               android:layout_width="match_parent"               android:layout_height="match_parent"               android:baselinealigned="false"               android:orientation="vertical"               android:padding="16dp">      <textview         style="?android:listseparatortextviewstyle"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:text="@string/heading_dismissable_recycler_view" />      <android.support.v7.widget.recyclerview         android:id="@+id/recyclerview"         android:layout_width="match_parent"         android:layout_height="match_parent"/> </linearlayout> 

item in recyclerview

      <?xml version="1.0" encoding="utf-8"?>       <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"               android:orientation="vertical"               android:layout_width="match_parent"               android:layout_height="match_parent">        <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"         android:orientation="horizontal"         android:layout_width="match_parent"         android:layout_height="match_parent">          <textview             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:textappearance="?android:attr/textappearancemedium"             android:text="medium text"             android:id="@+id/textview2"/>     <button         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:id="@+id/delete"         android:text="delete"         android:layout_marginleft="150dp"         android:visibility="invisible" />     </linearlayout>     </linearlayout> 

Comments

Popular posts from this blog

node.js - Using Node without global install -

How to access a php class file from PHPFox framework into javascript code written in simple HTML file? -

java - Null response to php query in android, even though php works properly -