您好,登录后才能下订单哦!
本篇文章给大家分享的是有关ScrollView嵌套Viewpager和ListView的整合是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
1、ScrollView嵌套Viewpager解决滑动冲突:
(1)重新ScrollView(法一)
/** * 能够兼容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);    }} | 
(2)重新ScrollView(法二)
public class MyScrollView extends ScrollView { private boolean canScroll; 
 private GestureDetector mGestureDetector; View.OnTouchListener mGestureListener; 
 public MyScrollView(Context context, AttributeSet attrs) { super(context, attrs); mGestureDetector = new GestureDetector(new YScrollDetector()); canScroll = true; } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if(ev.getAction() == MotionEvent.ACTION_UP) canScroll = true; return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev); } 
 class YScrollDetector extends SimpleOnGestureListener { @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { if(canScroll) if (Math.abs(distanceY) >= Math.abs(distanceX)) canScroll = true; else canScroll = false; return canScroll; } } }  | 
个人是用第一个方法解决的,根据不同的情况可以自己处理!
以上就是ScrollView嵌套Viewpager和ListView的整合是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。