Android 自定义ViewPager 禁止滑动
ViewPager默认是可以手动切换的,实现自动切换,但是部分需求,我们是需要禁止ViewPager手动切换的, 这个时候就需要自定义ViewPager了,其实也很简单,原理就是拦截触摸事件,让ViewPager不处理onTouch事件,直接交给他的子控件去处理就行。具体代码如下:
1.首先创建CustomViewPager 继承ViewPager
/*** @Author: Su* @Date: /11/30* @Description:*/public class CustomViewPager extends ViewPager {private boolean isCanScroll = true;public CustomViewPager(Context context) {super(context);}public CustomViewPager(Context context, AttributeSet attrs) {super(context, attrs);}public void setScanScroll(boolean isCanScroll){this.isCanScroll = isCanScroll;}@Overridepublic void scrollTo(int x, int y){if (isCanScroll){super.scrollTo(x, y);}}@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {return false;}}
2.在xml文件中添加自定义CustomViewPager
<com.***.***.CustomViewPagerandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@id/tab_layout"android:id="@+id/viewpager"></com.***.***.CustomViewPager>
3.在Activity中写入OnTouchListener
//禁止滑动切换viewPager.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {return true;}});