[转]Android笔记:ScrollView嵌套ViewPager的滚动冲突解决方法
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
/**
* 能够兼容ViewPager的ScrollView
* @Description: 解决了ViewPager在ScrollView中的滑动反弹问题
*/
public
class
ScrollViewExtend
extends
ScrollView {
// 滑动距离及坐标
private
float
xDistance, yDistance, xLast, yLast;
public
ScrollViewExtend(Context context, AttributeSet attrs) {
super
(context, attrs);
}
@Override
public
boolean
onInterceptTouchEvent(MotionEvent ev) {
switch
(ev.getAction()) {
case
MotionEvent.ACTION_DOWN:
xDistance = yDistance = 0f;
xLast = ev.getX();
yLast = ev.getY();
break
;
case
MotionEvent.ACTION_MOVE:
final
float
curX = ev.getX();
final
float
curY = ev.getY();
xDistance += Math.abs(curX - xLast);
yDistance += Math.abs(curY - yLast);
xLast = curX;
yLast = curY;
if
(xDistance > yDistance){
return
false
;
}
}
return
super
.onInterceptTouchEvent(ev);
}
}
|