其实去除ViewPager的滑动, 最根本的问题就是让ViewPager类中的onTouchEvent(MotionEvent ev)返回 false就OK了;
步骤:1、创建一个自动义ViewPager类,继承ViewPager
- 1.1 重新ViewPager的两个构造方法,不做任何操作(注意两个参数的构造方法一定要重新,不然可能会报错);
- 1.2 定义一个boolean类型的属性,提供一个set()方法;
- 1.3 重写onTouchEvent(MotionEvent ev),做如下操作:
-
if (!isTouch) { return false; } else { return super.onTouchEvent(ev); }
- 2、在XML中引用自动义ViewPager(注意:要带着全包名)(除了ViewPager的节点需要带着全包名,之外和其他的控件一样使用)
<fjhoo.com.address.view.MyViewPager android:id="@+id/vp_content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginBottom="40dp"> </fjhoo.com.address.view.MyViewPager>
- 3、在代码中把ViewPager类名换成你自己定义的类名
只要控制setTouch();的参数就可以启用停止滑动事件MyViewPager mContentPager;//自定义ViewPager private void intiView() { mContentPager= (MyViewPager) findViewById(R.id.vp_content); setViewPager(); } /** * 设置适配器 */ private void setViewPager() { mContentPager.setTouch(false);//掉用关闭触摸滑动的方法 mContentPager.setAdapter(new MainAdapter(getSupportFragmentManager(),getFragments())); }
- 以上 谢谢