android - SwipeDismissListViewTouchListener in ListView and ViewPager -


i have viewpager contains listfragment touchlistener (swipedismisslistviewtouchlistener). modified viewpager this:

public class customviewpager extends viewpager {  public customviewpager(context context, attributeset attrs) {     super(context, attrs); }  private boolean pagingenabled = true;  public void setpagingenabled(boolean enabled) {     pagingenabled = enabled; }  @override public boolean onintercepttouchevent(motionevent event) {     if (!pagingenabled) {         return false; // not intercept     }     return super.onintercepttouchevent(event); }  @override public boolean ontouchevent(motionevent event) {     if (!pagingenabled) {         return false; // not consume     }     return super.ontouchevent(event);    }   } 

and disable swipe of viewpager onoptionsitemselected in listfragment method.

@override public boolean onoptionsitemselected(menuitem item) {     int id = item.getitemid();     if (id == r.id.action_edit) {         customviewpager vp = (customviewpager) getactivity().findviewbyid(r.id.pager);         vp.setpagingenabled(false);         getlistview().requestdisallowintercepttouchevent(true);      }     return super.onoptionsitemselected(item); }   @override public void onviewcreated(view view, bundle savedinstancestate) {     super.onviewcreated(view, savedinstancestate);     swipedismisslistviewtouchlistener touchlistener =             new swipedismisslistviewtouchlistener(                     getlistview(),                     new swipedismisslistviewtouchlistener.dismisscallbacks() {                          @override                         public boolean candismiss(int position) {                             return true;                         }                          @override                         public void ondismiss(listview listview, int[] reversesortedpositions) {                             (int position : reversesortedpositions) {                                 removeitem(position);                             }                          }                     }             );      getlistview().setontouchlistener(touchlistener);     // setting scroll listener required ensure during listview scrolling,     // don't swipes.     getlistview().setonscrolllistener(touchlistener.makescrolllistener());   } 

the swipe of viewpager disabled problem can not running swipedismisslistviewtouchlistener. have tested these answers not work me

nesting android viewpager, swiping listitems inside listview horizontally

viewpager intercepts x-axis ontouch events. how disable?

capture swipe dismiss listview gestures in viewpager

any solution? thanks

your issue should solved in few simple actions.

  • remove onintercepttouch() , ontouch() @ viewpager, not needed.
  • if im not mistaken u r missing call notifydatasetchange() after loop in ondismiss().
  • go swipetouchlistener code , create clause direction enable ceratain direction (think google enable swipe 1 direction). im guessing u r enabling swipe first , last pages, if not think becuase enabling swipe2dismiss middle page bad ux descion.

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -