千家信息网

ScrollView嵌套Viewpager和ListView的整合是怎样的

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本篇文章给大家分享的是有关ScrollView嵌套Viewpager和ListView的整合是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起
千家信息网最后更新 2025年01月18日ScrollView嵌套Viewpager和ListView的整合是怎样的

本篇文章给大家分享的是有关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的整合是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

0