Android编程中ViewPage判断左右滑动方向的方法
本文实例讲述了Android编程中ViewPage判断左右滑动方向的方法。分享给大家供大家参考,具体如下:
packagecom.meityitian.app.views; importandroid.content.Context; importandroid.support.v4.view.ViewPager; importandroid.util.AttributeSet; importandroid.util.Log; importcom.meityitian.app.utils.Debug; /** *重写,添加了判定滑动方向的方法 *@authorzxy * */ publicclassmeityitianViewPagerextendsViewPager{ privatebooleanleft=false; privatebooleanright=false; privatebooleanisScrolling=false; privateintlastValue=-1; privateChangeViewCallbackchangeViewCallback=null; publicmeityitianViewPager(Contextcontext,AttributeSetattrs){ super(context,attrs); init(); } publicmeityitianViewPager(Contextcontext){ super(context); init(); } /** *initmethod. */ privatevoidinit(){ setOnPageChangeListener(listener); } /** *listener,togetmovedirection. */ publicOnPageChangeListenerlistener=newOnPageChangeListener(){ @Override publicvoidonPageScrollStateChanged(intarg0){ if(arg0==1){ isScrolling=true; }else{ isScrolling=false; } Debug.infoByTag("meityitianViewPager", "meityitianViewPageronPageScrollStateChanged:arg0:" +arg0); if(arg0==2){ Debug.infoByTag("meityitianViewPager", "meityitianViewPageronPageScrollStateChangeddirectionleft?" +left); Debug.infoByTag("meityitianViewPager", "meityitianViewPageronPageScrollStateChangeddirectionright?" +right); //notify.... if(changeViewCallback!=null){ changeViewCallback.changeView(left,right); } right=left=false; } } @Override publicvoidonPageScrolled(intarg0,floatarg1,intarg2){ if(isScrolling){ if(lastValue>arg2){ //递减,向右侧滑动 right=true; left=false; }elseif(lastValue<arg2){ //递减,向右侧滑动 right=false; left=true; }elseif(lastValue==arg2){ right=left=false; } } Log.i("meityitianViewPager", "meityitianViewPageronPageScrolledlast:arg2," +lastValue+":"+arg2); lastValue=arg2; } @Override publicvoidonPageSelected(intarg0){ if(changeViewCallback!=null){ changeViewCallback.getCurrentPageIndex(arg0); } } }; /** *得到是否向右侧滑动 *@returntrue为右滑动 */ publicbooleangetMoveRight(){ returnright; } /** *得到是否向左侧滑动 *@returntrue为左做滑动 */ publicbooleangetMoveLeft(){ returnleft; } /** *滑动状态改变回调 *@authorzxy * */ publicinterfaceChangeViewCallback{ /** *切换视图?决定于left和right。 *@paramleft *@paramright */ publicvoidchangeView(booleanleft,booleanright); publicvoidgetCurrentPageIndex(intindex); } /** *set... *@paramcallback */ publicvoidsetChangeViewCallback(ChangeViewCallbackcallback){ changeViewCallback=callback; } }
希望本文所述对大家Android程序设计有所帮助。