ViewPager禁用左右滑动
2015-08-17 18:05
288 查看
ViewPager 禁用左右滑动的方法:
继承ViewPager在dispatchTouchEvent方法中处理。主要代码如下:
完整类的下载地址:http://download.csdn.net/detail/yukun314/9016307
在该类中实现了设置禁用左右滑动,关于viewPager复杂切换问题的解决,自定义切换动画(使用setCurrentItem时,由于默认的时间很短 没有效果)。用法都比较简单就不上代码了。
发现这样多点触控时仍然有可以左右滑动的情况,修改为(下载资源中没有修改)
如有错误或更好的建议,欢迎提出!
继承ViewPager在dispatchTouchEvent方法中处理。主要代码如下:
private float x=0,x1=0; private boolean a = false; @Override public boolean dispatchTouchEvent(MotionEvent ev) { if(isDisable){//标志是否禁用左右滑动 //这里注意了多点触控时一定要这样的的 switch(ev.getAction() & MotionEvent.ACTION_MASK){ case MotionEvent.ACTION_DOWN: x = ev.getX(); break; case MotionEvent.ACTION_POINTER_DOWN: x1 = ev.getX(ev.getPointerCount()-1); a = true; break; case MotionEvent.ACTION_POINTER_UP: a = false; break; case MotionEvent.ACTION_UP: a = false; x = x1; break; case MotionEvent.ACTION_MOVE: //在水平方向上不可滑动 if(a){ float xx = ev.getX(ev.getPointerCount()- 1); ev.offsetLocation(x1 -xx,0); }else{ ev.setLocation(x, ev.getY()); } break; } } return super.dispatchTouchEvent(ev); }
完整类的下载地址:http://download.csdn.net/detail/yukun314/9016307
在该类中实现了设置禁用左右滑动,关于viewPager复杂切换问题的解决,自定义切换动画(使用setCurrentItem时,由于默认的时间很短 没有效果)。用法都比较简单就不上代码了。
发现这样多点触控时仍然有可以左右滑动的情况,修改为(下载资源中没有修改)
float x=0; @Override public boolean dispatchTouchEvent(MotionEvent ev) { if(isDisable){ switch(ev.getAction()){ case MotionEvent.ACTION_DOWN: x = ev.getX(); break; case MotionEvent.ACTION_MOVE: //在水平方向上不可滑动 ev.setLocation(x, ev.getY()); break; } switch(ev.getAction() & MotionEvent.ACTION_MASK){ case MotionEvent.ACTION_POINTER_DOWN: case MotionEvent.ACTION_POINTER_UP: return true; } } return super.dispatchTouchEvent(ev); }
如有错误或更好的建议,欢迎提出!
相关文章推荐
- android studio
- 在每笔订单、每张发票里都要及时记录客户的名称和地址
- python 爬虫学习笔记1
- Python学习笔记(4)Python中super的用法
- 微信扫码支付报错:curl出错,错误码:60
- Aspose.Words使用教程之表的合并与拆分
- EL,OGNL两种表达式用处的不同
- ios 广告图片无限滚动(swift)
- nosql---与传统关系数据库优缺点比较
- MY WAY程序(十三) 理念和技术
- JavaScript DOM 总结
- 《算法竞赛入门经典》第三章精选
- CORS(跨域资源共享)简介
- leetcode - Valid Parentheses
- 搭建android环境报:Failed to load the JNI shared library
- Tomcat 部署项目的三种方式
- osg 默认光源设置
- Android动画---对动画部分属性的解释
- AVOIR发票的三种作用
- java Socket 长连接 心跳包 客户端 信息收发 demo