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); ???? } }
|
本文轉自 glblong 51CTO博客,原文鏈接:http://blog.51cto.com/glblong/1307717,如需轉載請自行聯系原作者