700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 关于Android ViewPager禁止滑动

关于Android ViewPager禁止滑动

时间:2019-08-01 16:55:13

相关推荐

关于Android ViewPager禁止滑动

ViewPager经常被用来实现轮播图,页面切换的效果。

关于页面切换,可以搭配Fragment+TabLayout,感兴趣的可以去看一下我之前的文章:

TabLayout 加 ViewPager实现类似选项卡可切换的功能_水很清的博客-CSDN博客

关于实现轮播图的,我之前也有封装过,使用起来很简单,也好用,链接如下:

android自定义轮播图广告_水很清的博客-CSDN博客

ViewPager默认是可以手动切换的,实现自动切换,可以通过定时器来完成,而有些时候,我们是需要禁止ViewPager手动切换的,这个时候就需要自定义ViewPager了,其实也很简单,原理就是拦截触摸事件,让ViewPager不处理onTouch事件,直接交给他的子控件去处理就行。

具体做法是继承ViewPager,重新两个方法,onTouchEvent和onInterceptTouchEvent这两个方法,然后在定义一个变量canSwip,一个boolean值,当变量为true,即表示可以滑动,即ViewPgaer会去处理事件,当变量为false,则不去处理事件,即不能滑动,具体代码如下:

//禁止滑动的viewpagerpublic class NoSwipeViewPager extends ViewPager {private boolean canSwipe = true;public NoSwipeViewPager(Context context, AttributeSet attributeSet){super(context, attributeSet);}//是否禁止滑动public void setCanSwipe(boolean canSwipe){this.canSwipe = canSwipe;}@Overridepublic boolean onTouchEvent(MotionEvent ev) {return canSwipe && super.onTouchEvent(ev);}@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {return canSwipe && super.onInterceptTouchEvent(ev);}}

使用的时候,直接调用setCanSwip()方法,传入一个boolean就行

viewpager.setCanSwipe(false);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。