在我的Android应用程序中,我正在使用vIEwpager进行图像滑动.我的要求是,如果用户从第一页和最后一页滑出,则该活动应完成.
我已将此值设为example.但是在我的活动中未调用方法setonSwipeOutListener.
这是我的自定义视图寻呼机类:
public class CustomVIEwPager extends VIEwPager { public CustomVIEwPager(Context context) { super(context); } public CustomVIEwPager(Context context, AttributeSet attrs) { super(context, attrs); } float mStartDragX; OnSwipeOutListener mListener; public voID setonSwipeOutListener(OnSwipeOutListener Listener) { mListener = Listener; } @OverrIDe public boolean onIntercepttouchEvent(MotionEvent ev) { float x = ev.getX(); switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: mStartDragX = x; break; case MotionEvent.ACTION_MOVE: if (mStartDragX < x && getCurrentItem() == 0) { mListener.onSwipeOutAtStart(); } else if (mStartDragX > x && getCurrentItem() == getAdapter().getCount() - 1) { mListener.onSwipeOutAtEnd(); } break; } return super.onIntercepttouchEvent(ev); } public interface OnSwipeOutListener { public voID onSwipeOutAtStart(); public voID onSwipeOutAtEnd(); }}
在下面的活动类中,我在自定义viewpager类上调用setonSwipeOutListener方法,但未调用它.
myPager = (CustomVIEwPager) findVIEwByID(R.ID.home_pannels_pager);.......myPager.setonSwipeOutListener(new OnSwipeOutListener() { // the method never called @OverrIDe public voID onSwipeOutAtStart() { Log.e("swipe Out At Start ", "swipe out"); } @OverrIDe public voID onSwipeOutAtEnd() { Log.e("swipe Out At End ", "swipe end"); }});myPager.setonPagechangelistener(new VIEwPager.SimpleOnPagechangelistener() { @OverrIDe public voID onPageSelected(int po) { Log.e("positon", ""+po); }});
请帮助我检测用户是否滑过第一页和最后一页以关闭此活动,以及如何从代码中调用该方法.
解决方法:
就我而言,onIntercepttouchEvent不起作用.我使用ontouchEvent更改了方法,并且该方法正在运行.原始解决方案是从tjlian616开始
@OverrIDepublic boolean ontouchEvent(MotionEvent ev){ if(getCurrentItem()==getAdapter().getCount()-1){ final int action = ev.getAction(); float x = ev.getX(); switch(action & MotionEventCompat.ACTION_MASK){ case MotionEvent.ACTION_DOWN: mStartDragX = x; break; case MotionEvent.ACTION_MOVE: break; case MotionEvent.ACTION_UP: if (x<mStartDragX){ mListener.onSwipeOutAtEnd(); }else{ mStartDragX = 0; } break; } }else{ mStartDragX=0; } return super.ontouchEvent(ev);}
总结 以上是内存溢出为你收集整理的Android ViewPager检测滑动超出范围全部内容,希望文章能够帮你解决Android ViewPager检测滑动超出范围所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)