i want swipe item of listview right , left. purpose use project.
https://github.com/daimajia/androidswipelayout can swipe items when after swipe item, item's onclick called. don't want this. made effort on swipelistener colud not overcome situation totally. can swipe left right without calling onclickitem when swipe itemclick call
swipelayout.addswipelistener(new swipelayout.swipelistener() { @override public void onstartopen(swipelayout swipelayout) { lineisclose = false; } @override public void onopen(swipelayout swipelayout) { lineisclose = false; } @override public void onstartclose(swipelayout swipelayout) { lineisclose = false; } @override public void onclose(swipelayout swipelayout) { lineisclose = true ; } @override public void onupdate(swipelayout swipelayout, int i, int i1) { } @override public void onhandrelease(swipelayout swipelayout, float v, float v1) { } }); 
edit: code
adapter = new productslistadapter(getactivity(), currentlist); adapter.setmode(attributes.mode.multiple); listview.setadapter(adapter); package com.akakce.market.adapters; import android.content.context; import android.graphics.color; import android.graphics.paint; import android.os.handler; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.imageview; import android.widget.textview; import com.daimajia.swipe.swipelayout; import com.daimajia.swipe.adapters.baseswipeadapter; import com.akakce.market.models.productlist; import com.akakce.market.managers.sharedprefmanager; import com.akakce.market.models.product; import com.akakce.market.r; import com.akakce.market.utils.gifmovieview; import java.util.list; /** * created cuneyt on 1.7.2015. */ public class productslistadapter extends baseswipeadapter { context mcontext; list<product> list; productlist currentlist; boolean lineisclose = true; public productslistadapter(context context, productlist currentlist) { this.mcontext = context; this.currentlist = currentlist; this.list = currentlist.getproducts(); } @override public int getswipelayoutresourceid(int i) { return r.id.swipe; } @override public view generateview(final int position, viewgroup viewgroup) { view v = layoutinflater.from(mcontext).inflate(r.layout.item_products_list, null); return v; } @override public void fillvalues(final int position, view convertview) { product temp = list.get(position); final textview name = (textview) convertview.findviewbyid(r.id.name); final textview count = (textview) convertview.findviewbyid(r.id.count); final imageview categoryview = (imageview) convertview.findviewbyid(r.id.imageview_category); final gifmovieview gifmovieview = (gifmovieview) convertview.findviewbyid(r.id.gif_1); final swipelayout swipelayout = (swipelayout) convertview.findviewbyid(getswipelayoutresourceid(position)); swipelayout.getdragedgemap().clear(); swipelayout.adddrag(swipelayout.dragedge.left, swipelayout.findviewbyid(r.id.bottom_wrapper)); swipelayout.addswipelistener(new swipelayout.swipelistener() { @override public void onstartopen(swipelayout swipelayout) { lineisclose = false; } @override public void onopen(swipelayout swipelayout) { lineisclose = false; } @override public void onstartclose(swipelayout swipelayout) { lineisclose = false; } @override public void onclose(swipelayout swipelayout) { lineisclose = true ; } @override public void onupdate(swipelayout swipelayout, int i, int i1) { } @override public void onhandrelease(swipelayout swipelayout, float v, float v1) { } }); if (temp.iscompleted()) { name.settextcolor(mcontext.getresources().getcolor(r.color.gray)); name.setpaintflags(name.getpaintflags() | paint.strike_thru_text_flag); count.setpaintflags(count.getpaintflags() | paint.strike_thru_text_flag); } else { name.settextcolor(mcontext.getresources().getcolor(r.color.black)); name.setpaintflags(name.getpaintflags() & (~paint.strike_thru_text_flag)); count.setpaintflags(count.getpaintflags() & (~paint.strike_thru_text_flag)); } name.settext(temp.getname()); count.settext("" + temp.getcount()); if (position % 2 == 0)// oylesine var categoryview.setbackgroundcolor(color.blue); if (position % 3 == 0) categoryview.setbackgroundcolor(color.red); convertview.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { if ( lineisclose ){ gifmovieview.setvisibility(view.visible); final handler handler = new handler(); handler.postdelayed(new runnable() { @override public void run() { gifmovieview.setvisibility(view.gone); if (!list.get(position).iscompleted()) {//false ise true yap list.get(position).setcompleted(true); name.settextcolor(mcontext.getresources().getcolor(r.color.gray)); name.setpaintflags(name.getpaintflags() | paint.strike_thru_text_flag); count.setpaintflags(count.getpaintflags() | paint.strike_thru_text_flag); } else { // true ise false yap list.get(position).setcompleted(false); name.settextcolor(mcontext.getresources().getcolor(r.color.black)); name.setpaintflags(name.getpaintflags() & (~paint.strike_thru_text_flag)); count.setpaintflags(count.getpaintflags() & (~paint.strike_thru_text_flag)); } currentlist.setproducts(list); sharedprefmanager.savelist(currentlist); } }, 600); //savelist(gifmovieview); } } }); convertview.findviewbyid(r.id.bottom_wrapper).setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { swipelayout.close(); // // removefromlist(position); list.remove(position); notifydatasetchanged(); } }); } @override public int getcount() { return list.size(); } @override public object getitem(int position) { return list.get(position); } @override public long getitemid(int position) { return position; } }
i have same problem , resolved code :
viewholder.swipelayout.addswipelistener(new simpleswipelistener() { @override public void onopen(swipelayout layout) { super.onopen(layout); ((fragment)mfragment).setlistviewclickable(false); } @override public void onclose(swipelayout layout) { super.onclose(layout); mhandler.postdelayed(new runnable() { @override public void run() { ((fragment) mfragment).setlistviewclickable(true); } } , 100); } @override public void onstartopen(swipelayout layout) { ((fragment)mfragment).setlistviewclickable(false); super.onstartopen(layout); } @override public void onstartclose(swipelayout layout) { ((fragment)mfragment).setlistviewclickable(false); super.onstartclose(layout); } }); generally when swipe layout open disable listview click , when swipe layout close enable listview click after time 100 ms.
Comments
Post a Comment