android scrollview 中嵌套viewfillper,viewfillper的左右滑动 被影响的解决办法

来源:互联网 发布:日本第五师团知乎 编辑:程序博客网 时间:2024/05/27 06:15

 android中viewFillper,scrollview的嵌套问题 

在scrollview中嵌套了viewfillper,viewfillper左右滑动翻页,会被scrollView的touch事件所有影响,从而影响了viewfillper的滑动时间,影响了用户体验。
解决方法,自定义scrollView,重写它的onInterceptTouchEvent。判断手势移动的距离,包括x方向的,和y方向的。然后比较两个方向的的距离,x方向的距离大就跳过scrollView的touch事件,执行viewfillper的滑动事件,反之,y方向的距离大,就执行scrollView的上下滑动事件。
代码如下:
@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {// TODO Auto-generated method stubswitch (ev.getAction()) {case MotionEvent.ACTION_DOWN:xDistance = yDistance = 0f;xStart = ev.getX();yStart = ev.getY();break;case MotionEvent.ACTION_MOVE:xEnd = ev.getX();yEnd = ev.getY();break;default:break;}xDistance = Math.abs(xEnd-xStart);yDistance = Math.abs(yEnd-yStart);if(xDistance>yDistance)return false;return super.onInterceptTouchEvent(ev);}

经过测试,此种方法效果不错。
0 0
原创粉丝点击